Skip to content

Commit 89eee69

Browse files
committed
feature: add option to show launcher tabs vertically
Add `Preferences > Appearance > Show tabs vertically`. When enabled, the page tabs in the titlebar are hidden and shown as a vertical list on the left side of the main window instead. - The vertical tab bar supports the same features as the horizontal one (bookmark, dirty state, close button, middle-click to close, drag to reorder and the context menu). In vertical mode the context menu says `Close Tabs Below` instead of `Close Tabs to the Right`. - The shared tab behaviors are moved from `LauncherTabBar` into `LauncherTabBarBase` without logic changes, so both tab bars use the same implementation. - The vertical tab bar can be resized with a `GridSplitter` (the same way as the repository sidebar) and its width is persisted in layout. - Add translations of the new strings for all supported locales. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01KmxDaaTdRxoFb3WZQG9Gkn
1 parent 3b95257 commit 89eee69

25 files changed

Lines changed: 541 additions & 215 deletions

‎src/Resources/Locales/de_DE.axaml‎

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -624,6 +624,7 @@ $1, $2, … Werte der Eingabe-Steuerelemente</x:String>
624624
<x:String x:Key="Text.Optional" xml:space="preserve">Optional.</x:String>
625625
<x:String x:Key="Text.PageTabBar.New" xml:space="preserve">Neue Registerkarte erstellen</x:String>
626626
<x:String x:Key="Text.PageTabBar.Tab.Close" xml:space="preserve">Registerkarte schließen</x:String>
627+
<x:String x:Key="Text.PageTabBar.Tab.CloseBelow" xml:space="preserve">Registerkarten darunter schließen</x:String>
627628
<x:String x:Key="Text.PageTabBar.Tab.CloseOther" xml:space="preserve">Andere Registerkarten schließen</x:String>
628629
<x:String x:Key="Text.PageTabBar.Tab.CloseRight" xml:space="preserve">Registerkarten zur Rechten schließen</x:String>
629630
<x:String x:Key="Text.PageTabBar.Tab.CopyPath" xml:space="preserve">Kopiere Repository-Pfad</x:String>
@@ -663,6 +664,7 @@ $1, $2, … Werte der Eingabe-Steuerelemente</x:String>
663664
<x:String x:Key="Text.Preferences.Appearance.UseAutoHideScrollBars" xml:space="preserve">Bildlaufleisten automatisch ausblenden</x:String>
664665
<x:String x:Key="Text.Preferences.Appearance.UseFixedTabWidth" xml:space="preserve">Fixe Tab-Breite in Titelleiste verwenden</x:String>
665666
<x:String x:Key="Text.Preferences.Appearance.UseNativeWindowFrame" xml:space="preserve">Nativen Fensterrahmen verwenden</x:String>
667+
<x:String x:Key="Text.Preferences.Appearance.UseVerticalTabs" xml:space="preserve">Tabs vertikal anzeigen</x:String>
666668
<x:String x:Key="Text.Preferences.DiffMerge" xml:space="preserve">DIFF- / MERGE-TOOL</x:String>
667669
<x:String x:Key="Text.Preferences.DiffMerge.DiffArgs" xml:space="preserve">Argumente für Diff</x:String>
668670
<x:String x:Key="Text.Preferences.DiffMerge.DiffArgs.Tip" xml:space="preserve">Verfügbare Variablen: $LOCAL, $REMOTE</x:String>

