מדריך גרוק CLI בעברית

תיעוד 30

ערכות נושא והתאמת מראה

Grok Build שואב את כל צבעי ה-TUI מערכת נושא מרכזית. אפשר להחליף ערכות נושא בזמן ש-Grok רץ, לעקוב אחרי המראה הבהיר או הכהה של מערכת ההפעלה, ולהתאים את פריסת ה-scrollback, האנימציות ועיצוב הבלוקים דרך קובצי תצורה.


#ערכות נושא זמינות

Grok כולל שבע ערכות נושא מובנות, ועוד אפשרות auto שעוקבת אחרי מראה המערכת:

ערכת נושאשמות בתצורהתיאורנדרש Truecolor
GrokNightgroknight, grok-night, darkבסיס כהה ניטרלי עם הדגשת magenta. ערכת הנושא שבברירת המחדל. שורדת כימות בצורה נקייה בטרמינלים של 256 צבעים ובטרמינלים של 16 צבעים.לא
GrokDaygrokday, grok-day, light, dayערכת נושא בהירה לרקעי טרמינל בהירים.לא
TokyoNighttokyonight, tokyo-night, tokyoרקעים כהים בגוון כחול מלוח הצבעים Tokyo Night. מאבדת את האופי שלה כשמכמתים אותה.כן
GruvboxDarkHardgruvbox-dark-hardלוח צבעים כהה, חם ואדמתי מ-Gruvbox, בניגודיות hard.כן
RosePineMoonrosepine, rose-pine, rosepine-moon, rose-pine-moonלוח כהה מעומעם עם הדגשות mauve, ממשפחת Rosé Pine.כן
OscuraMidnightoscura, oscura-midnightבסיס כהה עמוק עם הדגשות סגולות.כן
Terminalterminal, terminal-default, transparent, nativeהצבעים של הטרמינל עצמו: הכל מלבד הפס מאחורי ההודעות שלך יושב על בד הטרמינל, כך ששקיפות ותמונות רקע נראות דרכו.לא

שמות ערכות הנושא לא תלויים ברישיות. האפשרות auto (כינוי system) מתועדת תחת ערכת נושא אוטומטית (מראה המערכת).

#ערכת הנושא Terminal

terminal כמעט לא מגדיר צבעים משלו: הכל מגיע מפרופיל הטרמינל שלך. ה-scrollback, ה-composer, חלונות המודאל ושורת המצב משאירים את בד הטרמינל גלוי (חלון שקוף למחצה או עם תמונת רקע נראה דרך Grok כמו שהוא נראה דרך המעטפת), טקסט הגוף משתמש בצבע החזית שבברירת המחדל של הטרמינל, וההדגשות (שגיאות, diffs, קישורים, תחביר) מגיעות מלוח 16 הצבעים של ANSI בפרופיל שלך. מכיוון שהיא שואלת את צבעי הפרופיל שלך במקום להניח רקע בהיר או כהה, היא נשארת קריאה על כל פרופיל בלי זיהוי מראה.

מלבד reverse video, הרקע היחיד שהערכת נושא צובעת הוא פס מאחורי ההודעות שלך. בהפעלה Grok שואל את הטרמינל מהם צבעי החזית והרקע שבברירת המחדל בלי להמתין לתשובה. אחרי שהטרמינל עונה, ההודעות שלך מוצגות בצבע החזית הזה, בהדגשה, על פס שהוא צעד קטן אחד מהרקע לכיוון החזית. Grok שואל רק את Kitty, WezTerm, Ghostty, iTerm2, Rio, Rex, Herdr 2, וטרמינלים שהוא לא מזהה (כמו xterm), ואף פעם לא בתוך tmux, GNU screen, Zellij, או herdr (המרבב שקדם ל-Herdr 2). תפריטים ולוחות הנחיה יושבים ישירות על בד הטרמינל, והשורה שנבחרה או שעומדים עליה עם העכבר בכל תפריט משתמשת ב-reverse video (החלפת החזית והרקע של הטרמינל עצמו, בלי עמעום), כך שכל שילוב נשאר קריא על כל פרופיל. עיטור, מסגרות רדומות, מפרידים ואגודל פס הגלילה, משתמש ב-ANSI bright black כצבע חזית, חריץ הלוח שהפרופיל שלך מכוון כגוון המעומעם שלו. רכיבי ממשק שבמיקוד, כמו מסגרת ה-composer הפעיל, נשארים בצבע החזית המלא של ברירת המחדל כדי שהמיקוד עדיין יבלוט. Grok גם משאיר את צבע הסמן כמו שהוא בערכת הנושא הזאת (ערכות נושא אחרות צובעות אותו מחדש לצבע ה-accent שלהן).

