Quick TOTP is a fast and lightweight GNOME Shell extension for generating One-Time Passwords (OTP), with support for both TOTP and HOTP. Access your two-factor authentication (2FA) codes directly from the top panel for services like Google, GitHub, Discord, Amazon, Steam, Facebook, Microsoft, and thousands of other OTP-compatible websites and applications. The panel menu offers a scrollable list, instant search/filter, a show/hide toggle for codes, a live countdown for each entry, and full keyboard navigation. NOTE: This extension uses the clipboard: - clicking on an OTP entry in the indicator will copy the generated code to the clipboard; - the preferences window will copy a generated code to the clipboard when clicked on the corresponding button; - the preferences window will copy the OTP secret to the clipboard when selecting the "Copy to clipboard" menu option; - after copying an OTP secret into the clipboard the clipboard will be cleared after a configurable amount of time (default is 30 seconds); - when creating or editing an OTP secret, the paste button (on the top right) will paste the OTP secret (as text or QR image) from the clipboard.
Note: Binary files aren't shown on the web site. To see all files, please download the extension zipfile.
EGO-A-005 manual_review
extensions should not access the clipboard directly
Direct clipboard access via `St.Clipboard.get_default()` requires reviewer scrutiny.
src/ui/indicator.js:30
St.Clipboard.get_default()
The usage of `St.Clipboard.get_default()` at src/ui/indicator.js:30 is noted to the users in the extension description.
1. Please remove line 1545 `prefs.js`. Not needed. 2. Using static for `GObject.registerClass(this)` is okay but everything else should be gone from static. That breaks the rule: [EGO Review Guidelines: Initialization](https://gjs.guide/extensions/review-guidelines/review-guidelines.html#only-use-initialization-for-static-resources) 3. The commands you are using in the XML file shouldn't be default. For both security and dependency reasons. 4. Search for `?.(` in the code and remove all of those: [Extension Best Practices Guidelines: Avoid Unnecessary Checks](https://gjs.guide/extensions/review-guidelines/best-practices.html#avoid-unnecessary-checks) 5. Prefs and shell process modules are in the same folders. Please make them obvious where they belong: [Extension Best Practices Guidelines: Process Isolation](https://gjs.guide/extensions/review-guidelines/best-practices.html#process-isolation) If you need any help with your extension you can ask us on: - [GNOME Extensions Matrix Channel](https://matrix.to/#/#extensions:gnome.org) - IRC Bridge: irc://irc.gimpnet.org/shell-extensions