‎src/Resources/Locales/el_GR.axaml‎

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -623,6 +623,7 @@
623623
<x:String x:Key="Text.Optional" xml:space="preserve">Προαιρετικό.</x:String>
624624
<x:String x:Key="Text.PageTabBar.New" xml:space="preserve">Δημιουργία νέας καρτέλας</x:String>
625625
<x:String x:Key="Text.PageTabBar.Tab.Close" xml:space="preserve">Κλείσιμο καρτέλας</x:String>
626+
<x:String x:Key="Text.PageTabBar.Tab.CloseBelow" xml:space="preserve">Κλείσιμο καρτελών από κάτω</x:String>
626627
<x:String x:Key="Text.PageTabBar.Tab.CloseOther" xml:space="preserve">Κλείσιμο άλλων καρτελών</x:String>
627628
<x:String x:Key="Text.PageTabBar.Tab.CloseRight" xml:space="preserve">Κλείσιμο καρτελών στα δεξιά</x:String>
628629
<x:String x:Key="Text.PageTabBar.Tab.CopyPath" xml:space="preserve">Αντιγραφή διαδρομής αποθετηρίου</x:String>
@@ -662,6 +663,7 @@
662663
<x:String x:Key="Text.Preferences.Appearance.UseAutoHideScrollBars" xml:space="preserve">Χρήση μπαρών κύλισης αυτόματης απόκρυψης</x:String>
663664
<x:String x:Key="Text.Preferences.Appearance.UseFixedTabWidth" xml:space="preserve">Χρήση σταθερού πλάτους καρτελών στη γραμμή τίτλου</x:String>
664665
<x:String x:Key="Text.Preferences.Appearance.UseNativeWindowFrame" xml:space="preserve">Χρήση εγγενούς πλαισίου παραθύρου</x:String>
666+
<x:String x:Key="Text.Preferences.Appearance.UseVerticalTabs" xml:space="preserve">Εμφάνιση καρτελών κάθετα</x:String>
665667
<x:String x:Key="Text.Preferences.DiffMerge" xml:space="preserve">ΕΡΓΑΛΕΙΟ DIFF/MERGE</x:String>
666668
<x:String x:Key="Text.Preferences.DiffMerge.DiffArgs" xml:space="preserve">Ορίσματα Diff</x:String>
667669
<x:String x:Key="Text.Preferences.DiffMerge.DiffArgs.Tip" xml:space="preserve">Διαθέσιμες μεταβλητές: $LOCAL, $REMOTE</x:String>

‎src/Resources/Locales/en_US.axaml‎

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -644,6 +644,7 @@
644644
<x:String x:Key="Text.Optional" xml:space="preserve">Optional.</x:String>
645645
<x:String x:Key="Text.PageTabBar.New" xml:space="preserve">Create New Tab</x:String>
646646
<x:String x:Key="Text.PageTabBar.Tab.Close" xml:space="preserve">Close Tab</x:String>
647+
<x:String x:Key="Text.PageTabBar.Tab.CloseBelow" xml:space="preserve">Close Tabs Below</x:String>
647648
<x:String x:Key="Text.PageTabBar.Tab.CloseOther" xml:space="preserve">Close Other Tabs</x:String>
648649
<x:String x:Key="Text.PageTabBar.Tab.CloseRight" xml:space="preserve">Close Tabs to the Right</x:String>
649650
<x:String x:Key="Text.PageTabBar.Tab.CopyPath" xml:space="preserve">Copy Repository Path</x:String>
@@ -685,6 +686,7 @@
685686
<x:String x:Key="Text.Preferences.Appearance.UseAutoHideScrollBars" xml:space="preserve">Use auto-hide scrollbars</x:String>
686687
<x:String x:Key="Text.Preferences.Appearance.UseFixedTabWidth" xml:space="preserve">Use fixed tab width in titlebar</x:String>
687688
<x:String x:Key="Text.Preferences.Appearance.UseNativeWindowFrame" xml:space="preserve">Use native window frame</x:String>
689+
<x:String x:Key="Text.Preferences.Appearance.UseVerticalTabs" xml:space="preserve">Show tabs vertically</x:String>
688690
<x:String x:Key="Text.Preferences.DiffMerge" xml:space="preserve">DIFF/MERGE TOOL</x:String>
689691
<x:String x:Key="Text.Preferences.DiffMerge.DiffArgs" xml:space="preserve">Diff Arguments</x:String>
690692
<x:String x:Key="Text.Preferences.DiffMerge.DiffArgs.Tip" xml:space="preserve">Available variables: $LOCAL, $REMOTE</x:String>