ההודעות שלך מוצגות בהדגשה בלי פס בטרמינלים ש-Grok לא שואל, כשהטרמינל לא עונה עם שני הצבעים, כשצבעי החזית והרקע שלו קרובים מדי מכדי שהטקסט יישאר קריא על פס (מתחת ל-5.4:1, כמו ב-Solarized), בטרמינלים עם פחות מ-256 צבעים, בטרמינלים של 256 צבעים שצבעי הלוח הקרובים ביותר שלהם היו משאירים את הטקסט או את הפס חיוורים מדי, עם NO_COLOR, ב-Windows, וכש-bg תחת [scrollback.blocks.prompt] הוא "none" או "dark" במקום ברירת המחדל "light". Grok שואל רק כשהוא מופעל על terminal, כך שאם עוברים אליו מערכת נושא אחרת, הפס מופיע לראשונה בהפעלה הבאה של Grok. הפס וכל מה שעליו (סמן ההנחיה, ההודעה שלך, השעה שלה, ושמות המיומנויות, שמסומנים שם בקו תחתון) מגיעים מאותה תשובה, כך שהם נשארים קריאים יחד גם אם מחליפים פרופילי טרמינל באמצע ההפעלה. הפס רק נראה לא בגוון הנכון עד שמפעילים את Grok מחדש.

[ui]
theme = "terminal"

הניגודיות טובה רק כמו פרופיל הטרמינל שלך: פרופיל עם חריץ bright-black כהה מאוד יציג מפרידים חיוורים, כי Grok גוזר הכל מהלוח שלך במקום לקבע צבעים בקוד.

ערכת הנושא נפרסת בהדרגה. עד שהפריסה מגיעה לחשבון שלך היא מוסתרת מ-/theme ומ-/settings, השמות שלה לא מפוענחים, ו-theme = "terminal" שמוגדר בתצורה נופל חזרה לערכת הנושא שבברירת המחדל. הגדר GROK_TERMINAL_THEME=1 (או terminal_theme = true תחת [features] בקובץ config.toml) כדי להפעיל אותה מקומית לפני הפריסה.

#למצב מינימלי אין ערכות נושא

מצב מינימלי (--minimal) תמיד מוצג עם לוח צבעים יחיד וקבוע של הטרמינל עצמו, ומתעלם לגמרי מהגדרות theme (הן עדיין חלות על ה-TUI המלא). מצב מינימלי מצייר ישירות על הרקע של הטרמינל עצמו, ולכן הוא משתמש בצבעי החזית והרקע שבברירת המחדל של הטרמינל וגם בלוח 16 הצבעים של ANSI שלו, אותם צבעים ש-git או ls משתמשים בהם, והוא נשאר קריא על כל פרופיל טרמינל בהיר או כהה בלי זיהוי ובלי תצורה. /theme ושורות ערכות הנושא ב-/settings לא זמינים במצב מינימלי.

הדגשת תחביר במצב מינימלי לא עוברת בין קובצי ערכת נושא בהירה לכהה (נמנעים בכוונה מזיהוי קוטביות). אסימונים שקרובים לאפור יורשים את צבע החזית שבברירת המחדל של הטרמינל. אסימונים צבעוניים משתמשים בהדגשות ANSI בסיסיות (red/green/yellow/blue/magenta/cyan) כדי שפלט קריאת קובץ וקוד מגודר יישארו קריאים גם בפרופיל בהיר וגם בפרופיל כהה.


