global desktop mode feature

This commit is contained in:
Fabian Freund
2026-06-06 13:02:23 +02:00
parent ae7c9feb08
commit 4a12acab99
14 changed files with 229 additions and 4 deletions
@@ -105,6 +105,12 @@ const List<SettingsSectionDefinition> browsingSettingsSections = [
keywords: ['app links', 'external apps'],
child: _AppLinksModeSection(),
),
SettingsEntryDefinition(
title: 'Always Request Desktop Site',
subtitle: 'Open new tabs in desktop mode by default',
keywords: ['desktop mode', 'user agent', 'mobile site', 'tablet'],
child: _GlobalDesktopModeTile(),
),
],
),
SettingsSectionDefinition(
@@ -729,6 +735,35 @@ class _AppLinksModeSection extends HookConsumerWidget {
}
}
class _GlobalDesktopModeTile extends HookConsumerWidget {
const _GlobalDesktopModeTile();
@override
Widget build(BuildContext context, WidgetRef ref) {
final globalDesktopMode = ref.watch(
generalSettingsWithDefaultsProvider.select((s) => s.globalDesktopMode),
);
return SwitchListTile.adaptive(
title: const Text('Always Request Desktop Site'),
subtitle: const Text(
'Open new tabs in desktop mode by default. You can still toggle desktop '
'mode per tab from the page menu.',
),
secondary: const Icon(MdiIcons.monitor),
value: globalDesktopMode,
onChanged: (value) async {
await ref
.read(saveGeneralSettingsControllerProvider.notifier)
.save(
(currentSettings) =>
currentSettings.copyWith.globalDesktopMode(value),
);
},
);
}
}
class _PullToRefreshTile extends HookConsumerWidget {
const _PullToRefreshTile();