‎src/Resources/Locales/es_ES.axaml‎

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -648,6 +648,7 @@
648648
<x:String x:Key="Text.Optional" xml:space="preserve">Opcional.</x:String>
649649
<x:String x:Key="Text.PageTabBar.New" xml:space="preserve">Crear Nueva Página</x:String>
650650
<x:String x:Key="Text.PageTabBar.Tab.Close" xml:space="preserve">Cerrar Pestaña</x:String>
651+
<x:String x:Key="Text.PageTabBar.Tab.CloseBelow" xml:space="preserve">Cerrar Pestañas de Abajo</x:String>
651652
<x:String x:Key="Text.PageTabBar.Tab.CloseOther" xml:space="preserve">Cerrar Otras Pestañas</x:String>
652653
<x:String x:Key="Text.PageTabBar.Tab.CloseRight" xml:space="preserve">Cerrar Pestañas a la Derecha</x:String>
653654
<x:String x:Key="Text.PageTabBar.Tab.CopyPath" xml:space="preserve">Copiar Ruta del Repositorio</x:String>
@@ -689,6 +690,7 @@
689690
<x:String x:Key="Text.Preferences.Appearance.UseAutoHideScrollBars" xml:space="preserve">Usar barras de desplazamiento que se oculten automáticamente</x:String>
690691
<x:String x:Key="Text.Preferences.Appearance.UseFixedTabWidth" xml:space="preserve">Usar ancho de pestaña fijo en la barra de título</x:String>
691692
<x:String x:Key="Text.Preferences.Appearance.UseNativeWindowFrame" xml:space="preserve">Usar marco de ventana nativo</x:String>
693+
<x:String x:Key="Text.Preferences.Appearance.UseVerticalTabs" xml:space="preserve">Mostrar pestañas verticalmente</x:String>
692694
<x:String x:Key="Text.Preferences.DiffMerge" xml:space="preserve">HERRAMIENTA DIFF/MERGE</x:String>
693695
<x:String x:Key="Text.Preferences.DiffMerge.DiffArgs" xml:space="preserve">Argumentos para Diff</x:String>
694696
<x:String x:Key="Text.Preferences.DiffMerge.DiffArgs.Tip" xml:space="preserve">Variables disponibles: $LOCAL, $REMOTE</x:String>

‎src/Resources/Locales/fr_FR.axaml‎

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -592,6 +592,7 @@
592592
<x:String x:Key="Text.Optional" xml:space="preserve">Optionnel.</x:String>
593593
<x:String x:Key="Text.PageTabBar.New" xml:space="preserve">Créer un nouvel onglet</x:String>
594594
<x:String x:Key="Text.PageTabBar.Tab.Close" xml:space="preserve">Fermer l'onglet</x:String>
595+
<x:String x:Key="Text.PageTabBar.Tab.CloseBelow" xml:space="preserve">Fermer les onglets en dessous</x:String>
595596
<x:String x:Key="Text.PageTabBar.Tab.CloseOther" xml:space="preserve">Fermer les autres onglets</x:String>
596597
<x:String x:Key="Text.PageTabBar.Tab.CloseRight" xml:space="preserve">Fermer les onglets à droite</x:String>
597598
<x:String x:Key="Text.PageTabBar.Tab.CopyPath" xml:space="preserve">Copier le chemin vers le dépôt</x:String>
@@ -631,6 +632,7 @@
631632
<x:String x:Key="Text.Preferences.Appearance.UseAutoHideScrollBars" xml:space="preserve">Utiliser les barres de défilement masquées automatiquement</x:String>
632633
<x:String x:Key="Text.Preferences.Appearance.UseFixedTabWidth" xml:space="preserve">Utiliser des onglets de taille fixe dans la barre de titre</x:String>
633634
<x:String x:Key="Text.Preferences.Appearance.UseNativeWindowFrame" xml:space="preserve">Utiliser un cadre de fenêtre natif</x:String>
635+
<x:String x:Key="Text.Preferences.Appearance.UseVerticalTabs" xml:space="preserve">Afficher les onglets verticalement</x:String>
634636
<x:String x:Key="Text.Preferences.DiffMerge" xml:space="preserve">OUTIL DIFF/MERGE</x:String>
635637
<x:String x:Key="Text.Preferences.DiffMerge.DiffArgs" xml:space="preserve">Arguments de diff</x:String>
636638
<x:String x:Key="Text.Preferences.DiffMerge.DiffArgs.Tip" xml:space="preserve">Variables disponibles : $LOCAL, $REMOTE</x:String>

