# 0.8.8 / 0.9.4

  * Controller: Improve DPI presentation for high DPI devices.
  * Controller: Fix editor playback loop skipping over the first frame.
  * Troubleshooter: Detect when Python library fails to load.
  * Remove unused code.

# 0.8.7 / 0.9.3

  * Controller: Add device map for Razer Huntsman V2 Analog (UK)
  * OpenRazer: Only show on-the-fly macro instructions if available.
  * Fix crash when effect file is moved or renamed.
  * Improve support for Flatpak version.
  * Add appstream metainfo.

# 0.8.6 / 0.9.2

  * Controller: Fix broken header graphic when tiling application.
  * Controller: Hide Y axis for Razer Basilisk Essential.
  * Troubleshooter: Improve secure boot check.
  * Fix 'Hz' typo for DeathAdder 3.5G DPI list.
  * OpenRazer 3.9+: Add "persistence_dual_boot_quirk" config option.

# 0.8.5 / 0.9.1

  * Fix various translation issues.
  * Set the desktop filename for Wayland.
  * Update translation for Simplified Chinese.

# 0.9.0

  * Port to PyQt6.
  * Fix effect restoration when closing 'Inspect Matrix'

# 0.8.4

  * Controller: Add device map for Razer Huntsman Mini (US)
  * Controller: Fix "remember window position" setting
  * Update translation for German.

# 0.8.3

  * Controller: Add device map for Razer Blackwidow V4 Pro.
  * Controller: Add device map for Razer Cynosa V2 (US).
  * Controller: Volume icons in device graphics are now consistent.
  * OpenRazer: Add "Wheel" effect for compatible devices.
  * Troubleshooter: Check for old copies of OpenRazer's Python library.
  * Add translation for Georgian.

# 0.8.2

  * Controller: Add device map for Razer BlackWidow V3 (US).
  * Controller: Fix crash when multiple non-RGB devices present.
  * Controller: Fix crash with entering invalid values in DPI custom stages dialog.
  * OpenRazer: Add "On" effect.
  * OpenRazer: Add "Breath Random" effect for mono devices.
  * OpenRazer: Fix missing "Blinking" effect
  * Exclude Razer Phone 2 as an unknown device.
  * Fix missing colour input for Reactive effect.
  * Update translations for Simplified Chinese; German and Polish.

# 0.8.1

  * Controller: Add device map for Huntsman Tournament Edition.
  * Controller: Add device map for Ornata V2 (US)
  * Controller: Improve messaging for unrecognised devices.
  * Controller: Fix error caused by unreliable internet connection.
  * Controller: Fix placeholder text colour in metadata dialog.
  * Controller: Fix XDG_CONFIG_HOME path for OpenRazer.
  * Controller: Fix missing translations for spinbox tooltips.
  * Controller: Fix tab error when OpenRazer daemon becomes faulty.
  * OpenRazer: Add keyswitch optimisation option.
  * Update translations for Simplified Chinese and German.

# 0.8.0

  * General: Add scroll options for Razer Basilisk V3.
  * General: Rework application architecture.
  * General: Rework integration with OpenRazer.
  * General: Improve "Apply to All" by detecting capable options.
  * General: Improve error handling.
  * Controller: Add device map for Razer Cynosa V2 (Nordic).
  * Controller: Add device map for Base Station V2 Chroma.
  * Controller: Add support for DPI sync and per-device DPI stages.
  * Tray: Show error dialogs when actions fail.
  * CLI: Show battery info.
  * Fix missing locales.
  * Update translations for French; add Polish.

# 0.7.3

  * Add device map for Razer Blade 2021 Advanced.
  * Add device map for Razer Basilisk V3.
  * Add support for polling rates up to 8000 Hz.
  * Fix crash when tray applet is not installed.
  * Improve OpenRazer troubleshooter for Python and DKMS checks.
  * Update icon for battery charging.
  * Exclude Razer Seiren X as an unknown device.

# 0.7.2

  * Fix compatibility with Python 3.10.