#החלפת ערכות נושא

#ב-TUI

הפעל את פקודת /theme (כינוי /t) כדי לפתוח את בורר ערכות הנושא. בזמן שעוברים ברשימה עם מקשי החצים, Grok מציג תצוגה מקדימה של כל ערכת נושא בזמן אמת. לחץ Enter כדי להחיל ולשמור את הבחירה, או לחץ Escape כדי לחזור. יציאה מהבורר בכל דרך אחרת, כמו ניקוי השורה או העברת המיקוד, גם משחזרת את ערכת הנושא שהייתה. רק Enter שומר. הקלדה מסננת את הרשימה לפי כל אחד משמות התצורה של ערכת נושא, כך ש-/theme transparent מצמצם לשורת Terminal.

כדי להחליף בלי הבורר, העבר שם ישירות:

/theme tokyonight

שליחה של /theme לבדו, בלי בחירה מהבורר, עוברת לערכת הנושא הבאה.

#דרך קובץ תצורה

הגדר את ערכת הנושא ב-~/.grok/config.toml:

[ui]
theme = "tokyonight"

#ערכת נושא אוטומטית (מראה המערכת)

הגדר theme = "auto" כדי ש-Grok יעקוב אחרי המראה הבהיר או הכהה של מערכת ההפעלה ויחליף ערכות נושא אוטומטית:

[ui]
theme = "auto"

כברירת מחדל, מצב כהה ממופה ל-GrokNight ומצב בהיר ממופה ל-GrokDay. אפשר לדרוס כל אחד מהמיפויים עם auto_dark_theme ו-auto_light_theme:

[ui]
theme = "auto"
auto_dark_theme = "tokyonight"
auto_light_theme = "grokday"

theme = "system" הוא כינוי ל-theme = "auto".

#איך הזיהוי עובד

פלטפורמהשיטה
macOSקורא את העדפת המערכת AppleInterfaceStyle
Linuxשולח שאילתה ל-XDG Desktop Portal (org.freedesktop.appearance.color-scheme)
Windowsקורא את רישום ההתאמה האישית של המערכת
SSH / tmux / headlessGROK_APPEARANCE או LC_GROK_APPEARANCE (dark/light), אחר כך COLORFGBG, ואחר כך שאילתת רקע OSC 11 בהפעלה. grok wrap ssh … חותם את LC_GROK_APPEARANCE מערכת הנושא של מערכת ההפעלה המקומית כדי שהערך ישרוד SSH אל מעטפת ההתחברות. הפעלות tmux חדשות יורשות אותו רק אם שרת או הפעלת tmux נוצרו עם משתנה הסביבה הזה (או ש-update-environment כולל אותו). OSC 11 עטוף ב-DCS עבור tmux ≥ 3.3 כש-tmux הוא הטרמינל המיידי (לא :terminal של עורך). הגעה לאמולטור החיצוני דורשת גם allow-passthrough, והתשובות הן במיטב היכולת.

אחרי ההפעלה, Grok בודק את ממשקי שולחן העבודה ורמזי משתני הסביבה כל 5 שניות. החלפת מערכת ההפעלה בין מצב בהיר לכהה בשולחן עבודה מקומי נכנסת לתוקף בתוך שניות בלי הפעלה מחדש. מעל SSH משתנה הסביבה שנחתם על ידי wrap קבוע לקפיצה הזאת.

אפשר גם להגדיר GROK_THEME (או LC_GROK_THEME) כדי לכפות ערכת נושא או auto בלי לערוך את config.toml.

#דרך חלונית ההגדרות

הפעל את /settings (כינוי /config) ופתח את הקטגוריה Appearance כדי להגדיר את Auto dark theme ואת Auto light theme באופן אינטראקטיבי. בחירת auto בבורר /theme מפעילה מצב אוטומטי לפי המיפויים האלה.


#זיהוי תמיכה בצבע