‎src/Resources/Locales/he_IL.axaml‎

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -592,6 +592,7 @@
592592
<x:String x:Key="Text.Optional" xml:space="preserve">לא חובה.</x:String>
593593
<x:String x:Key="Text.PageTabBar.New" xml:space="preserve">צור לשונית חדשה</x:String>
594594
<x:String x:Key="Text.PageTabBar.Tab.Close" xml:space="preserve">סגור לשונית</x:String>
595+
<x:String x:Key="Text.PageTabBar.Tab.CloseBelow" xml:space="preserve">סגור לשוניות מתחת</x:String>
595596
<x:String x:Key="Text.PageTabBar.Tab.CloseOther" xml:space="preserve">סגור לשוניות אחרות</x:String>
596597
<x:String x:Key="Text.PageTabBar.Tab.CloseRight" xml:space="preserve">סגור לשוניות מימין</x:String>
597598
<x:String x:Key="Text.PageTabBar.Tab.CopyPath" xml:space="preserve">העתק נתיב המאגר</x:String>
@@ -631,6 +632,7 @@
631632
<x:String x:Key="Text.Preferences.Appearance.UseAutoHideScrollBars" xml:space="preserve">שימוש בפסי גלילה המוסתרים אוטומטית</x:String>
632633
<x:String x:Key="Text.Preferences.Appearance.UseFixedTabWidth" xml:space="preserve">רוחב לשונית קבוע בשורת הכותרת</x:String>
633634
<x:String x:Key="Text.Preferences.Appearance.UseNativeWindowFrame" xml:space="preserve">שימוש במסגרת חלון מקומית</x:String>
635+
<x:String x:Key="Text.Preferences.Appearance.UseVerticalTabs" xml:space="preserve">הצג לשוניות אנכית</x:String>
634636
<x:String x:Key="Text.Preferences.DiffMerge" xml:space="preserve">כלי DIFF/MERGE</x:String>
635637
<x:String x:Key="Text.Preferences.DiffMerge.DiffArgs" xml:space="preserve">ארגומנטים ל־Diff</x:String>
636638
<x:String x:Key="Text.Preferences.DiffMerge.DiffArgs.Tip" xml:space="preserve">משתנים זמינים: $LOCAL, $REMOTE</x:String>