# 0.7.1

  * Controller: Change keyboard shortcuts for changing HSL in editor.
  * Controller: Fix crash on Python 3.10.
  * Controller: Fix crash when styles were missing.
  * Controller: Fix controls that were supposed to be in a disabled state.
  * Controller: Fix retrieval of versions in About dialogs.
  * Controller: Improvements to OpenRazer troubleshooter.
  * General: Fix crash if there was a "data" Python module.
  * General: Swap positions of logo/scroll wheel in UI.
  * General: Fix error setting idle_time and low_battery_threshold.
  * General: Fix error setting Pulsate/Static for BlackWidow 2013-era keyboards.
  * General: Fix graphics for charging zones.
  * Tray: Add support for Ayatana Indicators.
  * CLI: Fix error setting DPI for certain mice.
  * Add StartupWMClass to launcher.
  * Minor spelling corrections.

# 0.7.0

  * Controller: Drop WebKitGTK. Now uses PyQt5.
  * Controller: New UI design and menus.
  * Controller: New custom effect editor with support for frame-based animations.
  * Controller: New device graphics to map against.
  * Controller: Add option to hide key labels in editor.
  * Controller: New troubleshooter for OpenRazer.
  * Controller: New configuration editor for OpenRazer.
  * Controller: New 'Apply to All' feature.
  * Controller: New preferences interface.
  * Controller: New 'Device Info' and 'Inspect Matrix' options.
  * Controller: New colour picker and saved colour list management.
  * Controller: New icon picker - add support for (low-res) Steam games and custom icons.
  * Controller: New DPI picker, with support for independent X/Y axis.
  * Controller: Warn when using incompatible configuration.
  * Controller: Add support for native system theme (distro-dependent)
  * Controller: Add window behaviour and toolbar preferences.
  * Controller: Add ability to refresh view.
  * Controller: Drop --print-device-info parameter (use 'Device Info' instead)
  * Tray: New menu design.
  * Tray: Add support for GTK Status Icon.
  * Tray: New option to delay autostart (to fix race conditions)
  * CLI: New command line interface (polychromatic-cli)
  * Helper: Replaces the tray applet autostart desktop launcher.
  * Helper: New background process to run software effects.
  * OpenRazer: No longer a hard dependency.
  * OpenRazer: Add support for multizoned hardware.
  * OpenRazer: Add support for battery status, sleep and low power modes.
  * Support custom effects for all compatible hardware.
  * Add option to open mouse preferences.
  * Add option to define DPI range.
  * Add information about macros and key remapping.
  * Add XDG desktop actions to desktop launcher.
  * New modular backend.
  * New icons and/or updated.
  * New (partial) translations: pt_BR, fr_FR, fi_FI, ru, nl, zh_CN
  * Change shebang to '/usr/bin/python3'
  * Build: Change build system to meson/ninja.
  * Build: Switch from 'lessc' to 'sassc'
  * Build: New locale scripts. Source language is now en_GB.

# 0.3.12

  * The DPI/Poll Rate labels were hard to read.
  * Daemon screen in Preferences came up blank.
  * (Ubuntu/Debian) Address misaligned button text.
  * (Ubuntu/Debian) Add warning if the old PPA is detected.

# 0.3.11

  * Daemon is now known as OpenRazer!
  * Updates to initialization error screens.
  * Prevent a segfault with newer WebKit versions.
  * Internal changes to how styling is compiled.

# 0.3.10

  * Catch more exceptions to prevent errors from stopping the application.
  * Internal code refactoring, namely the preferences page.
  * No longer depends on WebKit >=2.12
  * Add support for starlight effect.

# 0.3.9.3

  * Daemon configuration paths updated.

# 0.3.9.2

  * Daemon has renamed razer-service to razer-daemon.

# 0.3.9.1

  * Re-licensed as GPL3.
  * Add German translation.
  * Fix profile matrix rows/cols for non-BW devices.
  * Various fixes to prevent exceptions.

# 0.3.9

  * Fix wrong colour for green shade variants.
  * Fix corrupt screen when choosing an application.
  * Improved logic when devices cannot be found.
  * Add support for mice with "backlight" functions.
  * Add support for polling rate.
  * Limit DPI according to mouse.
  * Ensure 'sync_effects_enabled' is disabled in daemon.
  * Hide "effects" menu in tray if device doesn't support them.
  * Sync device state changes between tray/controller.

