diff --git a/web/src/i18n/locales/cz.ts b/web/src/i18n/locales/cz.ts index 67b87ad..05cfb99 100644 --- a/web/src/i18n/locales/cz.ts +++ b/web/src/i18n/locales/cz.ts @@ -71,7 +71,8 @@ const cz = { tips: 'Podporovány jsou pouze standardní písmena a symboly klávesnice', placeholder: 'Zadejte text', submit: 'Odeslat', - virtual: 'Klávesnice' + virtual: 'Klávesnice', + ctrlaltdel: 'Ctrl+Alt+Del' }, mouse: { default: 'Výchozí kurzor', diff --git a/web/src/i18n/locales/da.ts b/web/src/i18n/locales/da.ts index d3a2847..5617dab 100644 --- a/web/src/i18n/locales/da.ts +++ b/web/src/i18n/locales/da.ts @@ -70,7 +70,8 @@ const da = { tips: 'Kun standard bogstaver og symboler er understøttet', placeholder: 'Indtast tekst', submit: 'Send', - virtual: 'Tastatur' + virtual: 'Tastatur', + ctrlaltdel: 'Ctrl+Alt+Del' }, mouse: { default: 'Standard-markør', diff --git a/web/src/i18n/locales/de.ts b/web/src/i18n/locales/de.ts index 4f8f571..b8248a6 100644 --- a/web/src/i18n/locales/de.ts +++ b/web/src/i18n/locales/de.ts @@ -71,7 +71,8 @@ const de = { tips: 'Nur Standard-Tastaturbuchstaben und Symbole werden unterstützt.', placeholder: 'Bitte eingeben', submit: 'Senden', - virtual: 'Virtuelle Tastatur' + virtual: 'Virtuelle Tastatur', + ctrlaltdel: 'Ctrl+Alt+Del' }, mouse: { default: 'Standard Cursor', diff --git a/web/src/i18n/locales/en.ts b/web/src/i18n/locales/en.ts index 9fb2fe2..ce98f97 100644 --- a/web/src/i18n/locales/en.ts +++ b/web/src/i18n/locales/en.ts @@ -69,7 +69,8 @@ const en = { tips: 'Only standard keyboard letters and symbols are supported', placeholder: 'Please input', submit: 'Submit', - virtual: 'Keyboard' + virtual: 'Keyboard', + ctrlaltdel: 'Ctrl+Alt+Del' }, mouse: { default: 'Default cursor', diff --git a/web/src/i18n/locales/es.ts b/web/src/i18n/locales/es.ts index e30b2e4..cd0ddf8 100644 --- a/web/src/i18n/locales/es.ts +++ b/web/src/i18n/locales/es.ts @@ -71,7 +71,8 @@ const en = { tips: 'Solo están soportadas las letras y símbolos estándar del teclado', placeholder: 'Por favor, introduce el texto', submit: 'Enviar', - virtual: 'Teclado virtual' + virtual: 'Teclado virtual', + ctrlaltdel: 'Ctrl+Alt+Del' }, mouse: { default: 'Cursor por defecto', diff --git a/web/src/i18n/locales/fr.ts b/web/src/i18n/locales/fr.ts index e468aa6..1bd1813 100644 --- a/web/src/i18n/locales/fr.ts +++ b/web/src/i18n/locales/fr.ts @@ -71,7 +71,8 @@ const fr = { tips: 'Seuls les caractères et symboles standard du clavier sont pris en charge', placeholder: 'Veuillez saisir', submit: 'Soumettre', - virtual: 'Clavier' + virtual: 'Clavier', + ctrlaltdel: 'Ctrl+Alt+Del' }, mouse: { default: 'Curseur par défaut', diff --git a/web/src/i18n/locales/hu.ts b/web/src/i18n/locales/hu.ts index 2c4f29c..eb65b15 100644 --- a/web/src/i18n/locales/hu.ts +++ b/web/src/i18n/locales/hu.ts @@ -71,7 +71,8 @@ const hu = { tips: 'Csak a szabványos billentyűzet betűi és szimbólumai támogatottak', placeholder: 'Írja be', submit: 'Elküldés', - virtual: 'Billentyűzet' + virtual: 'Billentyűzet', + ctrlaltdel: 'Ctrl+Alt+Del' }, mouse: { default: 'Alapértelmezett kurzor', diff --git a/web/src/i18n/locales/id.ts b/web/src/i18n/locales/id.ts index 17cf205..800d18c 100644 --- a/web/src/i18n/locales/id.ts +++ b/web/src/i18n/locales/id.ts @@ -70,7 +70,8 @@ const id = { tips: 'Hanya huruf dan simbol keyboard standar yang didukung', placeholder: 'Silahkan isi', submit: 'Kirimkan', - virtual: 'Keyboard' + virtual: 'Keyboard', + ctrlaltdel: 'Ctrl+Alt+Del' }, mouse: { default: 'Kursor bawaan', diff --git a/web/src/i18n/locales/it.ts b/web/src/i18n/locales/it.ts index 6f12328..4d78232 100644 --- a/web/src/i18n/locales/it.ts +++ b/web/src/i18n/locales/it.ts @@ -71,7 +71,8 @@ const it = { tips: 'Sono supportati solo lettere e simboli standard della tastiera', placeholder: 'Inserisci testo', submit: 'Invia', - virtual: 'Tastiera' + virtual: 'Tastiera', + ctrlaltdel: 'Ctrl+Alt+Del' }, mouse: { default: 'Cursore predefinito', diff --git a/web/src/i18n/locales/ja.ts b/web/src/i18n/locales/ja.ts index 9806963..f889961 100644 --- a/web/src/i18n/locales/ja.ts +++ b/web/src/i18n/locales/ja.ts @@ -71,7 +71,8 @@ const ja = { tips: '標準的なキーボードの文字と記号のみがサポートされています', placeholder: '入力してください', submit: '送信', - virtual: 'キーボード' + virtual: 'キーボード', + ctrlaltdel: 'Ctrl+Alt+Del' }, mouse: { default: 'デフォルトカーソル', diff --git a/web/src/i18n/locales/ko.ts b/web/src/i18n/locales/ko.ts index d18be16..59e9933 100644 --- a/web/src/i18n/locales/ko.ts +++ b/web/src/i18n/locales/ko.ts @@ -70,7 +70,8 @@ const ko = { tips: '표준 키보드 문자 및 기호만 지원됩니다', placeholder: '입력하세요', submit: '제출하다', - virtual: '키보드' + virtual: '키보드', + ctrlaltdel: 'Ctrl+Alt+Del' }, mouse: { default: '기본 커서', diff --git a/web/src/i18n/locales/nb.ts b/web/src/i18n/locales/nb.ts index 36053a8..e9e86d0 100644 --- a/web/src/i18n/locales/nb.ts +++ b/web/src/i18n/locales/nb.ts @@ -71,7 +71,8 @@ const nb = { tips: 'Kun vanlige tegn på tastatur er støttet', placeholder: 'Vennligst angi teksten du vil lime inn', submit: 'Lim inn', - virtual: 'Åpne tastatur' + virtual: 'Åpne tastatur', + ctrlaltdel: 'Ctrl+Alt+Del' }, mouse: { default: 'Vanlig', diff --git a/web/src/i18n/locales/nl.ts b/web/src/i18n/locales/nl.ts index 1769618..d6403e9 100644 --- a/web/src/i18n/locales/nl.ts +++ b/web/src/i18n/locales/nl.ts @@ -71,7 +71,8 @@ const nl = { tips: 'Alleen standaard toetsenbordletters en symbolen worden ondersteund', placeholder: 'Voer tekst in', submit: 'Verzenden', - virtual: 'Toetsenbord' + virtual: 'Toetsenbord', + ctrlaltdel: 'Ctrl+Alt+Del' }, mouse: { default: 'Standaard cursor', diff --git a/web/src/i18n/locales/pl.ts b/web/src/i18n/locales/pl.ts index 4d08be0..1f510ac 100644 --- a/web/src/i18n/locales/pl.ts +++ b/web/src/i18n/locales/pl.ts @@ -63,7 +63,8 @@ const pl = { tips: 'Tylko standardowe klawiaturowe znaki i symbole są obsługiwane.', placeholder: 'Proszę wprowadzić coś', submit: 'Prześlij', - virtual: 'Klawiatura' + virtual: 'Klawiatura', + ctrlaltdel: 'Ctrl+Alt+Del' }, mouse: { default: 'Domyślny kursor', diff --git a/web/src/i18n/locales/ru.ts b/web/src/i18n/locales/ru.ts index b0b3477..ed81156 100644 --- a/web/src/i18n/locales/ru.ts +++ b/web/src/i18n/locales/ru.ts @@ -71,7 +71,8 @@ const ru = { tips: 'Только стандартные буквы и символы клавиатуры поддерживаются', placeholder: 'Пожалуйста, введите', submit: 'подтверждать', - virtual: 'Клавиатура' + virtual: 'Клавиатура', + ctrlaltdel: 'Ctrl+Alt+Del' }, mouse: { default: 'Курсор по умолчанию', diff --git a/web/src/i18n/locales/uk.ts b/web/src/i18n/locales/uk.ts index 8756721..906c01d 100644 --- a/web/src/i18n/locales/uk.ts +++ b/web/src/i18n/locales/uk.ts @@ -71,7 +71,8 @@ const uk = { tips: 'Підтримуються лише стандартні літери та символи клавіатури', placeholder: 'Будь ласка, введіть', submit: 'Надіслати', - virtual: 'Клавіатура' + virtual: 'Клавіатура', + ctrlaltdel: 'Ctrl+Alt+Del' }, mouse: { default: 'Курсор за замовчуванням', diff --git a/web/src/i18n/locales/vi.ts b/web/src/i18n/locales/vi.ts index 42b7b6d..7e36e70 100644 --- a/web/src/i18n/locales/vi.ts +++ b/web/src/i18n/locales/vi.ts @@ -70,7 +70,8 @@ const vi = { tips: 'Chỉ hỗ trợ các chữ cái và ký hiệu bàn phím tiêu chuẩn', placeholder: 'Vui lòng nhập', submit: 'Gửi', - virtual: 'Bàn phím' + virtual: 'Bàn phím', + ctrlaltdel: 'Ctrl+Alt+Del' }, mouse: { default: 'Con trỏ mặc định', diff --git a/web/src/i18n/locales/zh.ts b/web/src/i18n/locales/zh.ts index ac43f67..55b7e68 100644 --- a/web/src/i18n/locales/zh.ts +++ b/web/src/i18n/locales/zh.ts @@ -67,7 +67,8 @@ const zh = { tips: '仅支持标准键盘的字母和符号', placeholder: '请输入内容', submit: '确定', - virtual: '虚拟键盘' + virtual: '虚拟键盘', + ctrlaltdel: 'Ctrl+Alt+Del' }, mouse: { default: '默认指针', diff --git a/web/src/i18n/locales/zh_tw.ts b/web/src/i18n/locales/zh_tw.ts index 14995a8..89a40dd 100644 --- a/web/src/i18n/locales/zh_tw.ts +++ b/web/src/i18n/locales/zh_tw.ts @@ -67,7 +67,8 @@ const zh_tw = { tips: '僅支援標準鍵盤字母和符號', placeholder: '請輸入內容', submit: '送出', - virtual: '虛擬鍵盤' + virtual: '虛擬鍵盤', + ctrlaltdel: 'Ctrl+Alt+Del' }, mouse: { default: '預設游標', diff --git a/web/src/pages/desktop/menu/keyboard/ctrl-alt-del.tsx b/web/src/pages/desktop/menu/keyboard/ctrl-alt-del.tsx new file mode 100644 index 0000000..290ef51 --- /dev/null +++ b/web/src/pages/desktop/menu/keyboard/ctrl-alt-del.tsx @@ -0,0 +1,31 @@ +import clsx from 'clsx'; +import { useTranslation } from 'react-i18next'; +import { OctagonMinus } from 'lucide-react'; + +import { KeyboardCodes, ModifierCodes } from '@/pages/desktop/keyboard/mappings.ts'; +import { client } from '@/lib/websocket.ts'; + +export const CtrlAltDel = () => { + const { t } = useTranslation(); + + function sendCtrlAltDel() { + const ctrl = ModifierCodes.get('ControlLeft')!; + const alt = ModifierCodes.get('AltLeft')!; + const del = KeyboardCodes.get('Delete')!; + + client.send([1, del, ctrl, 0, alt, 0]); + client.send([1, 0, 0, 0, 0, 0]); + }; + + return ( +
+ + {t('keyboard.ctrlaltdel')} +
+ ); +} diff --git a/web/src/pages/desktop/menu/keyboard/index.tsx b/web/src/pages/desktop/menu/keyboard/index.tsx index 854d7d7..e96f8d7 100644 --- a/web/src/pages/desktop/menu/keyboard/index.tsx +++ b/web/src/pages/desktop/menu/keyboard/index.tsx @@ -4,6 +4,7 @@ import { KeyboardIcon } from 'lucide-react'; import { Paste } from './paste.tsx'; import { VirtualKeyboard } from './virtual-keyboard.tsx'; +import { CtrlAltDel } from './ctrl-alt-del.tsx'; export const Keyboard = () => { const [isPopoverOpen, setIsPopoverOpen] = useState(false); @@ -12,6 +13,7 @@ export const Keyboard = () => { <> + );