An open API service indexing awesome lists of open source software.

https://github.com/mityax/gnome-extension-touchup

An extension for Gnome Shell that enhances the user experience for devices with a touchscreen.
https://github.com/mityax/gnome-extension-touchup

gnome gnome-extension gnome-extensions gnome-touch linux-mobile linux-on-surface linux-touch mobile-linux surface-linux

Last synced: 4 months ago
JSON representation

An extension for Gnome Shell that enhances the user experience for devices with a touchscreen.

Awesome Lists containing this project

README

          

# TouchUp

An extension for Gnome Shell that enhances the user experience for devices with a
touchscreen – primarily focused (and tested) on tablets.

TouchUp aims to provide an intuitive, configurable, clean and
seamless interface. However, please be aware that this is not always
possible nor easy since Gnome extension development does not come without
challenges or limits and has a steep learning curve.

## Installation

Get it on GNOME Extensions

🛠️ or build and install from source: `npm run enable:release`

## Roadmap & Implementation Status

This is a rough overview over this extension's implemented features and goals
(in no particular order). It's a lot, and it's changing, mostly due to
new ideas or unforeseen complications – so please don't take this as a fixed
plan but more as an idea of the direction TouchUp is heading. Also, I have
limited time to work on this project, so please don't expect new features
very frequently – you can help speed up progress by [donating](#support).

- [x] Navigation bar, as known from Android/iOS
- [x] Gesture mode
- [x] Buttons mode
- [x] Invisible gestures mode
- [x] Compatibility with:
- DashToDock (move the dock up)
- DashToPanel (move the panel up) – not yet released [[more info]](https://github.com/mityax/gnome-extension-touchup/issues/17#issuecomment-3590091058)
- [ ] Edge swipe actions (left/right edge: back, top/bottom edge:
show panel and navigation bar)
- [x] Touch gestures for Gnome Shell notifications
- [x] Touchscreen swipe gesture
- [ ] Touchpad two-finger gestures
- [ ] Add "copy"/"open" button in notifications for elements like 2FA
codes or links
- [x] Onscreen Keyboard (OSK)
- [x] Key popups
- [x] "Extended" keys (make padding between keys reactive)
- [ ] Compatibility with the "GJS OSK" extension (?)
- [x] Swipe-close keyboard
- [ ] Single-tap locale button or swipe space bar to switch input methods
- [ ] Show a quick paste action in suggestion bar after having copied
something to the clipboard
- [ ] Virtual Touchpad (use device as touchpad when connected to a
second monitor) \[WIP]
- [x] Floating temporary screen rotation button when auto-rotation
is disabled but device is being rotated (as in android)
- [ ] Pattern unlock
- [ ] Improved swipe gestures in the overview
- [x] Swipe up windows in overview to close them
- [x] Single-finger swipe left/right to switch workspace
- [x] Hold and move to drag and drop windows
- [x] Single-finger swipe up/down to open/close overview/app list
- [ ] Move windows to another screen via dragging to the corner
- [ ] Gesture-driven top menu pull down animations \[WIP]
- [ ] Touch-enabled volume controls
- [ ] Voice input in onscreen keyboard
- [ ] Option to display individual windows instead of workspaces when navigating
using gesture navigation bar
- [ ] Run arbitrary commands on touch-mode change
- [x] Double-tap top panel, lockscreen or desktop background to sleep
- [ ] Hide window close buttons in touch mode

Each of these features can be enabled/disabled individually and most can be
further customized in the extension settings.

In case you'd like to suggest a feature or work on one yourself, please don't
hesitate to [create an issue](https://github.com/mityax/gnome-extension-touchup/issues/new)
so we can discuss it!

## A Note on Compatibility

TouchUp is developed for and actively tested on upstream Gnome Shell. It is not
tested on derivations thereof, such as in Ubuntu, and I don't have capacity to
include those at the moment (should you be willing to contribute as a long-term
beta tester, and to investigate issues on a specific shell derivation yourself,
please
[open an issue](https://github.com/mityax/gnome-extension-touchup/issues/new)
to get in touch).

However, TouchUp will automatically disable features that fail to initialize,
and show a notification for these. Other features _might_ work on your shell
derivation. Consider logging out and back in when a feature failed to
initialize – this way you ensure the failed feature leaves no traces in your
session.

By the way: TouchUp does not even load the code for disabled features into
memory – thus you only 'pay' for features you actually enable.

## Why an Extension?

Developing this functionality in the form of a Gnome extension allows a seamless
interplay between a touch-centered usage and one based on keyboard and mouse. It
facilitates a dual usage of devices such as tablets with removable keyboards or
convertibles, without the need to manually switch between login sessions or to
compromise on awkward user interfaces. Elements of the interface that are useful
in both, touch and non-touch mode (e.g. notification swipe gestures) will always
be active, while elements that are useless or annoying when having a keyboard
and touchpad at hand (e.g. the gesture navigation bar) will only be active in
touch mode.

This also means that users can just use their well-known and stable Gnome
Shell (with their favorite extensions) and can add the additional touch
functionality at the press of a button; There is no need to set up and get used
to a different, possibly unpolished or permanently-in-beta shell, just to have
decent touch interaction with the device.

Lastly, as the development of an extension like this one is decoupled from Gnome
Shell itself, it can make faster iterations and profit off using more modern
tooling such as Typescript (though extension review can of course also take its
time).

## Contributing

Should you want to contribute, which I'd greatly appreciate, please first
have a look at [CONTRIBUTING.md](./CONTRIBUTING.md). This is especially
important if you plan to contribute more than just a simple typo- or bugfix.

## Support

Your support fuels this work and helps TouchUp to make Gnome an
alternative to corporate touch operating systems. It'll also allow me to
allocate more time to this project, thereby making progress faster. Even a
dollar a month helps!

To donate, choose a platform below:

Buy Me a Coffee at ko-fi.com

Recommended! Most payment methods, one-time or recurring donations, no sign up required.

Buy Me a Coffee

Donate by card, no sign up required.