feat: add opt-in docked editor toolbar (#1562)

* feat: add opt-in docked editor toolbar

* fix: align docked editor toolbar actions

* fix: move docked toolbar setting to navigation

---------

Co-authored-by: Bohdan Triapitsyn <artmore@protonmail.com>
This commit is contained in:
Roberto Bertó
2026-06-13 00:01:07 +03:00
committed by GitHub
co-authored by Bohdan Triapitsyn
parent 1235e4db71
commit 15813b61c3
17 changed files with 102 additions and 7 deletions
+1
View File
@@ -145,6 +145,7 @@ export type DesktopSettings = {
userMessageRenderingMode?: 'markdown' | 'plain';
collapsibleUserMessages?: boolean;
stickyUserHeader?: boolean;
expandedEditorToolbar?: boolean;
wideChatLayoutEnabled?: boolean;
showSplitAssistantMessageActions?: boolean;
fontSize?: number;
@@ -1650,6 +1650,8 @@ export const settingsDict = {
'settings.openchamber.visual.field.collapsibleUserMessages': 'Collapse Long User Messages',
'settings.openchamber.visual.field.stickyUserHeaderAria': 'Sticky user header',
'settings.openchamber.visual.field.stickyUserHeader': 'Sticky User Header',
'settings.openchamber.visual.field.expandedEditorToolbarAria': 'Always show editor toolbar',
'settings.openchamber.visual.field.expandedEditorToolbar': 'Always show editor toolbar (docked under the file tabs)',
'settings.openchamber.visual.field.wideChatLayoutAria': 'Wide chat layout',
'settings.openchamber.visual.field.wideChatLayout': 'Wide Chat Layout',
'settings.openchamber.visual.field.showSplitAssistantMessageActionsAria': 'Inline assistant actions',
@@ -1617,6 +1617,8 @@ export const settingsDict = {
"settings.openchamber.visual.field.collapsibleUserMessages": "Contraer mensajes largos del usuario",
"settings.openchamber.visual.field.stickyUserHeaderAria": "Encabezado del usuario fijo",
"settings.openchamber.visual.field.stickyUserHeader": "Encabezado de usuario fijo",
"settings.openchamber.visual.field.expandedEditorToolbarAria": "Mostrar siempre la barra de herramientas del editor",
"settings.openchamber.visual.field.expandedEditorToolbar": "Mostrar siempre la barra de herramientas del editor (anclada bajo las pestañas)",
"settings.openchamber.visual.field.wideChatLayoutAria": "Diseño de chat ancho",
"settings.openchamber.visual.field.wideChatLayout": "Diseño de chat ancho",
"settings.openchamber.visual.field.showSplitAssistantMessageActionsAria": "Acciones en línea del asistente",
@@ -1593,6 +1593,8 @@ export const settingsDict = {
'settings.openchamber.visual.field.collapsibleUserMessages': 'Réduire les longs messages utilisateur',
'settings.openchamber.visual.field.stickyUserHeaderAria': 'En-tête utilisateur collant',
'settings.openchamber.visual.field.stickyUserHeader': 'En-tête utilisateur collant',
'settings.openchamber.visual.field.expandedEditorToolbarAria': 'Toujours afficher la barre d’outils de l’éditeur',
'settings.openchamber.visual.field.expandedEditorToolbar': 'Toujours afficher la barre d’outils de l’éditeur (ancrée sous les onglets de fichiers)',
'settings.openchamber.visual.field.wideChatLayoutAria': 'Large disposition de discussion',
'settings.openchamber.visual.field.wideChatLayout': 'Disposition de discussion large',
'settings.openchamber.visual.field.showSplitAssistantMessageActionsAria': 'Actions intégrées de l\'assistant',
@@ -1617,6 +1617,8 @@ export const settingsDict = {
'settings.openchamber.visual.field.collapsibleUserMessages': '긴 사용자 메시지 접기',
'settings.openchamber.visual.field.stickyUserHeaderAria': '고정 사용자 헤더',
'settings.openchamber.visual.field.stickyUserHeader': '고정 사용자 헤더',
'settings.openchamber.visual.field.expandedEditorToolbarAria': 'Always show editor toolbar',
'settings.openchamber.visual.field.expandedEditorToolbar': 'Always show editor toolbar (docked under the file tabs)',
'settings.openchamber.visual.field.wideChatLayoutAria': '넓은 채팅 레이아웃',
'settings.openchamber.visual.field.wideChatLayout': '넓은 채팅 레이아웃',
'settings.openchamber.visual.field.showSplitAssistantMessageActionsAria': '인라인 어시스턴트 작업',
@@ -965,6 +965,8 @@ export const settingsDict = {
'settings.openchamber.visual.field.spacingDensity': 'Gęstość odstępów',
'settings.openchamber.visual.field.stickyUserHeader': 'Przyklejony nagłówek użytkownika',
'settings.openchamber.visual.field.stickyUserHeaderAria': 'Przyklejony nagłówek użytkownika',
'settings.openchamber.visual.field.expandedEditorToolbarAria': 'Always show editor toolbar',
'settings.openchamber.visual.field.expandedEditorToolbar': 'Always show editor toolbar (docked under the file tabs)',
'settings.openchamber.visual.field.terminalFontSize': 'Rozmiar czcionki terminala',
'settings.openchamber.visual.field.terminalQuickKeys': 'Szybkie klawisze terminala',
'settings.openchamber.visual.field.terminalQuickKeysAria': 'Szybkie klawisze terminala',
@@ -1617,6 +1617,8 @@ export const settingsDict = {
"settings.openchamber.visual.field.collapsibleUserMessages": "Recolher mensagens longas do usuário",
"settings.openchamber.visual.field.stickyUserHeaderAria": "Cabeçalho do usuário fixo",
"settings.openchamber.visual.field.stickyUserHeader": "Cabeçalho do usuário fixo",
"settings.openchamber.visual.field.expandedEditorToolbarAria": "Mostrar sempre a barra de ferramentas do editor",
"settings.openchamber.visual.field.expandedEditorToolbar": "Mostrar sempre a barra de ferramentas do editor (ancorada sob as abas)",
"settings.openchamber.visual.field.wideChatLayoutAria": "Layout de chat amplo",
"settings.openchamber.visual.field.wideChatLayout": "Layout de chat amplo",
"settings.openchamber.visual.field.showSplitAssistantMessageActionsAria": "Ações inline do assistente",
@@ -1617,6 +1617,8 @@ export const settingsDict = {
"settings.openchamber.visual.field.collapsibleUserMessages": "Згортати довгі повідомлення користувача",
"settings.openchamber.visual.field.stickyUserHeaderAria": "Закріплений заголовок користувача",
"settings.openchamber.visual.field.stickyUserHeader": "Закріплений заголовок користувача",
"settings.openchamber.visual.field.expandedEditorToolbarAria": "Завжди показувати панель інструментів редактора",
"settings.openchamber.visual.field.expandedEditorToolbar": "Завжди показувати панель інструментів редактора (закріплена під вкладками)",
"settings.openchamber.visual.field.wideChatLayoutAria": "Широкий макет чату",
"settings.openchamber.visual.field.wideChatLayout": "Широкий макет чату",
"settings.openchamber.visual.field.showSplitAssistantMessageActionsAria": "Вбудовані дії асистента",
@@ -1617,6 +1617,8 @@ export const settingsDict = {
'settings.openchamber.visual.field.collapsibleUserMessages': '折叠较长的用户消息',
'settings.openchamber.visual.field.stickyUserHeaderAria': '固定用户消息头',
'settings.openchamber.visual.field.stickyUserHeader': '固定用户消息头',
'settings.openchamber.visual.field.expandedEditorToolbarAria': 'Always show editor toolbar',
'settings.openchamber.visual.field.expandedEditorToolbar': 'Always show editor toolbar (docked under the file tabs)',
'settings.openchamber.visual.field.wideChatLayoutAria': '宽聊天布局',
'settings.openchamber.visual.field.wideChatLayout': '宽聊天布局',
'settings.openchamber.visual.field.showSplitAssistantMessageActionsAria': '内联助手操作',
@@ -1538,6 +1538,8 @@
'settings.openchamber.visual.field.collapsibleUserMessages': '收合較長的使用者訊息',
'settings.openchamber.visual.field.stickyUserHeaderAria': '固定使用者訊息標頭',
'settings.openchamber.visual.field.stickyUserHeader': '固定使用者訊息標頭',
'settings.openchamber.visual.field.expandedEditorToolbarAria': 'Always show editor toolbar',
'settings.openchamber.visual.field.expandedEditorToolbar': 'Always show editor toolbar (docked under the file tabs)',
'settings.openchamber.visual.field.wideChatLayoutAria': '寬聊天佈局',
'settings.openchamber.visual.field.wideChatLayout': '寬聊天佈局',
'settings.openchamber.visual.field.showSplitAssistantMessageActionsAria': '行內助理操作',
+3
View File
@@ -519,6 +519,9 @@ const applyDesktopUiPreferences = (settings: DesktopSettings) => {
if (typeof settings.stickyUserHeader === 'boolean' && settings.stickyUserHeader !== store.stickyUserHeader) {
store.setStickyUserHeader(settings.stickyUserHeader);
}
if (typeof settings.expandedEditorToolbar === 'boolean' && settings.expandedEditorToolbar !== store.expandedEditorToolbar) {
store.setExpandedEditorToolbar(settings.expandedEditorToolbar);
}
if (typeof settings.wideChatLayoutEnabled === 'boolean' && settings.wideChatLayoutEnabled !== store.wideChatLayoutEnabled) {
store.setWideChatLayoutEnabled(settings.wideChatLayoutEnabled);
}
+6
View File
@@ -115,6 +115,12 @@ export const SETTINGS_SEARCH_ITEMS: readonly SettingsSearchItem[] = [
descriptionKey: 'settings.openchamber.visual.field.inputBarOffsetTooltip',
keywords: ['input', 'home bar', 'offset'],
},
{
id: 'appearance.expanded-editor-toolbar',
page: 'appearance',
titleKey: 'settings.openchamber.visual.field.expandedEditorToolbar',
keywords: ['editor', 'toolbar', 'tabs', 'docked', 'files'],
},
{
id: 'appearance.file-editor-keymap',
page: 'appearance',