Add terminal quick keys option and desktop toggle (#249)

* feat: add terminal quick keys toggle in OpenChamber UI

* feat: enhance mobile input handling in Terminal for Android devices
This commit is contained in:
Bohdan Triapitsyn
2026-01-30 14:48:53 +02:00
committed by GitHub
parent 1442e44e16
commit b74ac777f5
6 changed files with 74 additions and 10 deletions
@@ -79,6 +79,8 @@ export const TerminalView: React.FC = () => {
const { currentTheme } = useThemeSystem();
const { monoFont } = useFontPreferences();
const { isMobile, hasTouchInput } = useDeviceInfo();
const showTerminalQuickKeysOnDesktop = useUIStore((state) => state.showTerminalQuickKeysOnDesktop);
const showQuickKeys = isMobile || showTerminalQuickKeysOnDesktop;
const { currentSessionId, newSessionDraft } = useSessionStore();
const hasActiveContext = currentSessionId !== null || newSessionDraft?.open === true;
@@ -138,10 +140,10 @@ export const TerminalView: React.FC = () => {
}, [effectiveDirectory]);
React.useEffect(() => {
if (!isMobile && activeModifier !== null) {
if (!showQuickKeys && activeModifier !== null) {
setActiveModifier(null);
}
}, [isMobile, activeModifier, setActiveModifier]);
}, [showQuickKeys, activeModifier, setActiveModifier]);
React.useEffect(() => {
if (!terminalSessionId && activeModifier !== null) {
@@ -492,7 +494,7 @@ export const TerminalView: React.FC = () => {
);
React.useEffect(() => {
if (!isMobile || !activeModifier || !terminalSessionId) {
if (!showQuickKeys || !activeModifier || !terminalSessionId) {
return;
}
@@ -565,7 +567,7 @@ export const TerminalView: React.FC = () => {
activeModifier,
handleMobileKeyPress,
handleViewportInput,
isMobile,
showQuickKeys,
setActiveModifier,
terminalSessionId,
]);
@@ -693,7 +695,7 @@ export const TerminalView: React.FC = () => {
</Button>
</div>
</div>
{isMobile ? (
{showQuickKeys ? (
<div className="mt-2 flex flex-wrap items-center gap-1">
<Button
type="button"