From 184d32c09c50d7aa6a8d555bf5148a468c3d48e1 Mon Sep 17 00:00:00 2001 From: dec05eba Date: Sat, 5 Jun 2021 18:49:36 +0200 Subject: Fix tab control for vim keys, improve control documentation --- README.md | 128 +++++++++++++++++++++++++++++++++++++++-------------------- src/Tabs.cpp | 4 +- 2 files changed, 86 insertions(+), 46 deletions(-) diff --git a/README.md b/README.md index 49a41eb..ddf11f5 100644 --- a/README.md +++ b/README.md @@ -23,50 +23,90 @@ EXAMPLES: ## Installation If you are running arch linux then you can install QuickMedia from aur (https://aur.archlinux.org/packages/quickmedia-git/), otherwise you will need to first install [sibs](https://git.dec05eba.com/sibs/) and then run `./install.sh` as root. ## Controls -Press `Arrow up` / `Arrow down` or `Ctrl+K` / `Ctrl+J` to navigate the menu and also to scroll to the previous/next image when viewing manga in scroll mode. Alternatively you can use the mouse scroll to scroll to the previous/next manga in scroll mode.\ -Press `Ctrl+Arrow left` / `Ctrl+Arrow right` or `Ctrl+H` / `Ctrl+L` or `Ctrl+Tab` / `Ctrl+Shift+Tab` to switch tab.\ -Press `Ctrl+1-9` to switch to the specified tab.\ -Press `Page up` to scroll up and entire page or `Page down` to scroll down an entire page.\ -Press `Home` to scroll to the top or `End` to scroll to the bottom.\ -Press `Enter` (aka `Return`) to select the item.\ -Press `ESC` to go back to the previous menu.\ -Press `ESC` or `Backspace` to close the video.\ -Press `Ctrl + D` to clear the input text.\ -Press `Ctrl + F` to switch between window mode and fullscreen mode when watching a video.\ -Press `Space` to pause/unpause a video.\ -Press `Ctrl + R` to show video comments, related videos or video channel when watching a video (if supported).\ -Press `Ctrl + T` when hovering over a manga chapter to start tracking manga after that chapter. This only works if AutoMedia is installed.\ -Press `Ctrl + T` when viewing a youtube channels page to subscribe to that channel or to unsubscribe.\ -Press `Enter` to only show the replied to messages and the replies in image board threads.\ -Press `Backspace` to return to the preview item when reading replies in image board threads.\ -Press `R` to paste the post number of the selected post into the post field (image boards).\ -Press `I` to begin writing a post to a thread (image boards), press `ESC` to cancel.\ -Press `1 to 9` or `Numpad 1 to 9` to select google captcha image when posting a comment on 4chan.\ -Press `P` to preview the 4chan image of the selected row in full screen view, press `ESC` or `Backspace` to go back.\ -Press `I` to switch between single image and scroll image view mode when reading manga.\ -Press `F` to fit image to window size when reading manga. Press `F` again to show original image size.\ -Press `Middle mouse button` to "autoscroll" in scrolling image view mode.\ -Press `Tab` to switch between username/password field in login panel or to switch between search and filename in download menu.\ -Press `Ctrl + C` to copy the url of the currently playing video to the clipboard (with timestamp).\ -Press `Ctrl + V` to paste the content of your clipboard into the search bar.\ -Press `Enter` to view image/video attached to matrix message, or to view the url in the message in quickmedia (youtube) or in the browser.\ -Press `I` to begin writing a message in a matrix room, press `ESC` to cancel.\ -Press `R` to reply to a message on matrix, press `ESC` to cancel.\ -Press `E` to edit a message on matrix, press `ESC` to cancel. Currently only works for your own messages.\ -Press `Ctrl + D` to delete a message on matrix.\ -Press `Ctrl + C` to copy the text of the selected item to the clipboard.\ -Press `U` in matrix or in a 4chan thread to bring up the file manager to choose a file to upload.\ -Press `Ctrl + V` to upload media to room in matrix if the clipboard contains a valid absolute filepath.\ -Press `Ctrl + D` to remove the file that was previously selected with `U` in a 4chan thread.\ -Press `Ctrl + I` to reverse image search the selected image on 4chan or matrix, or to select the url in the text to open in a browser.\ -Press `Alt+Arrow up` / `Alt+Arrow down` or `Ctrl+Alt+K` / `Ctrl+Alt+J` to view the room above/below the selected room in matrix.\ -Press `Ctrl + S` to save the selected/displaying image/video/audio (does currently not work for manga pages).\ -Press `Ctrl + Enter` to submit text, ignoring the selected item (when saving a file or selecting a server for matrix room directory).\ -Press `Ctrl + Enter` to save the file to the selected directory with the selected name, when downloading a file. -Text input in 4chan/matrix can be navigated with the arrow keys and if ctrl is pressed then the caret moves word by word. - -In matrix you can select a message with enter to open the url in the message (or if there are multiple urls then a menu will appear for selecting which to open). -## Matrix commands +### General control +Type text and then wait and QuickMedia will automatically search.\ +`Enter`: Go to the page in the selected item.\ +`Esc`: Go back to the previous page or close QuickMedia if there is no previous page.\ +`Arrow up`/`Ctrl+K`: Move up.\ +`Arrow down`/`Ctrl+J`: Move down.\ +`Ctrl+Arrow left`/`Ctrl+Alt+H`/`Ctrl+Shift+Tab`: Move left.\ +`Ctrl+Arrow right`/`Ctrl+Alt+L`/`Ctrl+Tab`: Move right.\ +`Ctrl+1 to 9`: Switch to the specified tab.\ +`Home`: Scroll to the top (the first item).\ +`End`: Scroll to the bottom (the last item).\ +`Page up`: Scroll up an entire page.\ +`Page down`: Scroll down an entire page.\ +`Ctrl+D`: Clear the input text.\ +`Ctrl+C`: Copy the text in the selected item to your clipboard.\ +`Ctrl+V`: Paste clipboard content into the search bar.\ +`Ctrl+I`: Select which url in the selected item to open in a browser.\ +### Video controls +`mpv` controls apply in general, see https://mpv.io/manual/master/#interactive-control.\ +`Esc`/`Backspace`/`Q`: Close the video.\ +`Ctrl+F`: Toggle between fullscreen mode and window mode.\ +`Ctrl+R`: Show pages related to the video, such as comments, related videos or channel videos (if supported).\ +`Ctrl+S`: Save the video/music.\ +`Ctrl+C`: Copy the url of the currently playing video to the clipboard (with timestamp, if supported). +### Youtube channel controls +`Ctrl+T`: Subscribe/Unsubscribe from the channel. +### Manga page view controls +`Arrow up`/`Ctrl+K`: Go to the next page (or chapter if the current page is the last one).\ +`Arrow down`/`Ctrl+J`: Go to the previous page (or chapter if the current page is the first one).\ +`F`: Toggle between scaling the image to the window size or only down scaling if the image is too large.\ +`I`: Switch to scroll view. +### Manga scroll view controls +`Arrow up`/`Ctrl+K`: Move up.\ +`Arrow down`/`Ctrl+J`: Move down.\ +`Mouse scroll`/`Middle mouse click+Move mouse`: Smoothly scroll.\ +`F`: Toggle between scaling the image to the window size or only down scaling if the image is too large.\ +`I`: Switch to page view. +### Manga chapters controls +`Ctrl+T`: Start tracking the manga after the selected chapter ([AutoMedia](https://git.dec05eba.com/AutoMedia/) needs to be installed). +### Matrix controls +#### Chat page controls +`I`: Start typing a message, `Esc` to cancel.\ +`R`: Start replying to the selected message, `Esc` to cancel.\ +`E`: Edit the selected message (if it was posted by you), `Esc` to cancel.\ +`Ctrl+D`: Delete the selected message (if it was posted by you).\ +`Enter`: View image/video attached to the message, or if its a file then download it. Brings up a list of urls in the selected item if there are any.\ +`Ctrl+I`: Reverse image search the selected image.\ +`Ctrl+S`: Save the selected file.\ +`Ctrl+V`: Uploads the file specified in the clipboard.\ +`U`: Bring up the file manager and select a file to upload to the room, `Esc` to cancel.\ +`Alt+Arrow up`/`Ctrl+Alt+K`: Select the room above the currently selected room.\ +`Alt+Arrow down`/`Ctrl+Alt+J`: Select the room below the currently selected room.\ +`Alt+Home`: Select the first room in the room list.\ +`Alt+End`: Select the last room in the room list. +#### Message input controls +`Esc`: Stop typing (also clears the input text).\ +`Enter`: Post message.\ +`Arrow up`: Go to the previous line.\ +`Arrow down`: Go to the next line.\ +`Arrow left`: Go to the previous character.\ +`Arrow right`: Go to the next character.\ +`Ctrl+Arrow left`: Go to the previous word.\ +`Ctrl+Arrow right`: Go to the next word.\ +`Ctrl+V`: Paste clipboard content into the message input.\ +`Ctrl+D`: Clear the input text. +#### Server search page controls +`Ctrl+Enter`: Use the server specified in the search input.\ +### 4chan thread controls +`Enter`: Show the posts that the selected post replies to and the posts the replied to the selected post.\ +`Backspace`: Go back to the previously selected item after selecting it with `Enter`.\ +`P`: View image/video attached to the post. If the thread is a thread with videos, then all videos are played starting from the selected one.\ +`I`: Start typing a message, `Esc` to cancel.\ +`Enter`: Post message.\ +`R`: Add the selected post as a reply to the message.\ +`U`: Bring up file manager to choose which file should be uploaded, `Esc` to cancel.\ +`Ctrl+D`: Remove the selected file from the post.\ +`Ctrl+I`: Reverse image search the selected image or select an url to open in the browser.\ +`1 to 9`/`Numpad 1 to 9`: Select google captcha image when posting a comment on 4chan.\ +`Ctrl+S`: Save the image/video attached to the selected post.\ +### File save controls +`Tab`: Switch between navigating the file manager and file name.\ +`Ctrl+Enter`/`Click on save`: Download the file.\ +`Esc`/`Click on cancel`: Cancel download.\ +## Matrix text commands `/upload` to upload an image.\ `/logout` to logout.\ `/leave` to leave the current room.\ diff --git a/src/Tabs.cpp b/src/Tabs.cpp index 6b8d948..35eccf5 100644 --- a/src/Tabs.cpp +++ b/src/Tabs.cpp @@ -62,10 +62,10 @@ namespace QuickMedia { void Tabs::on_event(sf::Event &event) { if(event.type == sf::Event::KeyPressed && event.key.control && !tabs.empty()) { - bool move_left = (event.key.code == sf::Keyboard::Left || event.key.code == sf::Keyboard::H); + bool move_left = (event.key.code == sf::Keyboard::Left || (event.key.alt && event.key.code == sf::Keyboard::H)); move_left |= (event.key.code == sf::Keyboard::Tab && event.key.shift); - bool move_right = (event.key.code == sf::Keyboard::Right || event.key.code == sf::Keyboard::L); + bool move_right = (event.key.code == sf::Keyboard::Right || (event.key.alt && event.key.code == sf::Keyboard::L)); move_right |= (event.key.code == sf::Keyboard::Tab && !event.key.shift); if(move_left) { -- cgit v1.2.3