בהפעלה, Grok מזהה את רמת יכולת הצבע של הטרמינל:

רמהתיאורזיהוי
Truecolor (24 סיביות)צבע RGB מלא. כל ערכות הנושא מוצגות כפי שעוצבו.COLORTERM=truecolor או יכולת טרמינל שקולה
256 צבעיםלוח צבעים ממופתח. ערכי RGB ממופים לרשומת הלוח הקרובה ביותר.xterm-256color הרגיל
16 צבעיםשמות ANSI בלבד. הצבעים ממופים לצבע ANSI הקרוב ביותר.תמיכת טרמינל בסיסית

כשמגדירים NO_COLOR, Grok לא פולט צבע ומציג במונוכרום.

הפעל את /doctor כדי לראות את רמת הצבע שזוהתה ואת ערכות הנושא הזמינות בטרמינל הזה. אם Truecolor לא זמין, Doctor מציג את שלבי ההגדרה הרלוונטיים או מסביר את מגבלת הטרמינל.

#כימות אוטומטי

כל ערכת נושא מוגדרת באמצעות ערכי RGB מלאים. בהפעלה, Grok מכמת את כל הצבעים כדי להתאים לרמת היכולת שזוהתה. המשמעות:

  • בטרמינלי truecolor, הצבעים עוברים בלי שינוי.
  • בטרמינלי 256 צבעים, כל ערך RGB ממופה לרשומת הלוח הממופתח הקרובה ביותר.
  • בטרמינלי 16 צבעים, הצבעים ממופים לשמות ANSI.

GrokNight ו-GrokDay משתמשים באפורים ניטרליים שעוברים כימות בצורה נקייה. TokyoNight, GruvboxDarkHard, RosePineMoon ו-OscuraMidnight משתמשים ברקעים צבועים אופייניים שמאבדים את האופי שלהם בכימות, ולכן בורר ערכות הנושא מסתיר אותם בטרמינלים שאינם truecolor.

#צבעים שנוצרים בזמן ריצה

צבעים שנוצרים בזמן ריצה (הדגשת תחביר, מיזוג רקע) גם הם מכומתים דרך אותו צינור, כדי להבטיח מראה עקבי בכל סוגי הטרמינלים.


#צבע הסמן

Grok מגדיר את סמן הטרמינל לצבע accent_user של ערכת הנושא הנוכחית באמצעות רצף המילוט OSC 12, כדי לסמן הפעלת Grok פעילה. צבע הסמן:

  • מוחל בהפעלה ובהחלפת ערכת נושא.
  • מאופס לברירת המחדל של הטרמינל ביציאה באמצעות OSC 112.

זה עובד בטרמינלים שתומכים ב-OSC 12 (רוב הטרמינלים המודרניים).


#מצב קומפקטי

החלף את מצב קומפקטי עם פקודת /compact-mode. מצב קומפקטי:

  • מסיר ריפוד אנכי חיצוני (השוליים העליונים והתחתונים נעשים 0). בטרמינלים גבוהים מ-20 שורות, שורה ריקה עדיין יושבת מתחת לסרגל המצב, ומעל סרגל קיצורי הדרך אלא אם שורת מצב מוגדרת.
  • מצמצם את הריפוד האופקי למינימום (עמודה אחת).
  • מצמצם את הריפוד העליון באזור ההנחיה ובבלוקי המידע.
  • מקפל סיכומים חוזרים לתצוגה מקדימה של שורה אחת (לחץ e על אחד כדי להרחיב אותו).
  • מסתיר את ה-dock, או את חלונית המשימות כשה-dock כבוי, כמו Ctrl+G. Ctrl+G מציג אותו שוב.
  • מציג רק את רמז קיצורי הדרך בסרגל התחתון כשלשדה ההנחיה או ל-scrollback יש מיקוד. חיפוש, עריכת הנחיה בתור, והחלוניות האחרות עדיין מציגים את המקשים שלהם.

ההגדרה נשמרת ב-~/.grok/config.toml תחת [ui].compact_mode ושורדת הפעלות מחדש.