# 0.3.8

  * Overhaul tray applet, with improved device support.
  * Add device support for toggling lighting on scroll wheels.
  * Show green shades for Ultimate keyboards.
  * Refreshed and touched up UI improvements.
  * Some internal code clean-ups.
  * Miscellaneous fixes, including:
    * Fixed inability to modify profile keys.
    * Macros, game mode and profiles only show for supported devices.

# 0.3.7

  * Add support for logo and scroll wheel.
  * Add options for mouse DPI.
  * Add ability to create/modify your own colours.
  * Add "Breeze" tray icons for KDE desktops.
  * New features on Overview Screen -- show firmware version and colour in use.
  * Improvements to error, loading and restarting daemon screens.
  * Use daemon for determining device images.
  * Speed up the refresh rate when setting the ripple effect.
  * Prevent missing images for device icons and header background.
  * Update application icons.
  * Miscellaneous small fixes and improvements.

# 0.3.6

  * Add button to gracefully stop the daemon.
  * Add images for headsets and keypads.
  * Show device images on Overview screen.
  * Show more friendly errors when things go wrong.
  * Fix command loop (causing high CPU utilization)
  * Miscellaneous fixes.

# 0.3.5

  * Prevent crash when device serial returned null.
  * Correct logic for showing "No Devices Found" screen.
  * Update verbose messages when running with "-v" flag.
  * Fix wrong reactive colours being set.
  * Add device overview screen.
  * Drop obsolete "Enable Macro Keys" button.

# 0.3.4

  * On device not found error, check for a connected Razer product.
  * Track and retain device states.
  * Show optional zenity dialog when restarting daemon.
  * Fix "Reset Preferences" button.
  * Miscellaneous UI fixes.

# 0.3.3

  * Ensure FN/Space keys are enabled for keyboards that support it.
  * Add tabs to preferences.
  * Depend on python3-requests.
  * View change logs from within the application.
  * Add daemon settings to preferences.
  * Add ability to restart daemon service.
  * Prevent tray applet crash when profile didn't exist.
  * Prevent tray applet crash when daemon is not ready/present.
  * Add loading screen while Controller initialises.
  * Add demo option - Synchronised Razer BlackWidow Chroma Advert.
  * Remove useless "device refresh" button.

# 0.3.2

  * Add keyboard navigation support.
  * Dropdown menus are themed.
  * Minor UI changes.
    * Consistent use of normal cursor.
    * Profile editor tools relocated and shows selected tool.

# 0.3.1

  * Display error message on daemon initialisation failures.
  * Set process title earlier to prevent muddled process name.
  * Add daemon/library version information to About.
  * Ensure only supported features are shown.
  * Add support for pulsate effect on Razer BW2013.
  * Add support for logo lighting on Razer Abyssus.

# 0.3.0

  * Migrate to the new daemon.
  * Implement multi-device support.
  * Add ripple effects.
  * Hide features unsupported to selected device.
  * Upgrade configuration to version 4.
    * Switches to JSON profile format.
    * Drops centralised index method.
  * Show graphical error messages.
  * Fix broken open folder button.
  * Add icons to effects list.
  * New "dynamic" headings.
  * New tray applet icons and string updates.
  * Internal code tweaks and improvements.

# 0.2.3

  * Add autostart entry.
  * Show warning when ran under DaemonV2.

# 0.2.2

  * New application logo.
  * Upgraded profile format.
  * New application profiles list, with support for icons and renaming.
  * Add option to choose an existing application for new profiles.
  * Amendments to user interface.
  * Uses custom WebKit controls.
  * Automatically reload the tray applet on changes.
  * Refreshed translations.
  * Tray applet loads preferred colours.
  * Internal code clean-up.
  * Create packages for Yakkety.

# 0.2.1

  * New dialogue prompts for profile creation/deletion.
  * Add translation support.
  * Use a Python module for setting process title.
  * Internal code clean-up.

# 0.2.0

  * Migrated to WebKit2.
  * Internal project restructure.
  * Prepared packaging for Ubuntu.

# 0.1.0

  * Initial Release