‎src/Resources/Locales/id_ID.axaml‎

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -624,6 +624,7 @@
624624
<x:String x:Key="Text.Optional" xml:space="preserve">Opsional.</x:String>
625625
<x:String x:Key="Text.PageTabBar.New" xml:space="preserve">Buat Tab Baru</x:String>
626626
<x:String x:Key="Text.PageTabBar.Tab.Close" xml:space="preserve">Tutup Tab</x:String>
627+
<x:String x:Key="Text.PageTabBar.Tab.CloseBelow" xml:space="preserve">Tutup Tab di Bawah</x:String>
627628
<x:String x:Key="Text.PageTabBar.Tab.CloseOther" xml:space="preserve">Tutup Tab Lain</x:String>
628629
<x:String x:Key="Text.PageTabBar.Tab.CloseRight" xml:space="preserve">Tutup Tab di Kanan</x:String>
629630
<x:String x:Key="Text.PageTabBar.Tab.CopyPath" xml:space="preserve">Salin Jalur Repositori</x:String>
@@ -664,6 +665,7 @@
664665
<x:String x:Key="Text.Preferences.Appearance.UseAutoHideScrollBars" xml:space="preserve">Gunakan scrollbar auto-hide</x:String>
665666
<x:String x:Key="Text.Preferences.Appearance.UseFixedTabWidth" xml:space="preserve">Gunakan lebar tab tetap di titlebar</x:String>
666667
<x:String x:Key="Text.Preferences.Appearance.UseNativeWindowFrame" xml:space="preserve">Gunakan frame window native</x:String>
668+
<x:String x:Key="Text.Preferences.Appearance.UseVerticalTabs" xml:space="preserve">Tampilkan tab secara vertikal</x:String>
667669
<x:String x:Key="Text.Preferences.DiffMerge" xml:space="preserve">DIFF/MERGE TOOL</x:String>
668670
<x:String x:Key="Text.Preferences.DiffMerge.DiffArgs" xml:space="preserve">Argumen Diff</x:String>
669671
<x:String x:Key="Text.Preferences.DiffMerge.DiffArgs.Tip" xml:space="preserve">Variabel tersedia: $LOCAL, $REMOTE</x:String>

‎src/Resources/Locales/it_IT.axaml‎

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -545,6 +545,7 @@ ${pure_files:N} Come ${files:N}, ma senza cartelle</x:String>
545545
<x:String x:Key="Text.Optional" xml:space="preserve">Opzionale.</x:String>
546546
<x:String x:Key="Text.PageTabBar.New" xml:space="preserve">Crea Nuova Pagina</x:String>
547547
<x:String x:Key="Text.PageTabBar.Tab.Close" xml:space="preserve">Chiudi Tab</x:String>
548+
<x:String x:Key="Text.PageTabBar.Tab.CloseBelow" xml:space="preserve">Chiudi i Tab Sotto</x:String>
548549
<x:String x:Key="Text.PageTabBar.Tab.CloseOther" xml:space="preserve">Chiudi Altri Tab</x:String>
549550
<x:String x:Key="Text.PageTabBar.Tab.CloseRight" xml:space="preserve">Chiudi i Tab a Destra</x:String>
550551
<x:String x:Key="Text.PageTabBar.Tab.CopyPath" xml:space="preserve">Copia Percorso Repository</x:String>
@@ -581,6 +582,7 @@ ${pure_files:N} Come ${files:N}, ma senza cartelle</x:String>
581582
<x:String x:Key="Text.Preferences.Appearance.UseAutoHideScrollBars" xml:space="preserve">Usa barre di scorrimento a scomparsa automatica</x:String>
582583
<x:String x:Key="Text.Preferences.Appearance.UseFixedTabWidth" xml:space="preserve">Usa larghezza fissa per i tab nella barra del titolo</x:String>
583584
<x:String x:Key="Text.Preferences.Appearance.UseNativeWindowFrame" xml:space="preserve">Usa cornice finestra nativa</x:String>
585+
<x:String x:Key="Text.Preferences.Appearance.UseVerticalTabs" xml:space="preserve">Mostra i tab verticalmente</x:String>
584586
<x:String x:Key="Text.Preferences.DiffMerge" xml:space="preserve">STRUMENTO DI DIFFERENZA/UNIONE</x:String>
585587
<x:String x:Key="Text.Preferences.DiffMerge.DiffArgs" xml:space="preserve">Argomenti Diff</x:String>
586588
<x:String x:Key="Text.Preferences.DiffMerge.DiffArgs.Tip" xml:space="preserve">Variabili disponibili: $LOCAL, $REMOTE</x:String>