השתמש במצב קומפקטי במסכים קטנים כדי להגדיל את אזור התוכן.


#הדגשת תחביר

Grok כולל ארבעה קובצי .tmTheme להדגשת תחביר בבלוקי קוד, ובוחר אחד לפי ערכת הנושא הפעילה:

  • grok-night.tmTheme: GrokNight, RosePineMoon, ו-OscuraMidnight
  • grok-day.tmTheme: GrokDay
  • tokyo-night.tmTheme: TokyoNight
  • gruvbox-dark-hard.tmTheme: GruvboxDarkHard

Grok בוחר את הקובץ המתאים אוטומטית כשמחליפים ערכות נושא. קובצי .tmTheme בנויים בתוך הבינארי, כך שאי אפשר להחליף אותם בקובצים שלך.


#התאמה אישית מעמיקה עם pager.toml

לשליטה מפורטת במראה ה-TUI, צור את ~/.grok/pager.toml. הקובץ הזה שולט בפריסת ה-scrollback, בעיצוב הבלוקים, באנימציות ועוד. לכל ההגדרות יש ברירות מחדל. ציין רק את הערכים שאתה דורס. (בניות פיתוח יוצרות את הקובץ הזה כתבנית שבה כל ברירת מחדל מוערת: בטל הערה משורה כדי לדרוס אותה. ערכים מוערים ממשיכים לעקוב אחרי ברירות מחדל עתידיות.)

#פריסה

שליטה בריפוד אזור התצוגה ובמרווח הבלוקים:

[scrollback.layout]
outer_vpad = 1          # Vertical padding (top/bottom) for the viewport
outer_hpad_left = 2     # Left margin (minimum: 1)
outer_hpad_right = 2    # Right margin (minimum: 1)
block_pad_left = 2      # Padding between accent line and content
block_pad_right = 2     # Padding after content at right edge

#פס גלילה

[scrollback.scrollbar]
enabled = true          # Show/hide the scrollbar
gap_left = 0            # Gap between content and scrollbar (0 = adjacent)
gap_right = 0           # Gap between scrollbar and screen edge (0 = at edge)
# scrollbar_bg = "none" # Override background color (or "none" for theme default)
# scrollbar_fg = "none" # Override thumb color (or "none" for theme default)

#התנהגות גלילה

[scrollback.scroll]
margin = 0                  # Context lines above/below selected entry (0 = edge)
min_page_fraction = 0       # Minimum scroll as % of viewport (0-100)
follow_indicator = "center" # "center" = show the ▼/▲ scroll arrows, "none" = hidden
follow_auto_select = true   # Auto-select latest entry when following
follow_by_overscroll = true # Scrolling past bottom engages follow mode
anchor_on_fold = true       # Keep block header at same screen position when folding

#אפשרויות תצוגה

[scrollback.display]
sticky_headers = true              # Pin user prompts as headers when scrolled past
tab_width = 4                      # Spaces per tab character (0 = pass through)
expandable_indicator = true        # Show "›" on foldable collapsed entries
expandable_indicator_char = "›"    # Character to use (default: "›", falls back to ">" on the legacy Windows console)
collapsed_accent_char = "❙"        # Accent for collapsed groupable blocks (falls back to "|" on the legacy Windows console)
dim_accent = 0.5                   # Blend factor for dimmed accents (0.0-1.0)
line_under_last_entry = false      # Horizontal line below last entry
selection_buttons = false          # Show copy/view buttons on selection box

#אנימציה

[animation]
fps = 30           # Frame rate (1-60). Higher = smoother, more CPU
wave_rows = 32     # Rows per wave cycle for accent animation

#עיצוב בלוקים: הבדלי עריכה

[scrollback.blocks.edit]
indent = true                   # Indent diff content
vpad = false                    # Vertical padding around diffs
hunk_separator = "…"            # Separator between hunks ("…", "───", "⋯", or "" for none)
dual_line_numbers = false       # Two-column line numbers (old + new, like GitHub)
# bg = "none"                   # Block background ("none", "light", "dark")

