Working towards parity with GNOME Settings, which splits pointing devices into their own panel. Panama had pointer speed and focus-follows buried under a page called "Input & Shortcuts", and had nothing at all for scroll direction, acceleration profile, scroll speed, left-handed buttons, or any touchpad setting -- all of which could only be changed by editing hypr/input.lua by hand, which is the thing this app exists to stop. Every new mapping was read back off the running compositor rather than assumed, and two were not what they look like: touchpad drag lock is an int with three states, not a switch, and scroll factors are floats even at their default of exactly 1. Getting either wrong makes every write to that setting look rejected. The shape contract now covers 35 mapped options, up from 23. The touchpad card renders only when a touchpad is attached, which is what InputDevices is for. On a desktop it would be worse than useless: every switch on it would appear to work, because the preference is stored and Hyprland accepts an option for a device class it has no member of, so the settings would silently affect nothing. Keyboard layout was read-only text, justified by a note saying changes needed a compositor reload. That is not true in 0.56.2 -- setting input:kb_variant through hl.config re-keymaps attached keyboards immediately, verified by watching active_keymap on a real keyboard change to "English (US, intl., with dead keys)" and back. So layout, variant, and options are now real controls, joined by a TextEntryRow that commits on Enter or focus loss rather than per keystroke, since half a layout name is a valid string meaning something else. Rejected input is shown as rejected rather than sanitised: these strings are serialised into an hl.config payload, where stripping an unexpected character would turn a typo into a different working setting. Verified each new pointer option applies and reverts against the live compositor. Schema, search, commit/reset, and system contracts pass. Claude-Session: https://claude.ai/code/session_01BRvzt4H8XXLPVH5MyYdk9L
51 lines
1.7 KiB
Plaintext
51 lines
1.7 KiB
Plaintext
module qs.modules.settings
|
|
AboutPage 1.0 AboutPage.qml
|
|
AppearancePage 1.0 AppearancePage.qml
|
|
ConnectivityPage 1.0 ConnectivityPage.qml
|
|
HomePhonePage 1.0 HomePhonePage.qml
|
|
HomeFavoriteCard 1.0 HomeFavoriteCard.qml
|
|
AvailableLightRow 1.0 AvailableLightRow.qml
|
|
DesktopPage 1.0 DesktopPage.qml
|
|
DisplaysPage 1.0 DisplaysPage.qml
|
|
HomePage 1.0 HomePage.qml
|
|
NotificationsPage 1.0 NotificationsPage.qml
|
|
ScreenIntelligencePage 1.0 ScreenIntelligencePage.qml
|
|
ServicesPage 1.0 ServicesPage.qml
|
|
SettingRow 1.0 SettingRow.qml
|
|
SettingsCard 1.0 SettingsCard.qml
|
|
SettingsButton 1.0 SettingsButton.qml
|
|
SettingsShell 1.0 SettingsShell.qml
|
|
SettingsSidebar 1.0 SettingsSidebar.qml
|
|
SettingsToggle 1.0 SettingsToggle.qml
|
|
SettingsWindow 1.0 SettingsWindow.qml
|
|
ShortcutsPage 1.0 ShortcutsPage.qml
|
|
SoundPage 1.0 SoundPage.qml
|
|
SettingsPage 1.0 SettingsPage.qml
|
|
ToggleRow 1.0 ToggleRow.qml
|
|
SliderRow 1.0 SliderRow.qml
|
|
ChoiceRow 1.0 ChoiceRow.qml
|
|
ActionRow 1.0 ActionRow.qml
|
|
TextRow 1.0 TextRow.qml
|
|
DesktopPreview 1.0 DesktopPreview.qml
|
|
PowerPage 1.0 PowerPage.qml
|
|
DateTimePage 1.0 DateTimePage.qml
|
|
AccessibilityPage 1.0 AccessibilityPage.qml
|
|
WallpaperPicker 1.0 WallpaperPicker.qml
|
|
ApplicationsPage 1.0 ApplicationsPage.qml
|
|
DockPinsEditor 1.0 DockPinsEditor.qml
|
|
DockAppPicker 1.0 DockAppPicker.qml
|
|
ShortcutCapture 1.0 ShortcutCapture.qml
|
|
ChoiceGrid 1.0 ChoiceGrid.qml
|
|
DisplayModePicker 1.0 DisplayModePicker.qml
|
|
WifiPanel 1.0 WifiPanel.qml
|
|
BluetoothPanel 1.0 BluetoothPanel.qml
|
|
PasswordField 1.0 PasswordField.qml
|
|
AudioBalance 1.0 AudioBalance.qml
|
|
SoundDeviceList 1.0 SoundDeviceList.qml
|
|
SoundDeviceRow 1.0 SoundDeviceRow.qml
|
|
TimeOfDayRow 1.0 TimeOfDayRow.qml
|
|
LocationPicker 1.0 LocationPicker.qml
|
|
FontPicker 1.0 FontPicker.qml
|
|
MousePage 1.0 MousePage.qml
|
|
TextEntryRow 1.0 TextEntryRow.qml
|