Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 2 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@
.DS_Store
*.orig
*.jpg
*.mp4
/*.png
*.png.old
*.pickle
Expand All @@ -13,6 +14,7 @@
build/
.cache/
dist/
docs/__intersphinx_cache__/
docs_out/
*.egg-info/
.idea/
Expand Down
135 changes: 90 additions & 45 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,8 @@

See Git commit messages for full history.

## 10.2.0.dev0 (2026-xx-xx)
## v10.2.0.dev0
(2026-xx-xx)
- Add `is_primary`, `name`, and `unique_id` keys to Monitor dicts for primary monitor detection, device names, and stable per-monitor identification (#153)
- Add `primary_monitor` property to MSS base class for easy access to the primary monitor (#153)
- Windows: add primary monitor detection using `GetMonitorInfoW` API (#153)
Expand All @@ -20,19 +21,22 @@ See Git commit messages for full history.
- Add full demos for different ways to use MSS (#444, #456, #465)
- :heart: contributors: @jholveck, @halldorfannar

## 10.1.0 (2025-08-16)
## v10.1.0
(2025-08-16)
- Mac: up to 60% performances improvement by taking screenshots at nominal resolution (e.g. scaling is off by default). To enable back scaling, set `mss.darwin.IMAGE_OPTIONS = 0`. (#257)
- docs: use the [shibuya](https://shibuya.lepture.com) theme
- :heart: contributors: @brycedrennan

## 10.0.0 (2024-11-14)
## v10.0.0
(2024-11-14)
- removed support for Python 3.8
- added support for Python 3.14
- Linux: fixed a threading issue in `.close()` when calling `XCloseDisplay()` (#251)
- Linux: minor optimization when checking for a X extension status (#251)
- :heart: contributors: @kianmeng, @shravanasati, @mgorny

## 9.0.2 (2024-09-01)
## v9.0.2
(2024-09-01)
- added support for Python 3.13
- leveled up the packaging using `hatchling`
- used `ruff` to lint the code base (#275)
Expand All @@ -41,10 +45,12 @@ See Git commit messages for full history.
- CI: automated release publishing on tag creation
- :heart: contributors: @Andon-Li

## 9.0.1 (2023-04-20)
## v9.0.1
(2023-04-20)
- CLI: fixed entry point not taking into account arguments

## 9.0.0 (2023-04-18)
## v9.0.0
(2023-04-18)
- Linux: add failure handling to `XOpenDisplay()` call (fixes #246)
- Mac: tiny improvement in monitors finding
- Windows: refactored how internal handles are stored (fixes #198)
Expand All @@ -55,7 +61,8 @@ See Git commit messages for full history.
- tests: automatic rerun in case of failure (related to #251)
- :heart: contributors: @mgorny, @CTPaHHuK-HEbA

## 8.0.3 (2023-04-15)
## v8.0.3
(2023-04-15)
- added support for Python 3.12
- MSS: added PEP 561 compatibility
- MSS: include more files in the sdist package (#240)
Expand All @@ -66,16 +73,19 @@ See Git commit messages for full history.
- dev: review the structure of the repository to fix/improve packaging issues (#243)
- :heart: contributors: @mgorny, @relent95

## 8.0.2 (2023-04-09)
## v8.0.2
(2023-04-09)
- fixed `SetuptoolsDeprecationWarning`: Installing 'XXX' as data is deprecated, please list it in packages
- CLI: fixed arguments handling

## 8.0.1 (2023-04-09)
## v8.0.1
(2023-04-09)
- MSS: ensure `--with-cursor`, and `with_cursor` argument & attribute, are simple NOOP on platforms not supporting the feature
- CLI: do not raise a `ScreenShotError` when `-q`, or `--quiet`, is used but return `
- tests: fixed `test_entry_point()` with multiple monitors having the same resolution

## 8.0.0 (2023-04-09)
## v8.0.0
(2023-04-09)
- removed support for Python 3.6
- removed support for Python 3.7
- MSS: fixed PEP 484 prohibits implicit Optional
Expand All @@ -88,10 +98,12 @@ See Git commit messages for full history.
- tests: added PyPy 3.9, removed `tox`, and improved GNU/Linux coverage
- :heart: contributors: @zorvios

## 7.0.1 (2022-10-27)
## v7.0.1
(2022-10-27)
- fixed the wheel package

## 7.0.0 (2022-10-27)
## v7.0.0
(2022-10-27)
- added support for Python 3.11
- added support for Python 3.10
- removed support for Python 3.5
Expand All @@ -100,31 +112,35 @@ See Git commit messages for full history.
- MSS: fixed typos here, and there
- docs: fixed an error when building the documentation

## 6.1.0 (2020-10-31)
## v6.1.0
(2020-10-31)
- MSS: reworked how C functions are initialized
- Mac: reduce the number of function calls
- Mac: support macOS Big Sur (fixes #178)
- tests: expand Python versions to 3.9 and 3.10
- tests: fixed macOS interpreter not found on Travis-CI
- tests: fixed `test_entry_point()` when there are several monitors

## 6.0.0 (2020-06-30)
## v6.0.0
(2020-06-30)
- removed usage of deprecated `license_file` option for `license_files`
- fixed flake8 usage in pre-commit
- the module is now available on Conda (closes #170)
- MSS: the implementation is now thread-safe on all OSes (fixes #169)
- Linux: better handling of the Xrandr extension (fixes #168)
- tests: fixed a random bug on `test_grab_with_tuple_percents()` (fixes #142)

## 5.1.0 (2020-04-30)
## v5.1.0
(2020-04-30)
- produce wheels for Python 3 only
- MSS: renamed again `MSSMixin` to `MSSBase`, now derived from `abc.ABCMeta`
- tools: force write of file when saving a PNG file
- tests: fixed tests on macOS with Retina display
- Windows: fixed multi-thread safety (fixes #150)
- :heart: contributors: @narumishi

## 5.0.0 (2019-12-31)
## v5.0.0
(2019-12-31)
- removed support for Python 2.7
- MSS: improve type annotations and add CI check
- MSS: use `__slots__` for better performances
Expand All @@ -137,15 +153,18 @@ See Git commit messages for full history.
- tests: move tests files into the package
- :heart: contributors: @hugovk, @foone, @SergeyKalutsky

## 4.0.2 (2019-02-23)
## v4.0.2
(2019-02-23)
- Windows: ignore missing `SetProcessDPIAware()` on Window XP (fixes #109)
- :heart: contributors: @foone

## 4.0.1 (2019-01-26)
## v4.0.1
(2019-01-26)
- Linux: fixed several Xlib functions signature (fixes #92)
- Linux: improve monitors finding by a factor of 44

## 4.0.0 (2019-01-11)
## v4.0.0
(2019-01-11)
- MSS: remove use of `setup.py` for `setup.cfg`
- MSS: renamed `MSSBase` to `MSSMixin` in `base.py`
- MSS: refactor ctypes `argtype`, `restype` and `errcheck` setup (fixes #84)
Expand All @@ -158,29 +177,34 @@ See Git commit messages for full history.
- MSS: fixed PyLint bad-super-call: Bad first argument 'Exception' given to `super()`
- tests: use `tox`, enable PyPy and PyPy3, add macOS and Windows CI

## 3.3.2 (2018-11-20)
## v3.3.2
(2018-11-20)
- MSS: do monitor detection in MSS constructor (fixes #79)
- MSS: specify compliant Python versions for pip install
- tests: enable Python 3.7
- tests: fixed `test_entry_point()` with multiple monitors
- :heart: contributors: @hugovk, @andreasbuhr

## 3.3.1 (2018-09-22)
## v3.3.1
(2018-09-22)
- Linux: fixed a memory leak introduced with 7e8ae5703f0669f40532c2be917df4328bc3985e (fixes #72)
- docs: add the download statistics badge

## 3.3.0 (2018-09-04)
## v3.3.0
(2018-09-04)
- Linux: add an error handler for the XServer to prevent interpreter crash (fixes #61)
- MSS: fixed a `ResourceWarning`: unclosed file in `setup.py`
- tests: fixed a `ResourceWarning`: unclosed file
- docs: fixed a typo in `Screenshot.pixel()` method (thanks to @mchlnix)
- big code clean-up using `black`

## 3.2.1 (2018-05-21)
## v3.2.1
(2018-05-21)
- Windows: enable Hi-DPI awareness
- :heart: contributors: @ryanfox

## 3.2.0 (2018-03-22)
## v3.2.0
(2018-03-22)
- removed support for Python 3.4
- MSS: add the `Screenshot.bgra` attribute
- MSS: speed-up grabbing on the 3 platforms
Expand All @@ -189,17 +213,20 @@ See Git commit messages for full history.
- docs: add an example about capturing part of the monitor 2
- docs: add an example about computing BGRA values to RGB

## 3.1.2 (2018-01-05)
## v3.1.2
(2018-01-05)
- removed support for Python 3.3
- MSS: possibility to get the whole PNG raw bytes
- Windows: capture all visible window
- docs: improvements and fixes (fixes #37)
- CI: build the documentation

## 3.1.1 (2017-11-27)
## v3.1.1
(2017-11-27)
- MSS: add the `mss` entry point

## 3.1.0 (2017-11-16)
## v3.1.0
(2017-11-16)
- MSS: add more way of customization to the output argument of `save()`
- MSS: possibility to use custom class to handle screenshot data
- Mac: properly support all display scaling and resolutions (fixes #14, #19, #21, #23)
Expand All @@ -211,22 +238,26 @@ See Git commit messages for full history.
- add the 'Say Thanks' button
- :heart: contributors: @karanlyons

## 3.0.1 (2017-07-06)
## v3.0.1
(2017-07-06)
- fixed examples links

## 3.0.0 (2017-07-06)
## v3.0.0
(2017-07-06)
- big refactor, introducing the `ScreenShot` class
- MSS: add Numpy array interface support to the `Screenshot` class
- docs: add OpenCV/Numpy, PIL pixels, FPS

## 2.0.22 (2017-04-29)
## v2.0.22
(2017-04-29)
- MSS: better use of exception mechanism
- Linux: use of `hasattr()` to prevent Exception on early exit
- Mac: take into account extra black pixels added when screen with is not divisible by 16 (fixes #14)
- docs: add an example to capture only a part of the screen
- :heart: contributors: David Becker, @redodo

## 2.0.18 (2016-12-03)
## v2.0.18
(2016-12-03)
- change license to MIT
- MSS: add type hints
- MSS: remove unused code (reported by `Vulture`)
Expand All @@ -239,7 +270,8 @@ See Git commit messages for full history.
- tests: add tests and use Travis CI (fixes #9)
- :heart: contributors: @cycomanic

## 2.0.0 (2016-06-04)
## v2.0.0
(2016-06-04)
- add issue and pull request templates
- split the module into several files
- MSS: a lot of code refactor and optimizations
Expand All @@ -251,13 +283,16 @@ See Git commit messages for full history.
- Linux: `get_pixels()` insanely fast, use of MSS library (C code)
- Windows: screenshot not correct on Windows 8 (fixes #6)

## 1.0.2 (2016-04-22)
## v1.0.2
(2016-04-22)
- MSS: fixed non-existent alias

## 1.0.1 (2016-04-22)
## v1.0.1
(2016-04-22)
- MSS: `libpng` warning (ignoring bad filter type) (fixes #7)

## 1.0.0 (2015-04-16)
## v1.0.0
(2015-04-16)
- Python 2.6 to 3.5 ready
- MSS: code clean-up and review, no more debug information
- MSS: add a shortcut to take automatically use the proper `MSS` class (fixes #5)
Expand All @@ -269,30 +304,35 @@ See Git commit messages for full history.
- Windows: huge optimization of `get_pixels()`
- CLI: delete `--debug` argument

## 0.1.1 (2015-04-10)
## v0.1.1
(2015-04-10)
- MSS: little code review
- Linux: fixed monitor count
- tests: remove `test-linux` binary
- docs: add `doc/TESTING`
- docs: remove Bonus section from README

## 0.1.0 (2015-04-10)
## v0.1.0
(2015-04-10)
- MSS: fixed code with `YAPF` tool
- Linux: fully functional using Xrandr library
- Linux: code clean-up (no more XML files to parse)
- docs: better tests and examples

## 0.0.8 (2015-02-04)
## v0.0.8
(2015-02-04)
- MSS: filename's directory is not used when saving (fixes #3)
- MSS: fixed flake8 error: E713 test for membership should be 'not in'
- MSS: raise an exception for unimplemented methods
- Windows: robustness to `MSSWindows.get_pixels` (fixes #4)
- :heart: contributors: @sergey-vin, @thehesiod

## 0.0.7 (2014-03-20)
## v0.0.7
(2014-03-20)
- MSS: fixed path where screenshots are saved

## 0.0.6 (2014-03-19)
## v0.0.6
(2014-03-19)
- Python 3.4 ready
- PEP8 compliant
- MSS: review module structure to fit the "Code Like a Pythonista: Idiomatic Python"
Expand All @@ -304,23 +344,28 @@ See Git commit messages for full history.
- CLI: possibility to append `--debug` to the command line
- :heart: contributors: @sametmax

## 0.0.5 (2013-11-01)
## v0.0.5
(2013-11-01)
- MSS: code simplified
- Windows: few optimizations into `_arrange()`

## 0.0.4 (2013-10-31)
## v0.0.4
(2013-10-31)
- Linux: use of memoization → huge time/operations gains

## 0.0.3 (2013-10-30)
## v0.0.3
(2013-10-30)
- MSS: removed PNG filters
- MSS: removed `ext` argument, using only PNG
- MSS: do not overwrite existing image files
- MSS: few optimizations into `png()`
- Linux: few optimizations into `get_pixels()`

## 0.0.2 (2013-10-21)
## v0.0.2
(2013-10-21)
- added support for python 3 on Windows and GNU/Linux
- :heart: contributors: Oros, Eownis

## 0.0.1 (2013-07-01)
## v0.0.1
(2013-07-01)
- first release
2 changes: 1 addition & 1 deletion LICENSE.txt
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
MIT License
Copyright (c) 2013-2025, Mickaël 'Tiger-222' Schoentgen
Copyright (c) 2013-2026, Mickaël 'Tiger-222' Schoentgen

Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

Expand Down
2 changes: 2 additions & 0 deletions docs/source/changelog.rst
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
.. include:: ../../CHANGELOG.md
:parser: myst_parser.sphinx_
Loading