Skip to content

Tiny in footprint and memory consumption, activates two-finger scrolling on a Synaptics touchpad

License

Notifications You must be signed in to change notification settings

Alex0vSky/TinySynapticsScroll

Repository files navigation

forGitHubReadme_icon1 TinySynapticsScroll

windows-os cpp-logo

Run tests, then collect result and coverage

cpplint cppcheck LinesOfСode Comments amount testsuites tests coverage

The application allows you to use two-finger scrolling on the Synaptics touchpad.

Features

Written in order to minimize the amount of memory consumed by the process. The process consumes memory from 250 to 500 kilobytes.

Publication of a home pet project.

Requirements

Requires installed touchpad drivers and SynCOM.dll library.

Install

The application consists of one file. Does not require installation.

Usage

This application is a permanently resident program with the ability to control through the system tray (where the clock is). The application saves settings in the registry. In the settings you can specify autorun with Windows. In the settings, you can adjust the speed and acceleration of scrolling. Inside it is a COM client interacting with the SynCOM.dll library.

Tests

The testing process is implemented through CI github actions. Code verification aka StaticAnalysis and code metrics is implemented through CI github actions.

CI github

CI github actions uses:

  • running tests based on google-test, a modified version of the smalti/gmock-win32 library is also used;
  • OpenCppCoverage/OpenCppCoverage to get code coverage with tests, in the form of html;
  • py junitparser to combine junit test reports into one file;
  • fork repo burlachenkok/gtest_report updated to work with Python3 to get html from junit reports;
  • py metrixpp to get code metrics;
  • cpplint to bring code style closer to GoogleStyle;
  • cppcheck to statically analyze the code for errors.

Build

Building the project and tests from the source code requires the presence of the Microsoft Visual Studio 2019 Community, and using *.sln and *.vcxproj project files. The project is also ready to be built via clang version 12.0.0, which comes with VIsualStudioCommunity2019.

Contributing

Can ask questions. PRs are accepted. No requirements for contributing.

Thanks

The scroll function code is taken from the awahlig/two-finger-scroll repo. Application and tray icon taken from here icon-icons.com and modified.

License

See the LICENSE file for license rights and limitations (MIT).