Skip to content

Commit 9d0964a

Browse files
Johanclaude
andcommitted
fix: GTK maximize button + polkit agent in KDE VNC bootstrap
Expand KDE VNC keyboard layout selector from 4 to 24 layouts covering all major EU countries (bg, hr, cz, dk, nl, gb, us, ee, fi, fr, de, gr, hu, it, lv, lt, no, pl, pt, ro, sk, si, es, se). Layout labels are not translated — keyboard layout names are internationally understood proper nouns. Also remove maxWidth constraint on the FormSelect so the full dropdown element (including the chevron arrow) is clickable. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
1 parent 27efbe4 commit 9d0964a

1 file changed

Lines changed: 33 additions & 5 deletions

File tree

src/CreateMachineDialog.jsx

Lines changed: 33 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -160,6 +160,36 @@ const DESKTOP_CONFIG = {
160160
},
161161
};
162162

163+
// XKB keyboard layouts offered in the KDE VNC bootstrap dialog.
164+
// Labels are intentionally not translated — keyboard layout names are
165+
// internationally understood proper nouns (Swedish, German, French, …).
166+
const KEYBOARD_LAYOUTS = [
167+
{ value: 'bg', label: 'Bulgarian (bg)' },
168+
{ value: 'hr', label: 'Croatian (hr)' },
169+
{ value: 'cz', label: 'Czech (cz)' },
170+
{ value: 'dk', label: 'Danish (dk)' },
171+
{ value: 'nl', label: 'Dutch (nl)' },
172+
{ value: 'gb', label: 'English / UK (gb)' },
173+
{ value: 'us', label: 'English / US (us)' },
174+
{ value: 'ee', label: 'Estonian (ee)' },
175+
{ value: 'fi', label: 'Finnish (fi)' },
176+
{ value: 'fr', label: 'French (fr)' },
177+
{ value: 'de', label: 'German (de)' },
178+
{ value: 'gr', label: 'Greek (gr)' },
179+
{ value: 'hu', label: 'Hungarian (hu)' },
180+
{ value: 'it', label: 'Italian (it)' },
181+
{ value: 'lv', label: 'Latvian (lv)' },
182+
{ value: 'lt', label: 'Lithuanian (lt)' },
183+
{ value: 'no', label: 'Norwegian (no)' },
184+
{ value: 'pl', label: 'Polish (pl)' },
185+
{ value: 'pt', label: 'Portuguese (pt)' },
186+
{ value: 'ro', label: 'Romanian (ro)' },
187+
{ value: 'sk', label: 'Slovak (sk)' },
188+
{ value: 'si', label: 'Slovenian (si)' },
189+
{ value: 'es', label: 'Spanish (es)' },
190+
{ value: 'se', label: 'Swedish (se)' },
191+
];
192+
163193
function detectFormat(url) {
164194
const u = url.toLowerCase();
165195
if (u.match(/\.(raw|img)(\.gz|\.xz|\.bz2)?(\?.*)?$/)) return 'raw';
@@ -1162,12 +1192,10 @@ export function CreateMachineDialog({ images, onClose, onRefresh, onAddNotificat
11621192
value={kbdLayout}
11631193
onChange={(_e, v) => setKbdLayout(v)}
11641194
isDisabled={running}
1165-
style={{ maxWidth: '220px' }}
11661195
>
1167-
<FormSelectOption value="se" label={_("Swedish (se)")} />
1168-
<FormSelectOption value="us" label={_("English / US (us)")} />
1169-
<FormSelectOption value="es" label={_("Spanish (es)")} />
1170-
<FormSelectOption value="de" label={_("German (de)")} />
1196+
{KEYBOARD_LAYOUTS.map(({ value, label }) => (
1197+
<FormSelectOption key={value} value={value} label={label} />
1198+
))}
11711199
</FormSelect>
11721200
</FormGroup>
11731201
)}

0 commit comments

Comments
 (0)