#עיצוב בלוקים: חשיבה והנמקה

[scrollback.blocks.thinking]
accent_enabled = true       # Show accent line for thinking blocks
animate = true              # Animate accent line while thinking
truncated_lines = 3         # Lines to show in truncated mode
bg_blend = 70               # Markdown-color blend with background (0-100)
header = true               # Show "Thinking..." header
header_bright = false       # Bright header style (vs dim/muted)

#עיצוב בלוקים: קריאות לכלים

[scrollback.blocks.tool]
muted_collapsed = true     # Gray out collapsed tool calls
dim_details = true          # Dim parenthetical details (line counts, match counts)
bullet = "diamond"          # Bullet style before tool headers

סגנונות תבליט זמינים:

ערך בתצורהתותיאור
none(none)בלי תבליט
dot·נקודה אמצעית (הקטנה ביותר)
small-circle•תבליט
circle●עיגול מלא
small-triangle▸משולש קטן שפונה ימינה
triangle▶משולש שפונה ימינה
diamond◆מעוין מלא (ברירת מחדל)

#עיצוב בלוקים: Execute (פקודות מעטפת)

[scrollback.blocks.execute]
first_lines = 2                   # Output lines shown at start in truncated mode
last_lines = 3                    # Output lines shown at end in truncated mode
accent_enabled = true             # Show accent line (animated while running)
header_style = "label"            # "shell" ($ prefix) or "label" (Running / Ran prefix)
muted_command_collapsed = true    # Mute command text when collapsed

#עיצוב בלוקים: הנחיות משתמש (Scrollback)

[scrollback.blocks.prompt]
vpad = true            # Vertical padding
bg = "light"           # Background ("none", "light", "dark")
show_prefix = true     # Show the prompt prefix character
min_lines = 2          # Minimum content lines in truncated/sticky mode

#וידג'ט קלט ההנחיה

[prompt]
collapse_unfocused = true    # Collapse when scrollback is focused
mouse_hover = true           # Show hover highlight on mouse over
show_prefix = true           # Show the prompt prefix character

#התנהגות הטרמינל

[terminal]
alt_screen = "auto"    # "auto", "always", or "never"

מדיניות מסך חלופי:

  • auto: מסך מלא בטרמינלים רגילים וב-tmux רגיל, ובתוך השורה ב-tmux control mode וב-Zellij.
  • always: תמיד להיכנס למסך מלא.
  • never: אף פעם לא להיכנס למסך מלא. להריץ בתוך השורה ב-scrollback הראשי.

#ממשק התוספים

disable_plugins = false   # Set to true to hide /hooks, /plugins commands and annotations

#חריצי צבע של ערכת נושא

כל ערכת נושא מגדירה את חריצי הצבע הבאים, שנמצאים בשימוש בכל ממשק הטקסט:

רקעים: bg_base, bg_light, bg_dark, bg_highlight, bg_hover, bg_terminal, bg_visual

הדגשות: accent_user, accent_assistant, accent_thinking, accent_tool, accent_system, accent_error, accent_success, accent_running, accent_skill, accent_plan, accent_verify, accent_remember, accent_model

טקסט: text_primary, text_secondary

אפורים: gray_dim, gray, gray_bright

משמעות: command, path, running, warning, fuzzy_accent

גבולות ופס גלילה: selection_border, hover_border, prompt_border, prompt_border_active, scrollbar_bg, scrollbar_fg

הדבקה: paste_bg, paste_fg, paste_dim

הבדלים: diff_delete_bg, diff_delete_fg, diff_insert_bg, diff_insert_fg, diff_equal_fg, diff_gutter_fg

Markdown: צבעי כותרות (md_heading_h1-md_heading_h6), md_code, md_code_bg, md_text, md_muted, md_task_checked, md_task_unchecked, link_fg

מערכת ערכות הנושא מנהלת את החריצים האלה באופן פנימי ומכמתת אותם אוטומטית עבור הטרמינל.