Skip to content

Commit

Permalink
Merge branch 'dev'
Browse files Browse the repository at this point in the history
  • Loading branch information
suurjaak committed Mar 25, 2024
2 parents bd06262 + c03e88b commit 77473f7
Show file tree
Hide file tree
Showing 15 changed files with 1,304 additions and 43 deletions.
3 changes: 0 additions & 3 deletions .gitignore

This file was deleted.

11 changes: 11 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,17 @@
CHANGELOG
=========

1.10, 2024-03-22
----------------
- use a custom lockfile implementation for single instance check in Linux (issue #27)
- print reason when exiting program due to another instance already running (issue #27)
- fix setting program to run at startup in newer Windows (issue #28)
- tweak escaping special characters for regex in heatmap page application search
- create new database file with default ownership permissions in Linux
- bundle licenses for included third-party software in released binaries
- exclude blank database from source distributions, to avoid overwriting it on upgrade


1.9, 2023-07-30
---------------
- add applications filter (issue #26)
Expand Down
103 changes: 103 additions & 0 deletions DETAIL.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,103 @@
Configuration
-------------

InputScope reads a number of settings from its configuration file at startup.

Some of them are exposed directly in the tray menu available on Windows;
all of them can be changed manually in the configuration file.


```ini
# Non-standard keyboard keys, as {numeric key code: "text label for key"},
# for providing or overriding key labels on statistics page.
# Example: {21: "IME Han/Yeong", 25: "IME Hanja"}
CustomKeys = {}

# Default desktop screen size if not available from system,
# for scaling mouse events to heatmap, in pixels, as [width, height]
DefaultScreenSize = [1920, 1080]

# Interval between logging input events to database, in seconds
EventsWriteInterval = 5

# Maximum number of events to use for statistics page
MaxEventsForStats = 1000000

# Maximum number of events to replay on statistics page
MaxEventsForReplay = 100000

# Whether keyboard logging is enabled
KeyboardEnabled = true

# Whether keyboard keypress event logging is enabled
KeyboardKeysEnabled = true

# Whether keyboard key combination event logging is enabled
KeyboardCombosEnabled = true

# Whether to ignore repeated keyboard events from long keypresses
KeyboardStickyEnabled = true

# Whether mouse logging is enabled
MouseEnabled = true

# Whether mouse move event logging is enabled
MouseMovesEnabled = true

# Whether mouse click event logging is enabled
MouseClicksEnabled = true

# Whether mouse scroll event logging is enabled
MouseScrollsEnabled = true

# Size of mouse heatmap on statistics page, in pixels, as [width, height]
MouseHeatmapSize = [640, 360]

# Maximum interval between linear move events for event reduction, in seconds (0 disables)
MouseMoveJoinInterval = 0.5

# Fuzz radius for linear move events for event reduction, in heatmap-scale pixels
MouseMoveJoinRadius = 5

# Maximum interval between scroll events for event reduction, in seconds (0 disables)
MouseScrollJoinInterval = 0.5

# List of screen areas to monitor for mouse events if not all,
# as [[x, y, w, h], ] or [[screen index, [x, y, w, h]], ]; coordinates
# can be given as pixels, or as percentages of screen size (decimal fractions 0..1).
# Example to log mouse events from first screen only: [[0, [0, 0, 1.0, 1.0]]]
MouseRegionsOfInterest = []

# List of screen areas to ignore for mouse events,
# as [[x, y, w, h], ] or [[screen index, [x, y, w, h]], ]; coordinates
# can be given as pixels, or as percentages of screen size (decimal fractions 0..1).
# Example to ignore mouse events from center of all screens: [[0.49, 0.49, 0.02, 0.02]]
MouseRegionsOfDisinterest = []

# Physical length of a pixel, for mouse event distance calculations, in meters
PixelLength = 0.00024825

# Applications to ignore for inputs events,
# as {executable path: [] if all inputs else [input or event type, ]}.
# Path can be absolute or relative like "C:\Python\python.exe" or "python.exe",
# and can contain wildcards like "python*". Path is case-insensitive.
# Example to ignore keypress events from command prompts, and all mouse events from Paint:
# {"cmd.exe": ["keys"], "mspaint.exe": ["mouse"]}
ProgramBlacklist = {}

# Applications to monitor inputs from if not all,
# as {executable path: [] if all inputs else [input or event type, ]}.
# Path can be absolute or relative like "C:\Python\python.exe" or "python.exe",
# and can contain wildcards like "python*". Path is case-insensitive.
# Example to monitor input events from Notepad only: {"notepad.exe": []}
ProgramWhitelist = {}

# Whether active application logging, filtering and statistics are enabled
ProgramsEnabled = True

# Interval between checking and saving changes in screen size, in seconds
ScreenSizeInterval = 10

# HTTP port for the web user interface
WebPort = 8099
```
2 changes: 1 addition & 1 deletion MANIFEST.in
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
recursive-include src *.py *.tpl *.db *.ini *.css *.ico *.js *.svg
recursive-include src *.py *.tpl *.ini *.css *.ico *.js *.svg
include CHANGELOG.md LICENSE.md README.md requirements.txt
18 changes: 10 additions & 8 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -12,8 +12,8 @@ and provides a local web page for viewing statistics and heatmaps by day or mont
[![Keyboard combos heatmap](https://raw.githubusercontent.com/suurjaak/InputScope/media/th_combos.png)](https://raw.githubusercontent.com/suurjaak/InputScope/media/combos.png)


Details
-------
Overview
--------

Logs mouse clicks and scrolls and movement, and keyboard key presses and key
combinations; event categories can be toggled off from tray menu.
Expand Down Expand Up @@ -74,6 +74,8 @@ e.g.
MouseRegionsOfDisinterest = [[0.49, 0.49, 0.02, 0.02]]
```

For more on configuration settings, see [DETAIL.md](DETAIL.md).


Installation
------------
Expand Down Expand Up @@ -102,12 +104,12 @@ and `inputscope-webui` to path.
Dependencies
------------

* Python 2.7 or Python 3.5+
* bottle
* psutil
* pynput
* pywin32 (optional, for toggling "Start with Windows")
* wxPython (optional)
* Python 2.7 or Python 3.5+ (https://www.python.org)
* bottle (https://pypi.org/project/bottle)
* psutil (https://pypi.org/project/psutil)
* pynput (https://pypi.org/project/pynput)
* pywin32 (optional, for toggling "Start with Windows") (https://pypi.org/project/pywin32)
* wxPython (optional) (https://wxpython.org)

If wxPython is not available, InputScope will not have its tray program,
and will not recognize multi-monitor setups in mouse statistics.
Expand Down
Loading

0 comments on commit 77473f7

Please sign in to comment.