diff options
-rw-r--r-- | README.md | 7 | ||||
-rw-r--r-- | TODO | 11 | ||||
-rw-r--r-- | src/GsrInfo.cpp | 2 | ||||
-rw-r--r-- | tools/gsr-global-hotkeys/keyboard_event.c | 9 |
4 files changed, 19 insertions, 10 deletions
@@ -5,9 +5,10 @@ A fullscreen overlay UI for [GPU Screen Recorder](https://git.dec05eba.com/gpu-s The application is currently primarly designed for X11 but it can run on Wayland as well through XWayland, with some caveats because of Wayland limitations. # Usage -Run `gsr-ui` and press `Left Alt+Z` to show/hide the UI. You can start the overlay UI at system startup by running `systemctl enable --now --user gpu-screen-recorder-ui`. -There is also an option in the settings to enable/disable starting the program on system startup. This option only works on systems that use systemd. -You have to manually add `gsr-ui` to system startup on systems that uses another init system.\ +You can start the overlay UI and make it start automatically on system startup by running `systemctl enable --now --user gpu-screen-recorder-ui`. +Alternatively you can run `gsr-ui` and go into settings and enable start on system startup setting.\ +Press `Left Alt+Z` to show/hide the UI. Go into settings to view all of the different hotkeys configured.\ +If you use a non-systemd distro and want to start the UI on system startup then you have to manually add `gsr-ui` to your system startup script.\ A program called `gsr-ui-cli` is also installed when installing this software. This can be used to remotely control the UI. Run `gsr-ui-cli --help` to list the available commands. # Installation @@ -139,4 +139,13 @@ Add a hotkey to record/stream/replay region. Do xi grab for keys as well. Otherwise the ui cant be used for keyboard input if a program has grabbed the keyboard, and there could possibly be a game that grabs the keyboard as well. -Make inactive buttons gray (in dropdown boxes and in the front page with save, etc when replay is not running).
\ No newline at end of file +Make inactive buttons gray (in dropdown boxes and in the front page with save, etc when replay is not running). + +Implement focused monitor capture. On nvidia x11 just use the x11 monitor name. On wayland get monitor name from drm cursor. We can get x11 monitor by combining all drm monitors together (with either x11 or wayland monitor position info) and then calculating the x11 monitor at that position. + To get the drm monitor from x11 cursor we can get the x11 monitor then get the CONNECTOR_ID property and get the monitor that matches that. Then copy the drm monitor name code from gsr and use that in gsr-ui to get the same name to use as monitor. + +Add option to do screen-direct recording. But make it clear that it should not be used, except for gsync on x11 nvidia. + +Add window capture. + +Add systray for recording status. diff --git a/src/GsrInfo.cpp b/src/GsrInfo.cpp index 5f8e00d..5af6397 100644 --- a/src/GsrInfo.cpp +++ b/src/GsrInfo.cpp @@ -11,7 +11,7 @@ namespace gsr { } bool GsrVersion::operator>=(const GsrVersion &other) const { - return major >= other.major || (major == other.major && minor >= other.minor) || (major == other.major && minor == other.minor && patch >= other.patch); + return major > other.major || (major == other.major && minor > other.minor) || (major == other.major && minor == other.minor && patch >= other.patch); } bool GsrVersion::operator<(const GsrVersion &other) const { diff --git a/tools/gsr-global-hotkeys/keyboard_event.c b/tools/gsr-global-hotkeys/keyboard_event.c index c2bd75a..9a92b56 100644 --- a/tools/gsr-global-hotkeys/keyboard_event.c +++ b/tools/gsr-global-hotkeys/keyboard_event.c @@ -120,14 +120,13 @@ static void keyboard_event_process_key_state_change(keyboard_event *self, const /* Return true if a global hotkey is assigned to the key combination */ static bool keyboard_event_on_key_pressed(keyboard_event *self, const struct input_event *event, uint32_t modifiers) { - if(event->value != KEYBOARD_BUTTON_PRESSED) - return false; - bool global_hotkey_match = false; for(int i = 0; i < self->num_global_hotkeys; ++i) { if(event->code == self->global_hotkeys[i].key && modifiers == self->global_hotkeys[i].modifiers) { - puts(self->global_hotkeys[i].action); - fflush(stdout); + if(event->value == KEYBOARD_BUTTON_PRESSED) { + puts(self->global_hotkeys[i].action); + fflush(stdout); + } global_hotkey_match = true; } } |