Commit Graph

18 Commits

Author SHA1 Message Date
Jan Almeroth b572449372 chore: fix screenlock
Shortcut is always received local to the device the keyboard is
connected to. Send command to all others.
2024-04-11 21:21:19 +02:00
Jan Almeroth 2baa33e828 fix: lets not assume remapped keys
fixes https://github.com/hrvach/deskhop/issues/82
2024-04-02 21:13:30 +02:00
Hrvoje Cavrak 1a91b4d49f Minor fix and update binaries. 2024-03-31 23:58:39 +02:00
Hrvoje Cavrak b44ef2dc6f Updates and fixes.
- Implement fix for keyboards not switching to boot mode properly, until full report parsing gets done.
  This is expected to improve support for certain models that were reported problematic.
- Implement fix for mouse acceleration omitting absolute mode
- Provide pass_to_os = true to not capture shift+backspace from the OS, it's annoying when you hold shift
  and mistype something, then want to use backspace but couldn't.
2024-03-31 23:42:13 +02:00
Hrvoje Cavrak 1cf90ae31d Fixed a mouse.c issue with some compilers. 2024-03-24 22:05:05 +01:00
Hrvoje Cavrak 09935f5f87 - add windows workaround
- add mouse acceleration (configurable in user_config.h)
- add keyboard shortcuts for output configuration
- after several reports, bundling pico-sdk and tinyusb to simplify building
- bugfixes
2024-03-24 19:02:37 +01:00
Hrvoje Cavrak 9c69dc3cd6 Features and fixes
- Auto switch-lock when dragging or resizing windows.
     * This was super annoying for me, resizing a window and you
       get too close to the left border, making it shrink suddenly.
       Now if you drag while holding a mouse button pressed, it will
       not switch.

- Added Mac OS multiple desktop workaround
     * you need to tweak defaults.c and set screen_count to e.g. 2 if
       you have 2 desktops on a single mac output, and set OUTPUT_A_OS
       (or OUTPUT_B_OS) to MACOS in user_config.h, then rebuild
     * This will be keyboard-configurable in the future without rebuilding
     * Support still experimental

- HID report protocol default for port B
- Added support for swapping output order
     * defaults.c, output has "pos" you can set to either LEFT or RIGHT
     * this will be hotkey-configurable

- Bugfixes
- Added debugging mode (serial CDC device for printf things)
- Refactored screensaver a bit
2024-03-22 19:48:49 +01:00
Kevin P. Fleming 68a4ca6be2 Screensaver features:
* Per-output enablement
* Maximum time
* Enable only when output is inactive

Closes #66.
2024-03-18 15:06:19 -04:00
Kevin P. Fleming 1d9716b471 Add note to discourage users from using HID_KEY_NONE. 2024-03-15 07:57:55 -04:00
Hrvoje Cavrak 098aabfc57 Minor updates and bugfixes
- Mouse movements should be smoother on the other Pico
- Reworked CMakeLists with foreach to avoid duplication
- Increased WDT timeout
2024-01-27 22:45:27 +01:00
Hrvoje Cavrak 15da60bd95 Cleanup, Refactoring, Silkscreen update
- Code refactor, still far from great but a bit less crappy
- Unify behavior - Mouse Zoom feature was made toggle and
  moved from ALT to Right ALT + Right CTRL to avoid interfering
  with OS
- Added optional screensaver "Pong" mode, prevents sleep and it's fun
- Updated README
- Added more visible pin1 marking on PCB for digital isolator
- Marked pins to solder with a star *
- Added checksum and version format support for flash config
2024-01-21 01:45:22 +01:00
Hrvoje Cavrak 6aff14e05a Typo 2024-01-16 18:53:44 +01:00
Hrvoje Cavrak 99a6e3bf20 Features, bugfixes and configuration.
- Support for storing config in flash
- Support for keyboard and mouse in any port (hopefully)
- Single-sided operation should work with a USB hub
- Added mouse switch cursor height/offset simple calibration
- Added per-screen settings support
- Mouse speed is configurable per-screen and per-axis
- Small fixes and cleanup
- Added LED feedback
- Updated documentation for usage guide
2024-01-16 18:38:24 +01:00
Hrvoje Cavrak 2711b911ee Added proper USB VID/PID
Kindly assigned by the Raspberry Pi foundation, the project got its own
VID/PID so removing the current "test" one and adding this one. No other
changes.
2024-01-13 22:22:32 +01:00
Hrvoje Cavrak de3cb4dba7 Bugfixes and improvements:
==========================

Added 1000 Hz polling.
(Hopefully) fixed Logitech mouse issues
Removed special treatment for 12 and 16-bit mice
Increased mouse queue size
Increased current allowance from 100mA to 500mA
Allow mouse to wake up a suspended host
Added memory usage print to build

Updated README
  - Added link to troubleshooting wiki
  - Mouse polling rate chart
  - Updated known issues
  - Updates about possible PCB/assembly ordering
2024-01-11 17:57:29 +01:00
Hrvoje Cavrak a49505c465 Fixing a strange bug due to tusb_inited().
Interesting things happen when TinyUSB is used both for host and device.

bool tusb_inited(void)
{
  bool ret = false;
  ret = ret || tud_inited();
  ret = ret || tuh_inited();
  return ret;
}

-> This is effectively tud_inited() || tuh_inited(), which is great
   but tuh_task() should check tuh_inited() not tusb_inited(). This way,
   tusb_inited() returns true when tinyusb device gets inited correctly
   and tuh_task gets stuck in an endless loop with watchdog rebooting the
   device.
2024-01-06 00:21:01 +01:00
Hrvoje Cavrak 560f3dca74 New features, bugfixes and optimizations
Some of the features implemented in this release are:
  - TinyUSB used to handle HOST management as well
  - USB hub support (tried an ancient one and it worked)
  - Early and buggy support for mouse on the keyboard side
    but have no unified usb receivers to test
  - Rudimentary HID report descriptor parsing, support for
    mice that don't send wheel data unless in report protocol mode
  - Implemented queueing for keyboard/mouse messages with
    hid report send verification
  - Split firmware upgrade shortcut to two
    now it's left-shift + F12 + A + right shift to write board A
             left-shift + F12 + B + right shift to write board B
  - Fixed keyboard stuck in outputing chars if you hold down a key
    and change screens while doing it
  - Implemented cursor hiding, so the screen we are moving away from
    parks cursor at top right corner and it looks more natural and
    feels intuitive
  - Implemented switch lock, use Ctrl + L to lock and unlock
    desktop switching
  - Implemented jump threshold, works like barrier opacity - you can
    define if mouse immediately jumps over or you need to give it a bit
    of a "nudge"
2024-01-03 10:48:34 +01:00
Hrvoje Cavrak c10f971038 Initial Commit 2023-12-24 23:22:05 +01:00