‎src/Resources/Locales/ja_JP.axaml‎

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -638,6 +638,7 @@
638638
<x:String x:Key="Text.Optional" xml:space="preserve">省略可能</x:String>
639639
<x:String x:Key="Text.PageTabBar.New" xml:space="preserve">新しいタブを作成</x:String>
640640
<x:String x:Key="Text.PageTabBar.Tab.Close" xml:space="preserve">タブを閉じる</x:String>
641+
<x:String x:Key="Text.PageTabBar.Tab.CloseBelow" xml:space="preserve">下のタブを閉じる</x:String>
641642
<x:String x:Key="Text.PageTabBar.Tab.CloseOther" xml:space="preserve">他のタブを閉じる</x:String>
642643
<x:String x:Key="Text.PageTabBar.Tab.CloseRight" xml:space="preserve">右側のタブを閉じる</x:String>
643644
<x:String x:Key="Text.PageTabBar.Tab.CopyPath" xml:space="preserve">リポジトリへのパスをコピー</x:String>
@@ -679,6 +680,7 @@
679680
<x:String x:Key="Text.Preferences.Appearance.UseAutoHideScrollBars" xml:space="preserve">自動的にスクロールバーを隠す</x:String>
680681
<x:String x:Key="Text.Preferences.Appearance.UseFixedTabWidth" xml:space="preserve">タイトルバーに固定タブ幅を使用</x:String>
681682
<x:String x:Key="Text.Preferences.Appearance.UseNativeWindowFrame" xml:space="preserve">ネイティブなウィンドウフレームを使用</x:String>
683+
<x:String x:Key="Text.Preferences.Appearance.UseVerticalTabs" xml:space="preserve">タブを縦に表示</x:String>
682684
<x:String x:Key="Text.Preferences.DiffMerge" xml:space="preserve">差分/マージツール</x:String>
683685
<x:String x:Key="Text.Preferences.DiffMerge.DiffArgs" xml:space="preserve">差分時の引数</x:String>
684686
<x:String x:Key="Text.Preferences.DiffMerge.DiffArgs.Tip" xml:space="preserve">利用できる変数: $LOCAL, $REMOTE</x:String>

‎src/Resources/Locales/ko_KR.axaml‎

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -595,6 +595,7 @@
595595
<x:String x:Key="Text.Optional" xml:space="preserve">선택 사항.</x:String>
596596
<x:String x:Key="Text.PageTabBar.New" xml:space="preserve">새 탭 만들기</x:String>
597597
<x:String x:Key="Text.PageTabBar.Tab.Close" xml:space="preserve">탭 닫기</x:String>
598+
<x:String x:Key="Text.PageTabBar.Tab.CloseBelow" xml:space="preserve">아래쪽 탭 닫기</x:String>
598599
<x:String x:Key="Text.PageTabBar.Tab.CloseOther" xml:space="preserve">다른 탭 닫기</x:String>
599600
<x:String x:Key="Text.PageTabBar.Tab.CloseRight" xml:space="preserve">오른쪽 탭 닫기</x:String>
600601
<x:String x:Key="Text.PageTabBar.Tab.CopyPath" xml:space="preserve">저장소 경로 복사</x:String>
@@ -634,6 +635,7 @@
634635
<x:String x:Key="Text.Preferences.Appearance.UseAutoHideScrollBars" xml:space="preserve">스크롤바 자동 숨기기 사용</x:String>
635636
<x:String x:Key="Text.Preferences.Appearance.UseFixedTabWidth" xml:space="preserve">제목 표시줄에서 고정 탭 너비 사용</x:String>
636637
<x:String x:Key="Text.Preferences.Appearance.UseNativeWindowFrame" xml:space="preserve">네이티브 윈도우 프레임 사용</x:String>
638+
<x:String x:Key="Text.Preferences.Appearance.UseVerticalTabs" xml:space="preserve">탭을 세로로 표시</x:String>
637639
<x:String x:Key="Text.Preferences.DiffMerge" xml:space="preserve">DIFF/MERGE 도구</x:String>
638640
<x:String x:Key="Text.Preferences.DiffMerge.DiffArgs" xml:space="preserve">비교 인수</x:String>
639641
<x:String x:Key="Text.Preferences.DiffMerge.DiffArgs.Tip" xml:space="preserve">사용 가능한 변수: $LOCAL, $REMOTE</x:String>

0 commit comments

Comments
 (0)