os-mockups issueshttps://gitlab.gnome.org/Teams/Design/os-mockups/-/issues2024-02-20T13:42:39Zhttps://gitlab.gnome.org/Teams/Design/os-mockups/-/issues/245Initial setup shell design2024-02-20T13:42:39ZAllan DayInitial setup shell design![image](/uploads/875112dfc421bd83088907ff16765790/image.png)
There was some previous design discussion about what to expose in the initial setup shell (in https://gitlab.gnome.org/GNOME/gnome-shell/-/issues/6143), but it stalled and we...![image](/uploads/875112dfc421bd83088907ff16765790/image.png)
There was some previous design discussion about what to expose in the initial setup shell (in https://gitlab.gnome.org/GNOME/gnome-shell/-/issues/6143), but it stalled and we never figured out exactly what we wanted. It would be good to bring the design process for that to a conclusion.
Some background notes:
* Testing GNOME 46 alpha today, when initial setup is running, you can see:
* Accessibility menu
* Quick settings, containing:
* Screenshot
* Power off menu (currently only containing suspend - see )
* Network
* Power mode
* Dark mode
* Previously we've had the goal of not exposing system text during initial setup, since the locale of the shell can't be updated when someone selects a language in initial setup. However, the point we previously got stuck on is that any alternative UI which doesn't expose any text is unlikely to get much testing (and isn't an attractive thing to sink a lot of time into).
* Previously I argued against exposing a power off during initial setup, but that's been questioned in https://gitlab.gnome.org/GNOME/gnome-initial-setup/-/issues/207.
* The initial setup mockups include unimplemented designs for setting more than one keyboard layout, which would result in the shell input source menu also being displayed.
* Another thorny question is the screenshot UI.
* One direction we've previously explored is moving the accessibility menu into initial setup itself (see https://gitlab.gnome.org/GNOME/gnome-initial-setup/-/issues/77). Would it be interesting to take that further, and move all the shell functionality into initial setup?
* Installers are another potential consumer of this more limited shell environment. Fedora already does this. GNOME OS could do it to. That potentially makes the idea of moving system controls into initial setup less appealing...
@fmuellner @halfline @snwh @mcatanzarohttps://gitlab.gnome.org/Teams/Design/os-mockups/-/issues/242Workspace switcher OSD post gnome 452024-03-20T15:23:27ZJordan PetridisWorkspace switcher OSD post gnome 45In 45 we got the amazing workspace indicator that replaced the activities button. It's nice and it animates, as well as being uniquely shaped.
However we also still have the OSD indicator when using the Super+PageUp/PageDown. Which is u...In 45 we got the amazing workspace indicator that replaced the activities button. It's nice and it animates, as well as being uniquely shaped.
However we also still have the OSD indicator when using the Super+PageUp/PageDown. Which is using dots (not a pill), it's differently styled and doesn't animate.
Maybe we could remove the OSD now that the workspace pill is always visible?https://gitlab.gnome.org/Teams/Design/os-mockups/-/issues/240Redesign Screen Reader Preferences2024-01-22T13:23:54ZSam Hewittsnwh@gnome.orgRedesign Screen Reader PreferencesOrca is one of the core accessibility features but its preferences dialog is from another decade and still uses many of the old UI patterns.
![image](/uploads/c548caa468d723a88c34feffd1f8a04e/image.png)
Might be worth thinking about ex...Orca is one of the core accessibility features but its preferences dialog is from another decade and still uses many of the old UI patterns.
![image](/uploads/c548caa468d723a88c34feffd1f8a04e/image.png)
Might be worth thinking about exposing what we can in a new screen reader subpanel in gnome-control-center, while possibly deferring to this more advanced panel where that panel would be insufficient.https://gitlab.gnome.org/Teams/Design/os-mockups/-/issues/239Explore local LLMs for a11y2024-01-06T01:56:12ZTobias BernardExplore local LLMs for a11yWe currently don't have a good story for text-to-speech (the screen reader voice is terrible), speech-to-text (we have nothing), or translation (we have nothing). A lot of this was very hard to do locally until recently, but things like ...We currently don't have a good story for text-to-speech (the screen reader voice is terrible), speech-to-text (we have nothing), or translation (we have nothing). A lot of this was very hard to do locally until recently, but things like [Live Captions](https://flathub.org/apps/net.sapples.LiveCaptions) and [Firefox translations](https://support.mozilla.org/en-US/kb/website-translation) are examples of using fancy new LLM tech to enable these features completely offline.
It'd be great to explore the space a bit and consider how we could use this to provide system services for, e.g.
- Reading text out loud
- Screen reader
- Narration feature in e.g. web browsers or writing apps
- Transcribing audio
- Live subtitles as a system feature
- Transcribing voice memos
- Could be the basis for a fully speech interaction mode for a11y?
- Translations
- Fancier spell check/grammar checkhttps://gitlab.gnome.org/Teams/Design/os-mockups/-/issues/238Text & UI Scaling2024-01-16T19:29:02ZSam Hewittsnwh@gnome.orgText & UI ScalingThere's two big elements to scaling that need to be accommodated so people can make best use of their systems: display scaling (so that the overall UI optimally fits the resolution of their current display), and text scaling (all text be...There's two big elements to scaling that need to be accommodated so people can make best use of their systems: display scaling (so that the overall UI optimally fits the resolution of their current display), and text scaling (all text being displayed at a size that is legible). Both are used either in unison or separately for better or increased UI legibility on GNOME.
Other platforms support a wide range of options for display scale and text size, both for accessibility and hardware support.
### Problems
- text scaling (specifically the Large Text, a11y feature) is being used by people as a stop-gap for non-optimal UI scaling on their devices with dense displays [[1]](https://mastodon.social/@nekohayo/111517083598808256)
- others have been lowering the resolution of their display so the UI is "scaled" and more legible as a workaround to their scaling factor not being available
- integer scaling is insufficient for many display types--namely laptops where there are non-integer multiple of base HD resolution sizes on a given display, e.g. 2560x1600 (1280x800@2), 3200x1800 (1600x900@2) which are both 720p+-- where they need to be scaled up to an integer value and scaled down to fit.
### Goals
- support fractional scaling to better accommodate display diversity (and a11y needs)
- support greater Font Size options to give more flexibility in the a11y option for text
- insure other modules (e.g. the Shell) support changes in text and UI scale options and display correctly
## Font Scaling
Currently the Large Text setting is the only text-scaling settings exposed in the UI and it simply sets a 1.25 scaling factor. People who may want to change the font size of the UI may want more granularity here to accommodate their vision. There is [an issue filed](https://gitlab.gnome.org/GNOME/gnome-control-center/-/issues/1648) about expanding this support and bringing over the already existing font scaling options from Tweaks into gnome-control-center proper. Here some updated designs will be needed for how to present expanded text scaling and replace the single switch for "Large Text".
Some concerns:
- non-GTK applications don't follow the font scaling setting: https://gitlab.gnome.org/GNOME/gnome-tweaks/-/issues/375
## Fractional (UI) Scaling
### Experimental Mutter Feature
There is an experimental mutter feature `scale-monitor-framebuffer` that allows for more options to be shown in Settings:
> the coordinate space for each monitor is scaled according to their individual scaling factor, and instead of having GNOME Shell manually drawing itself twice as large, it draws itself with an unchanged logical size, but uses higher resolution images or font caches. [[2]](https://discourse.gnome.org/t/full-explanation-of-current-hidpi-fractional-and-integer-scaling-support-in-wayland/14225/2)
It's been relegated to being experimental because of [concerns about legacy applications not being properly displayed or appearing blurry](https://gitlab.gnome.org/GNOME/gnome-control-center/-/issues/1351) bu users can nonetheless enable this feature manually.
I believe there's some work underway to better enable x11 applications to run under wayland via ["Xwayland rootful"](https://ofourdan.blogspot.com/2023/10/xwayland-rootful-part1.html).
### New UI in Settings
[Allan has already made designs](https://gitlab.gnome.org/GNOME/gnome-control-center/-/issues/2516) for a settings UI that presents fractional scaling options which there is [already progress](https://gitlab.gnome.org/GNOME/gnome-control-center/-/merge_requests/1833) towards implementing. (The big caveat here is this is only still seen with the experimental feature enabled!)
### Related Issues
- https://gitlab.gnome.org/GNOME/gnome-control-center/-/issues/2076
- https://gitlab.gnome.org/GNOME/gnome-shell/-/issues/1008
## Other Material
- Old Wiki Initiative: https://wiki.gnome.org/Initiatives/FracionalScalinghttps://gitlab.gnome.org/Teams/Design/os-mockups/-/issues/235Design System Level "Reduced Animation"2023-11-21T23:55:43ZJakub SteinerDesign System Level "Reduced Animation"As can be seen from the discussion on the [Loupe issue](https://gitlab.gnome.org/GNOME/loupe/-/issues/245#note_1918591), the current status quo doesn't seem to be appealing to people sensitive to animation, due to it being "turn all anim...As can be seen from the discussion on the [Loupe issue](https://gitlab.gnome.org/GNOME/loupe/-/issues/245#note_1918591), the current status quo doesn't seem to be appealing to people sensitive to animation, due to it being "turn all animation off". There's a few reasons why turning animation globally is more of a technical setting and should be separate from accessibilities "Reduce Motion":
* Animation does help creating a spatial interaction model
* Just turning off some animation effectively breaks the UI, eg. progress indicator.
We should design a system wide reduce motion framework.Jakub SteinerJakub Steinerhttps://gitlab.gnome.org/Teams/Design/os-mockups/-/issues/234Use dedicated symbolic for dropdown with mutually exclusive options.2024-01-16T20:16:05ZPhilipp SUse dedicated symbolic for dropdown with mutually exclusive options.Currently drop-down menus use the GTK_ARROW_DOWN symbolic regardless whether the pop-up opens a menu with actions or a list of options like a combo row. Apple introduced an up+down arrow on its platforms some time ago for dropdowns with ...Currently drop-down menus use the GTK_ARROW_DOWN symbolic regardless whether the pop-up opens a menu with actions or a list of options like a combo row. Apple introduced an up+down arrow on its platforms some time ago for dropdowns with mutually exclusive options (https://developer.apple.com/design/human-interface-guidelines/pop-up-buttons).
Adopting this would more clearly differentiate a list of options from a menu with actions especially with the flat header bar style of libadwaita. It could also be used in combo rows where it would remove the mismatch of the downward pointing arrow and a menu popup that can also appear above the row.https://gitlab.gnome.org/Teams/Design/os-mockups/-/issues/233Boot Repair2023-11-15T13:10:49ZSam Hewittsnwh@gnome.orgBoot Repair# Repair Environment
Due to some of the [ongoing work around system encryption and homed integration](https://gitlab.gnome.org/Teams/STF/homed/), it's evident that a bootable recovery environment is needed to address errors that are inc...# Repair Environment
Due to some of the [ongoing work around system encryption and homed integration](https://gitlab.gnome.org/Teams/STF/homed/), it's evident that a bootable recovery environment is needed to address errors that are incurred sometimes before the OS can boot, namely:
- a change in hardware or firmware or the possibility that malware got into the bootloader, that requires user intervention
It's also clear that relying on Plymouth is insufficient here in terms of UI, a11y and translation, so a minimal [initial-setup-like session paired with a recovery application](https://gitlab.gnome.org/Teams/STF/homed/-/issues/22) is the current line of thinking.
# Relevant Material
## macOS
**Recovery Session with Utilities App**
available actions:
- restore from backup (Time Machine)
- reinstall OS
- disk utility
- regular Mac disk utility
- support links
- opens local documentation in a web view (Safari)
additional utilities:
- startup security
- adjusting firmware settings
- networking
- terminal access
Intel Macs:
![image](/uploads/1722d737a2330f58075974eeb5f78b4e/image.png)
Apple Silicon:
![image](/uploads/5b544bb30020d42641daee4d807ce970/image.png)
## Windows 10/11
**Entering When Error**
- prompted to automatically fix the issue
- presented with advanced options (see below)
![image](/uploads/6fc7062d8c29ccaca0d73d00ddef521d/image.png)
**Manually Boot**
primary actions:
- continue to boot
- troubleshoot
- shut down
![image](/uploads/e34cc83330cd6a6a7b70fe567554b912/image.png)
advanced actions
- boot repair
- change startup settings
- system rollback (via system restore and undoing updates)
- UEFI settings (reboots to firmware)
- terminal/cli access
![image](/uploads/fb28ab7eb9684881044b5d29edb05d7a/image.png)https://gitlab.gnome.org/Teams/Design/os-mockups/-/issues/232Credentials and Authentication Portals2023-10-27T14:49:41ZSam Hewittsnwh@gnome.orgCredentials and Authentication PortalsTo summarize the problem: one of the biggest missing pieces for sandboxed apps is the ability to communicate with multifactor authentication methods in order for users to verify their identity. The most obvious case is a sandboxed browse...To summarize the problem: one of the biggest missing pieces for sandboxed apps is the ability to communicate with multifactor authentication methods in order for users to verify their identity. The most obvious case is a sandboxed browser when a website is asking for authentication, the browser's native prompt appears but hangs because it cannot communicate with the authentication device. This may extend to other applications that support sign-in verification with an authentication token, e.g. password managers.
**Proposed Portal**
There is a [proposed D-Bus portal](https://github.com/AlfioEmanueleFresta/xdg-credentials-portal) to allow flatpaked applications to eventually support multifactor authentication methods (U2F, webauthn, FIDO2, etc.), but it doesn't elaborate on what the UI/UX is there. Demo of the prototype from the project's github:
![image](https://camo.githubusercontent.com/66a7cc9fb77eb37920b2035cd3ca1028f914fbfa8d43c92668c6663cd36fe70c/68747470733a2f2f6d656469612e67697068792e636f6d2f6d656469612f4a6f367965384e765946325a324f646235622f67697068792e676966)
Some work is happening around device permissions portals, which may end up including authentication tokens, GNOME should have a design ready for implementation.
- might tie into the passwordless Login work: #220
## Tentative Goals
- GNOME-native credentials/authentication portal for sandboxed applications
- OS-level authentication to allow you to sign into devices, apps, online account, etc. using configured biometrics or other 2-factor authentication methods
# Relevant Material
- webauthn demo: https://webauthn.io/
- [Flatpak issue](https://github.com/flatpak/xdg-desktop-portal/issues/989)
- [Discourse discussion](https://discourse.gnome.org/t/fido-u2f-webauthn-portal/1727)
### Browsers
**Firefox**
webauthn prompt:
![image](/uploads/f7c0c2cab8f4972f081f8389bd74e04a/image.png)
**Chrome**
webauthn prompt:
![image](/uploads/ec3e1b6b33104dbfb5ba031a0b195bd6/image.png)
### Android
The OS uses on-device biometrics alongside security keys to authenticate your identity
![image](/uploads/e21abb868f49606c4e13e5557bd2b00d/image.png)
Beta implementation of on-device passkeys:
![image](/uploads/e80acd3ff3b08913b6f6ce892178c69e/image.png)
### iOS
OS-level prompt for sign-in authentication with a security key:
![2023-10-19_10-45-00](/uploads/e67d7c863e21f6b279cbf11113edf9a5/2023-10-19_10-45-00.jpeg)
Multiple options:
![image](/uploads/4ba2af8a2c74f5d60ef544985168ae38/image.png)
### Windows Hello
Windows Hello is more integrated with the user account and supports more than just security keys--all of which can be set-up in user settings--and is synced if you are signed into Windows with a Microsoft account.
Single Authentication method:
![Screenshot_from_2023-10-18_16-57-21](/uploads/2ecd3b99b528c22b49d1e42cab02c6d9/Screenshot_from_2023-10-18_16-57-21.png)
Multiple methods available:
![image](/uploads/b0dcb21b5d8ec28b5589d2a51aab0c73/image.png)
Account Settings - Sign-in options
![image](/uploads/e75db8022dd715950e117fee40708f0f/image.png)https://gitlab.gnome.org/Teams/Design/os-mockups/-/issues/231Assistant to help user choose multi-monitor mode and primary display2024-03-23T08:11:03ZKhảiAssistant to help user choose multi-monitor mode and primary displayThis issue was suggested by https://gitlab.gnome.org/GNOME/mutter/-/issues/2487#note_1867162
## Situation 1: When the user add a second monitor to a single monitor setup
Display an assistant dialog that asks the user whether to "Join" ...This issue was suggested by https://gitlab.gnome.org/GNOME/mutter/-/issues/2487#note_1867162
## Situation 1: When the user add a second monitor to a single monitor setup
Display an assistant dialog that asks the user whether to "Join" displays or "Mirror" them.
If the user choose "Join", ask for the primary monitor like in Situation 2.
## Situation 2: When GNOME detects multiple monitors for the first time
Show clickable numbers on each monitor with the message "Click this number to set this display as primary" under each of them. (Better suggestions are welcomed)
## Additional config
Whilst the above features would be useful in guiding beginners, it could annoy experienced users. There should be a way for the user to turn this kinds of assistant off.https://gitlab.gnome.org/Teams/Design/os-mockups/-/issues/230Modernize Passwords & Keyring UI2023-10-11T15:18:20ZSam Hewittsnwh@gnome.orgModernize Passwords & Keyring UIThe user interface of Seahorse (a.k.a. Passwords and Keys) is rather dated and is due having its UI updated. Additionally, its purpose to end users unclear when it comes to how they are meant to use or interact with it; managing the keyr...The user interface of Seahorse (a.k.a. Passwords and Keys) is rather dated and is due having its UI updated. Additionally, its purpose to end users unclear when it comes to how they are meant to use or interact with it; managing the keyring or certifications is relatively technical vs. managing saved user/identity or application passwords.
### Things to Address
1. Modernize the keyring user interface and flow of adding and updating keys
2. Design a flow for Applications to add things on the User's behalf to Passwords/Keyring
3. Improve display of passwords/keys in the keyring to the user.
### Open Questions
1. Viewing Account/Identity passwords in Settings?
- this is common on mobile devices, where Accounts on the devices are viewable as a Settings panel
- GOA shows accounts but credentials are stored in keyring app--this relationship isn't clear
2. Split up the keyring and user identities/passwords into two applications?
- aforementioned settings panel for user identities & a focused keyring application for gpg, ssh, etc.?
### Relevant Material
- [Pending seahorse GTK4 port](https://gitlab.gnome.org/GNOME/seahorse/-/merge_requests/207)
## Outdated Mockups
- [Passwords and Keys mockup from Allan](https://github.com/gnome-design-team/gnome-mockups/blob/master/passwords-and-keys/passwords-and-keys.png)
## Relevant Art
There's sparse relevant material for this, especially key management as that seems unique to *nix OSes. Things to look at might be Password manager applications to expand on this.
**Mac OS**
Their keyring application is equally technical, but users would rarely have to touch this (it's buried in Utilities folder).
![Screenshot_from_2023-10-10_17-46-45](/uploads/8cbd80685e8622ffe2ffd994c8815a41/Screenshot_from_2023-10-10_17-46-45.png)
**Termius - iOS Terminal App**
This application has a nifty UI for their internal keychain, allowing for manually adding keys and identities.
![IMG_0587](/uploads/eed512e1826de049f61d1f048ea2a550/IMG_0587.jpg)
![IMG_0589](/uploads/9884676508d5fc7452ae72929b1f129b/IMG_0589.jpg)https://gitlab.gnome.org/Teams/Design/os-mockups/-/issues/229Battery charge limiting2023-10-17T18:49:27ZAllan DayBattery charge limitingDesigns for a setting which limits how much the battery is charged, in order to preserve its charge capacity. There's a design already documented for this, here: https://gitlab.gnome.org/GNOME/gnome-control-center/-/issues/2553
However...Designs for a setting which limits how much the battery is charged, in order to preserve its charge capacity. There's a design already documented for this, here: https://gitlab.gnome.org/GNOME/gnome-control-center/-/issues/2553
However, there are still some outstanding design questions, including:
* What to call the mode? Possibilities include:
* "Battery Charge Limiting"
* "Battery Health"
* "Battery Protection"
* Visuals to indicate when the mode is on - the initial idea was to show a small icon next to the battery icon. It could be a leaf, or a heart.
## Relevant Material
- ["How to limit Battery Charge in Windows 11/10"](https://www.thewindowsclub.com/how-to-limit-battery-charge-in-windows), an article highlighting the various OEM methods and terms for the feature
**iOS "Battery Health" panel under "Battery" settings**
- no option to configure threshold level, simply a single switch to disable the optimized charging settings
- iOS displays a notification telling you it's charged your device to an optimal level and is slowing charging and suggests to unplug
![ios_battery](/uploads/f9c5a1109dc224558b1931831f560d6a/ios_battery.png)
**Lenovo "Vantage" battery threshold settings**
- can disable threshold charging completely
- threshold levels can be set all the way down to 45%
- ties into Windows battery indicator where a leaf-icon is displayed on status icon
![thinkvantage_battery](/uploads/02a282d21f5c0a812858402a098bc34d/thinkvantage_battery.png)https://gitlab.gnome.org/Teams/Design/os-mockups/-/issues/228Do not disturb button placement / Automatic activaton2023-08-17T09:41:38ZKolja LampeDo not disturb button placement / Automatic activatonHey,
I keep running into this pattern at work. Where I usually remember to set `do not disturb` before meetings/presentations, but sometimes not.
But sometimes, I present and get a message and haven't set DND - going into my notificat...Hey,
I keep running into this pattern at work. Where I usually remember to set `do not disturb` before meetings/presentations, but sometimes not.
But sometimes, I present and get a message and haven't set DND - going into my notification panel and setting the DND button is then very awkward, as everybody would be able to see my messages.
1. I'm not sure if it could be positioned better, I at least can't come up with a better positioning
2. I guess it could be made aware of pipewire screensharing and then automatically activate?https://gitlab.gnome.org/Teams/Design/os-mockups/-/issues/224Screen casting2023-08-13T21:34:23ZAllan DayScreen castingAllow someone to cast from their computer to displays that are on the network.
## Goals
Network displays can be TVs in a home setting or large displays in meeting rooms, auditoriums, etc.
Use cases:
* Quickly show something on your ...Allow someone to cast from their computer to displays that are on the network.
## Goals
Network displays can be TVs in a home setting or large displays in meeting rooms, auditoriums, etc.
Use cases:
* Quickly show something on your screen to others - a website, photos, a document
* Give a presentation - use a network display as a projector for slides
* Demos using one or multiple windows
* Combinations of the above
Design goals:
* Casting to a display should be as frictionless as possible
* Help to prevent people accidentally showing content that they don't want to share
* Allow people to easily identify network displays, for reuse in the future
* Handle various network states:
* You are offline
* You aren't connected to the network that the display is on
* The display is offline
Some technical requirements
* Some network displays have an authorization step before you can connect ("Allow Angela's computer to connect to this device?")
* Handle cases where the resolution is changed on the network display
## Constraints
* Network bandwidth can be a limiting factor - there may be performance issues, particularly when streaming at high resolutions. For this reason, people may want to lower the resolution when mirroring.
* There are some oddities around how network displays appear in the display settings:
* When a network display is extended, it will show up in the display settings like a normal display.
* When a network display is being mirrored - the display settings don't show the standard mirroring configuration. Instead, the primary display is mirrored to the network display, and it's possible to have extended displays at the same time.
* The initial MVP needs to be limited to either only mirroring or only extending.
* We're only able to support casting to a single display for the initial implementation. However, it might be possible to cast to multiple displays in subsequent versions.
## Relevant Art
### Windows 11
The cast menu is part of the quick settings, though the cast button doesn't seem to be included by default - you have to manually add it. It can be opened without the button using the Windows+K shortcut.
The menu lists available displays, and provides a simple UI for connecting:
![image](https://i0.wp.com/pureinfotech.com/wp-content/uploads/2022/05/windows-11-connect-wireless-display-hero.webp)
It defaults to mirroring.
Once connected you can click on "Change projection mode" next to the connected display. This takes you to the standard Project menu:
![image](https://www.technipages.com/wp-content/uploads/2017/12/Control-projection-mode-for-dual-display-connection-on-Windows-11-laptops.png)
This allows selecting a projection mode like you would for any other display.
There are also two(!) alternative workflows through the settings:
1. Bluetooth & devices > Add device > Wireless display or dock > Select a display
2. System > Display > Multiple displays > Connect to a wireless display
![image](https://www.addictivetips.com/app/uploads/2021/08/primary-display-win-11.jpg)
### Mac
Various apps have an Airplay button which allow streaming audio and video content to another device.
Control Center has a Screen Mirroring button. When you click it, you get:
![image](https://help.apple.com/assets/63BCA927AAE78C58DD7FBE35/63BCA92EAAE78C58DD7FBE76/en_GB/f1adc4f958fa2e4d4c6e9dc730504e09.png)
Once you're mirroring, you can use the screen mirroring menu to switch from mirroring to extend:
![image](https://www.howtogeek.com/wp-content/uploads/2021/04/macos11_screen_mirroring_icon.jpg)
In the display settings, there's an add button which lists available displays that can be connected to:
![image](https://support.apple.com/library/content/dam/edam/applecare/images/en_US/macos/Ventura/macos-ventura-system-settings-displays-refresh-rate.png)
### Android
There's a screen casting menu in the quick settings, which is present by default. Once the user clicks it, a dialog shows available network displays, allowing users to quickly start streaming to another device. A button to access the "Cast" panel of the settings app is there too.
| Quick Settings menu | Available network displays dialog |
|-|-|
| ![Android quick settings menu](/uploads/1e6e2df9279ddee145581789f07d533d/android_quick_settings.jpg) | ![Android network displays dialog](/uploads/f16a00b4c5845c34b6a578eb8fa1a3f1/image.png) |
The "Cast" panel of the settings app shows available network displays as well as a list of network displays the user had previously connected to. It is possible to forget (remove from that list) or rename network displays in that list.
| "Cast" settings panel | Rename and forget dialog |
|-|-|
| ![Android "Cast" settings panel](/uploads/5af3bf68bee9a8c8961de4d98554075c/image.png) | ![Android rename and forget network displays](/uploads/a056dfb2a59febe86c50e83109a4c601/image.png) |
There are two ways to get to that settings panel:
1. Quick Settings -> Screen Cast -> Cast settings
2. Settings -> Connected devices -> Connection preferences -> Cast settings
It is only possible to mirror, and to a single display.
## Working notes
* The existing screen sharing portal allows an app to request a screen or window to share - [mockups](https://gitlab.gnome.org/Teams/Design/os-mockups/-/blob/master/portals/portals.png)
* Sharing a window or tab is generally going to be preferable to sharing the entire screen. Cases where you might want to share a screen, as opposed to a window:
* Demos which involve multiple windows
* Presentation software which has separate presenter and presentation windows, and is able to figure out which displays to put them on (LibreOffice is probably the only example?)
* Extending displays isn't great for presentations:
* It requires a setup phase since you have to arrange the displays in relation to oneanother
* Hard to figure out where displays join when they're not laid out next to oneanother. Can result in the pointer being lost on a display.
* Can be ergonomically awkward if the presentation display is behind you
* It might be useful to provide information on which types of displays can be connected, and potentially show troubleshooting tips for when things don't work as expectedhttps://gitlab.gnome.org/Teams/Design/os-mockups/-/issues/223Guidance for appstream descriptions2023-06-26T15:55:44ZTobias BernardGuidance for appstream descriptionsWe have fairly detailed guidelines for app names, summaries, and the like, but nothing for descriptions at this point. As a result, these are all over the place and not very helpful in many cases. Some common issues include:
- Duplicati...We have fairly detailed guidelines for app names, summaries, and the like, but nothing for descriptions at this point. As a result, these are all over the place and not very helpful in many cases. Some common issues include:
- Duplicating the app summary
- Including lots of irrelevant technical detail
- Endless bullet point lists
- Just a single, uninformative sentence
### Relevant Art
TODO: add links to app store listings with nice descriptionshttps://gitlab.gnome.org/Teams/Design/os-mockups/-/issues/222Rethink the shell's calendar popover2023-08-13T00:21:28ZAllan DayRethink the shell's calendar popoverFor some time we have felt that the shell's calendar popover is over-populated. The main problem is its size and dimensions, but the two column layout is also fairly awkward.
Options we previously discussed include:
1. Having some kin...For some time we have felt that the shell's calendar popover is over-populated. The main problem is its size and dimensions, but the two column layout is also fairly awkward.
Options we previously discussed include:
1. Having some kind of view switcher inside the popover, to switch between notifications and the other stuff
1. Moving notifications from the calendar to quick settings
1. Moving notifications into their own menu
With options 3 and 4, we'd need a new popover layout which could adjust to the various elements either being present or missing. This is something that I explored [here](https://gitlab.gnome.org/Teams/Design/os-mockups/-/blob/master/calendar/calendar-popover.png).https://gitlab.gnome.org/Teams/Design/os-mockups/-/issues/221File chooser portal: explicitly say "the app will be given access to this file"2023-11-24T04:47:47ZSimon McVittieFile chooser portal: explicitly say "the app will be given access to this file"On https://github.com/flatpak/xdg-desktop-portal-gtk/issues/429 I asked:
>>>
We seem to have this as a frequently asked question (I'm paraphrasing several user reports here):
> I have a Flatpak app [which is compatible with the file ch...On https://github.com/flatpak/xdg-desktop-portal-gtk/issues/429 I asked:
>>>
We seem to have this as a frequently asked question (I'm paraphrasing several user reports here):
> I have a Flatpak app [which is compatible with the file chooser portal, but the user doesn't know that] and I gave it access to ~/Pictures. I can click on File -> Open... or File -> Save As... and select a file in ~/Documents. Is this a security vulnerability?
This is in fact not a vulnerability, and is the whole point of having a file chooser portal - it's asking for user consent to give the app access to the selected file, as a side-effect of asking the user which file they want - but that's not always obvious to users.
Can we stop this being reported quite so frequently by adding a line of text to the bottom of the file chooser window, maybe something like this?
> The app "Recipes" will be given read/write access to the selected file.
That would also make sure the user is given the opportunity to make an informed decision.
...
A side benefit of this would be making it a bit more obvious whether an app is using sandbox-friendly file choosers that will go via the portal, or its own non-sandbox-friendly file chooser that requires the app to be given static permissions (Flatpak --filesystem or whatever is Snap's equivalent).
>>>
We have several use-cases for this which should probably have different text.
OpenFile with directory=false (default): Open an existing file (or with multiple=true, several files). Straw-man wording:
> The app "Recipes" will be given read-only access to the selected file.
>
> The app "Recipes" will be given read/write access to the selected file.
OpenFile with directory=true: Select an existing directory, which I think gives the app access to everything in that directory as well. I don't know whether multiple=true is allowed here. Straw-man wording:
> The app "Recipes" will be given read/write access to /home/smcv/Documents/Example and all of its contents.
SaveFile: Select a filename for saving (not necessarily one that already exists). Straw-man wording:
> The app "Recipes" will be given read/write access to the selected file.
SaveFiles: same as SaveFile, but the app provides multiple filenames, and the portal returns multiple paths to save into. I don't immediately know what access this implies (only those paths? their common directory and all of its contents?) so I'm not proposing wording for this one.
GNOME/xdg-desktop-portal-gnome> and https://github.com/flatpak/xdg-desktop-portal-gtk would both benefit from some mockups here: I expect that they could use essentially the same wording and UI presentation.https://gitlab.gnome.org/Teams/Design/os-mockups/-/issues/220Passwordless login2024-03-01T08:43:09ZAllan DayPasswordless loginWork is happening to support additional login methods in GNOME. This may require changes to the login screen design.
## Goals
Authentication methods to support:
* Password
* Fingerprint
* Smartcard (requires PIN)
* Facial recognition
...Work is happening to support additional login methods in GNOME. This may require changes to the login screen design.
## Goals
Authentication methods to support:
* Password
* Fingerprint
* Smartcard (requires PIN)
* Facial recognition
* OAUth2 login with another device (using URL or QR code, possibly a code)
* FIDO2 token (may require PIN)
* Passkey on phone (speculative future goal)
General goals and requirements:
* People generally have a single authentication method that they want to use - focus the user experience on that
* Handle hardware capabilities coming and going:
* Laptop with docking station case - camera and fingerprint reader might disappear
* Smartcard readers can be removed
* Handle changes in physical environment which may affect login options:
* Low lighting might affect facial recognition
* Wearing gloves might affect fingerprint
* Being offline will result in 0Auth2 being unavailable
* For passkey on phone, Bluetooth off or phone unavailable
* What should happen when smartcards and FIDO2 keys are inserted and removed?
* Treat password authentication as optional - some organisations will want to disable it, and require more secure authentication methods instead
* Allow organisations to roll out new authentication methods (like smartcard/FIDO2/OAuth2) alongside existing ones - new methods might appear and existing ones might disappear.
* Cases where a user might want to use a different authentication method than the default:
* Fingerprint or facial recognition is failing (should automatically switch to another method, but maybe you want to prempt that)
* Your organisation is migrating to a new authentication method - choose the new one
* Your organisation is migrating between authentication methods, and the new one stopped working
* Developers/admins - switching between authentication methods for testing
* ...
## Constraints
* Smartcard, FIDO2, and OAuth2 login are only available in managed deployments, where they are setup and configured by an admin
* Outside of managed deployments, we assume that there is a password for the user account and that this is going to be one of the login authentication methods
## Future developments
In the future, we may want to make additional login options more generally available. This might include:
* Login with a passkey on a mobile device
* Login with a FIDO2 key
* FIDO2 without PIN might be interesting for accessibility purposes - if you struggle to remember or input passwords
* FIDO2 with PIN would be a good option for those wanting a higher level of security. However, this would require:
* A way to disable password login
* A recovery mechanism for if you lose your key, or it breaks
## Login notes
The current login screen has the following UI elements:
* User avatar and name
* Back button (to return to the user list)
* Password entry field
* Message area
* Session menu
* Banner message
* Logo
Current auth methods include password, fingerprint, smart card. One authentication method is always "foreground". Others are background.
* Password entry field is only shown when password authentication is available.
* Message area only shows messages from the foreground auth method.
* GNOME 2 had a graphical switcher to change the foreground method.
* If the shield is down and a smart card is inserted, we lift the shield and make it foreground.
* Fingerprint only activates when the shield is lifted (we should change that).
* It is possible to configure login to disable password and require smart card.
There are a couple of other modules that can show messages in the message area:
* "Message of the day" - a plugin to show an admin message of the day
* "Last log" - shows the last login, enabled by default in RHEL
The banner message is an optional long text which can be configured by an admin. It's typically used for legal and security warnings ([screenshot](https://cdn.thegeekdiary.com/wp-content/uploads/2020/05/configure-GNOME-login-banner-centos-rhel-7-and-8.jpg)).
## Relevant issues
* https://gitlab.gnome.org/GNOME/gdm/-/issues/764
## Relevant art
### Windows 11
![image](https://learn.microsoft.com/en-us/azure/active-directory/authentication/media/howto-authentication-passwordless-security-key/fido2-windows-10-1903-sign-in-lock-screen.png)
Facial recognition shows an animated eye with "looking for you" label:
![image](https://media.cybernews.com/images/featured/2021/07/shutterstock_1576090063.jpg)
### Mac
With password and Touch ID:
![image](https://media.idownloadblog.com/wp-content/uploads/2022/10/Mac-Lock-Screen.jpg)
[Sign in to an account on your Mac with a passkey](https://support.apple.com/en-gb/guide/mac-help/mchl4af65d1a/mac)
## Tentative design
![imaege](https://gitlab.gnome.org/Teams/Design/os-mockups/-/raw/master/lock-login/login-authentication.png)https://gitlab.gnome.org/Teams/Design/os-mockups/-/issues/219Animate transition between visible and hidden top bar2023-06-16T07:18:24ZPhilipp SAnimate transition between visible and hidden top barThe top bar just hides or shows immediately without any transition in the following cases:
- Switching between a workspace with a full screen window (like a browser video) and a workspace not in full screen. The top bar hides or shows im...The top bar just hides or shows immediately without any transition in the following cases:
- Switching between a workspace with a full screen window (like a browser video) and a workspace not in full screen. The top bar hides or shows immediately when reaching the target workspace.
- Switching between a workspace with a window in full screen and the app overview.
- (not sure if this is actually intended at all) swiping down with three fingers on a touchpad when in a workspace with a window in full screen shows an overlaying the top bar
The missing transition is visible especially when using a touchpad and the speed of the transition depends on the gesture speed.
I think it would improve the overall shell impression if there was an animation for the transition between visible and hidden top bar because most of the other transitions in GNOME shell are very smooth.https://gitlab.gnome.org/Teams/Design/os-mockups/-/issues/218Replace browser window for wifi network login with simple notification2023-06-23T08:36:55ZJanoReplace browser window for wifi network login with simple notificationWhen your computer connects to a wifi network that requires the user to login or accept terms and conditions using a special website (e. g. many free public wifis), in current versions of Gnome a special, limited browser window will auto...When your computer connects to a wifi network that requires the user to login or accept terms and conditions using a special website (e. g. many free public wifis), in current versions of Gnome a special, limited browser window will automatically pop up, loading that website. This browser can't be re-opened when exited, is usually pretty large, and the window "illegally" steals focus (please note that your computer connecting to a wifi network doesn't necessarily require user interaction – you might be sitting at a train station typing something while a train with on-board wifi that you previously connected to drops by, and then this window will pop up and interrupt you typing). Also, it is limited to a certain browser engine (GtkWebkit), and I was in situations where login pages wouldn't display correctly in this engine, making me unable to use the wifi.
I propose using a simple shell notification instead, that notifies the user that they need to login, and opens the URL in the default browser the user has set when clicked.
This fixes all of the above issues, and I assume it might also have technical benefits (like certain components not needing to depend on GtkWebkit any more).