ui: add support for emoji and Unicode in tunnel display names#87
Open
Turtlecute33 wants to merge 1 commit intoWireGuard:masterfrom
Open
ui: add support for emoji and Unicode in tunnel display names#87Turtlecute33 wants to merge 1 commit intoWireGuard:masterfrom
Turtlecute33 wants to merge 1 commit intoWireGuard:masterfrom
Conversation
Tunnel names in WireGuard are constrained to valid Linux interface names
([a-zA-Z0-9_=+.-]{1,15}). This makes it impossible for users to give
tunnels friendly, memorable names using emoji or non-ASCII characters.
This commit introduces a display name layer that decouples the
user-visible tunnel label from the underlying interface name:
- New DisplayNameStore persists a JSON mapping of interface name to
display name in app-private storage
- ObservableTunnel gains a displayName property that falls back to the
interface name when no display name is set
- When a user enters a name containing emoji or Unicode characters, a
valid interface name is auto-generated (ASCII transliteration + hash)
- NameInputFilter now allows any non-control Unicode character (up to 80
chars) instead of restricting to interface-name characters
- The inputType for the name field is changed from textVisiblePassword to
textNoSuggestions, enabling the emoji keyboard
- All UI surfaces (tunnel list, TV list, editor, quick tile, naming
dialog) display the friendly name
The backend, config file storage, and WireGuard protocol layer are
completely unchanged. Existing tunnels without a display name show
their interface name as before.
Signed-off-by: Turtlecute33 <1satoshi@riseup.net>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Tunnel names in WireGuard are constrained to valid Linux interface names ([a-zA-Z0-9_=+.-]{1,15}). This makes it impossible for users to give tunnels friendly, memorable names using emoji or non-ASCII characters.
This commit introduces a display name layer that decouples the user-visible tunnel label from the underlying interface name:
The backend, config file storage, and WireGuard protocol layer are completely unchanged. Existing tunnels without a display name show their interface name as before.