jamesl created this revision. Restricted Application added a project: Plasma. Restricted Application added a subscriber: plasma-devel.
REVISION SUMMARY Breeze ships with 24 and 48 px cursors, and recently added 36 px in https://phabricator.kde.org/D4358. However, with modern screen resolutions coming in all over the place, there need to be more options. For example, my 14" WQHD display with a scaling factor of 1.67 looks best with a (24 * 1.67 =) 40 px cursor. Beyond that, 6k and 8k displays are not far off. KDE already supports a 3X scaling mode, but doesn't come with a cursor size suitable for it. GNOME's Adwaita theme already supports 24, 32, 48, 64, and 96 px cursor options. Breeze should have at least the same options. This change turns the xcursorgen config files into something that can be processed to generate arbitrary size cursors. The build script has been modified to iterate over a list of sizes that can be changed as desired without having to change any hardcoded values. Pointer x-y hit values are interpolated, and where they fall between pixels, they are rounded to the nearest pixel. This does not seem to affect usability, especially on the high-dpi displays for which the cursors are intended. Please see Bug #363147 for additional commentary. https://bugs.kde.org/show_bug.cgi?id=363147 NOTE: This change causes all of the cursor bitmaps and binaries to be regenerated. That was too large for Phabricator, so I have elimitated them from this diff. If accepted, you must run the build.sh script in the Breeze cursor directory to regenerate the binary cursors before committing. REPOSITORY R31 Breeze BRANCH master REVISION DETAIL https://phabricator.kde.org/D5250 AFFECTED FILES cursors/Breeze/Breeze/cursors/00000000000000020006000e7e9ffc3f cursors/Breeze/Breeze/cursors/00008160000006810000408080010102 cursors/Breeze/Breeze/cursors/03b6e0fcb3499374a867c041f52298f0 cursors/Breeze/Breeze/cursors/08e8e1c95fe2fc01f976f1e063a24ccd cursors/Breeze/Breeze/cursors/1081e37283d90000800003c07f3ef6bf cursors/Breeze/Breeze/cursors/3085a0e285430894940527032f8b26df cursors/Breeze/Breeze/cursors/3ecb610c1bf2410f44200f48c40d3599 cursors/Breeze/Breeze/cursors/4498f0e0c1937ffe01fd06f973665830 cursors/Breeze/Breeze/cursors/5c6cd98b3f3ebcb1f9c7f1c204630408 cursors/Breeze/Breeze/cursors/6407b0e94181790501fd1e167b474872 cursors/Breeze/Breeze/cursors/640fb0e74195791501fd1ed57b41487f cursors/Breeze/Breeze/cursors/9081237383d90e509aa00f00170e968f cursors/Breeze/Breeze/cursors/9d800788f1b08800ae810202380a0822 cursors/Breeze/Breeze/cursors/a2a266d0498c3104214a47bd64ab0fc8 cursors/Breeze/Breeze/cursors/alias cursors/Breeze/Breeze/cursors/all-scroll cursors/Breeze/Breeze/cursors/b66166c04f8c3109214a4fbd64a50fc8 cursors/Breeze/Breeze/cursors/bottom_left_corner cursors/Breeze/Breeze/cursors/bottom_right_corner cursors/Breeze/Breeze/cursors/bottom_side cursors/Breeze/Breeze/cursors/cell cursors/Breeze/Breeze/cursors/center_ptr cursors/Breeze/Breeze/cursors/circle cursors/Breeze/Breeze/cursors/closedhand cursors/Breeze/Breeze/cursors/col-resize cursors/Breeze/Breeze/cursors/color-picker cursors/Breeze/Breeze/cursors/context-menu cursors/Breeze/Breeze/cursors/copy cursors/Breeze/Breeze/cursors/cross cursors/Breeze/Breeze/cursors/crossed_circle cursors/Breeze/Breeze/cursors/crosshair cursors/Breeze/Breeze/cursors/d9ce0ab605698f320427677b458ad60b cursors/Breeze/Breeze/cursors/default cursors/Breeze/Breeze/cursors/dnd-copy cursors/Breeze/Breeze/cursors/dnd-move cursors/Breeze/Breeze/cursors/dnd-no-drop cursors/Breeze/Breeze/cursors/dnd-none cursors/Breeze/Breeze/cursors/down-arrow cursors/Breeze/Breeze/cursors/draft cursors/Breeze/Breeze/cursors/e-resize cursors/Breeze/Breeze/cursors/e29285e634086352946a0e7090d73106 cursors/Breeze/Breeze/cursors/fcf21c00b30f7e3f83fe0dfd12e71cff cursors/Breeze/Breeze/cursors/fleur cursors/Breeze/Breeze/cursors/forbidden cursors/Breeze/Breeze/cursors/h_double_arrow cursors/Breeze/Breeze/cursors/half-busy cursors/Breeze/Breeze/cursors/hand1 cursors/Breeze/Breeze/cursors/hand2 cursors/Breeze/Breeze/cursors/help cursors/Breeze/Breeze/cursors/ibeam cursors/Breeze/Breeze/cursors/left-arrow cursors/Breeze/Breeze/cursors/left_ptr cursors/Breeze/Breeze/cursors/left_ptr_help cursors/Breeze/Breeze/cursors/left_ptr_watch cursors/Breeze/Breeze/cursors/left_side cursors/Breeze/Breeze/cursors/link cursors/Breeze/Breeze/cursors/move cursors/Breeze/Breeze/cursors/n-resize cursors/Breeze/Breeze/cursors/no-drop cursors/Breeze/Breeze/cursors/not-allowed cursors/Breeze/Breeze/cursors/openhand cursors/Breeze/Breeze/cursors/pencil cursors/Breeze/Breeze/cursors/pirate cursors/Breeze/Breeze/cursors/plus cursors/Breeze/Breeze/cursors/pointer cursors/Breeze/Breeze/cursors/pointing_hand cursors/Breeze/Breeze/cursors/progress cursors/Breeze/Breeze/cursors/question_arrow cursors/Breeze/Breeze/cursors/right-arrow cursors/Breeze/Breeze/cursors/right_ptr cursors/Breeze/Breeze/cursors/right_side cursors/Breeze/Breeze/cursors/row-resize cursors/Breeze/Breeze/cursors/s-resize cursors/Breeze/Breeze/cursors/sb_h_double_arrow cursors/Breeze/Breeze/cursors/sb_v_double_arrow cursors/Breeze/Breeze/cursors/size-bdiag cursors/Breeze/Breeze/cursors/size-fdiag cursors/Breeze/Breeze/cursors/size-hor cursors/Breeze/Breeze/cursors/size-ver cursors/Breeze/Breeze/cursors/size_all cursors/Breeze/Breeze/cursors/size_bdiag cursors/Breeze/Breeze/cursors/size_fdiag cursors/Breeze/Breeze/cursors/size_hor cursors/Breeze/Breeze/cursors/size_ver cursors/Breeze/Breeze/cursors/split_h cursors/Breeze/Breeze/cursors/split_v cursors/Breeze/Breeze/cursors/text cursors/Breeze/Breeze/cursors/top_left_arrow cursors/Breeze/Breeze/cursors/top_left_corner cursors/Breeze/Breeze/cursors/top_right_corner cursors/Breeze/Breeze/cursors/top_side cursors/Breeze/Breeze/cursors/up-arrow cursors/Breeze/Breeze/cursors/v_double_arrow cursors/Breeze/Breeze/cursors/vertical-text cursors/Breeze/Breeze/cursors/w-resize cursors/Breeze/Breeze/cursors/wait cursors/Breeze/Breeze/cursors/watch cursors/Breeze/Breeze/cursors/wayland-cursor cursors/Breeze/Breeze/cursors/whats_this cursors/Breeze/Breeze/cursors/x-cursor cursors/Breeze/Breeze/cursors/xterm cursors/Breeze/Breeze/cursors/zoom-in cursors/Breeze/Breeze/cursors/zoom-out cursors/Breeze/Breeze/index.theme cursors/Breeze/CMakeLists.txt cursors/Breeze/build.sh cursors/Breeze/build/x1/alias.png cursors/Breeze/build/x1/all-scroll.png cursors/Breeze/build/x1/bottom_left_corner.png cursors/Breeze/build/x1/bottom_right_corner.png cursors/Breeze/build/x1/bottom_side.png cursors/Breeze/build/x1/cell.png cursors/Breeze/build/x1/center_ptr.png cursors/Breeze/build/x1/col-resize.png cursors/Breeze/build/x1/color-picker.png cursors/Breeze/build/x1/context-menu.png cursors/Breeze/build/x1/copy.png cursors/Breeze/build/x1/crosshair.png cursors/Breeze/build/x1/default.png cursors/Breeze/build/x1/dnd-move.png cursors/Breeze/build/x1/dnd-no-drop.png cursors/Breeze/build/x1/down-arrow.png cursors/Breeze/build/x1/draft.png cursors/Breeze/build/x1/fleur.png cursors/Breeze/build/x1/help.png cursors/Breeze/build/x1/left-arrow.png cursors/Breeze/build/x1/left_side.png cursors/Breeze/build/x1/no-drop.png cursors/Breeze/build/x1/not-allowed.png cursors/Breeze/build/x1/openhand.png cursors/Breeze/build/x1/pencil.png cursors/Breeze/build/x1/pirate.png cursors/Breeze/build/x1/pointer.png cursors/Breeze/build/x1/progress-01.png cursors/Breeze/build/x1/progress-02.png cursors/Breeze/build/x1/progress-03.png cursors/Breeze/build/x1/progress-04.png cursors/Breeze/build/x1/progress-05.png cursors/Breeze/build/x1/progress-06.png cursors/Breeze/build/x1/progress-07.png cursors/Breeze/build/x1/progress-08.png cursors/Breeze/build/x1/progress-09.png cursors/Breeze/build/x1/progress-10.png cursors/Breeze/build/x1/progress-11.png cursors/Breeze/build/x1/progress-12.png cursors/Breeze/build/x1/progress-13.png cursors/Breeze/build/x1/progress-14.png cursors/Breeze/build/x1/progress-15.png cursors/Breeze/build/x1/progress-16.png cursors/Breeze/build/x1/progress-17.png cursors/Breeze/build/x1/progress-18.png cursors/Breeze/build/x1/progress-19.png cursors/Breeze/build/x1/progress-20.png cursors/Breeze/build/x1/progress-21.png cursors/Breeze/build/x1/progress-22.png cursors/Breeze/build/x1/progress-23.png cursors/Breeze/build/x1/progress.png cursors/Breeze/build/x1/right-arrow.png cursors/Breeze/build/x1/right_ptr.png cursors/Breeze/build/x1/right_side.png cursors/Breeze/build/x1/row-resize.png cursors/Breeze/build/x1/size_bdiag.png cursors/Breeze/build/x1/size_fdiag.png cursors/Breeze/build/x1/size_hor.png cursors/Breeze/build/x1/size_ver.png cursors/Breeze/build/x1/text.png cursors/Breeze/build/x1/top_left_corner.png cursors/Breeze/build/x1/top_right_corner.png cursors/Breeze/build/x1/top_side.png cursors/Breeze/build/x1/up-arrow.png cursors/Breeze/build/x1/vertical-text.png cursors/Breeze/build/x1/wait-01.png cursors/Breeze/build/x1/wait-02.png cursors/Breeze/build/x1/wait-03.png cursors/Breeze/build/x1/wait-04.png cursors/Breeze/build/x1/wait-05.png cursors/Breeze/build/x1/wait-06.png cursors/Breeze/build/x1/wait-07.png cursors/Breeze/build/x1/wait-08.png cursors/Breeze/build/x1/wait-09.png cursors/Breeze/build/x1/wait-10.png cursors/Breeze/build/x1/wait-11.png cursors/Breeze/build/x1/wait-12.png cursors/Breeze/build/x1/wait-13.png cursors/Breeze/build/x1/wait-14.png cursors/Breeze/build/x1/wait-15.png cursors/Breeze/build/x1/wait-16.png cursors/Breeze/build/x1/wait-17.png cursors/Breeze/build/x1/wait-18.png cursors/Breeze/build/x1/wait-19.png cursors/Breeze/build/x1/wait-20.png cursors/Breeze/build/x1/wait-21.png cursors/Breeze/build/x1/wait-22.png cursors/Breeze/build/x1/wait-23.png cursors/Breeze/build/x1/wait.png cursors/Breeze/build/x1/wayland-cursor.png cursors/Breeze/build/x1/x-cursor.png cursors/Breeze/build/x1/zoom-in.png cursors/Breeze/build/x1/zoom-out.png cursors/Breeze/build/x1_5/alias.png cursors/Breeze/build/x1_5/all-scroll.png cursors/Breeze/build/x1_5/bottom_left_corner.png cursors/Breeze/build/x1_5/bottom_right_corner.png cursors/Breeze/build/x1_5/bottom_side.png cursors/Breeze/build/x1_5/cell.png cursors/Breeze/build/x1_5/center_ptr.png cursors/Breeze/build/x1_5/col-resize.png cursors/Breeze/build/x1_5/color-picker.png cursors/Breeze/build/x1_5/context-menu.png cursors/Breeze/build/x1_5/copy.png cursors/Breeze/build/x1_5/crosshair.png cursors/Breeze/build/x1_5/default.png cursors/Breeze/build/x1_5/dnd-move.png cursors/Breeze/build/x1_5/dnd-no-drop.png cursors/Breeze/build/x1_5/down-arrow.png cursors/Breeze/build/x1_5/draft.png cursors/Breeze/build/x1_5/fleur.png cursors/Breeze/build/x1_5/help.png cursors/Breeze/build/x1_5/left-arrow.png cursors/Breeze/build/x1_5/left_side.png cursors/Breeze/build/x1_5/no-drop.png cursors/Breeze/build/x1_5/not-allowed.png cursors/Breeze/build/x1_5/openhand.png cursors/Breeze/build/x1_5/pencil.png cursors/Breeze/build/x1_5/pirate.png cursors/Breeze/build/x1_5/pointer.png cursors/Breeze/build/x1_5/progress-01.png cursors/Breeze/build/x1_5/progress-02.png cursors/Breeze/build/x1_5/progress-03.png cursors/Breeze/build/x1_5/progress-04.png cursors/Breeze/build/x1_5/progress-05.png cursors/Breeze/build/x1_5/progress-06.png cursors/Breeze/build/x1_5/progress-07.png cursors/Breeze/build/x1_5/progress-08.png cursors/Breeze/build/x1_5/progress-09.png cursors/Breeze/build/x1_5/progress-10.png cursors/Breeze/build/x1_5/progress-11.png cursors/Breeze/build/x1_5/progress-12.png cursors/Breeze/build/x1_5/progress-13.png cursors/Breeze/build/x1_5/progress-14.png cursors/Breeze/build/x1_5/progress-15.png cursors/Breeze/build/x1_5/progress-16.png cursors/Breeze/build/x1_5/progress-17.png cursors/Breeze/build/x1_5/progress-18.png cursors/Breeze/build/x1_5/progress-19.png cursors/Breeze/build/x1_5/progress-20.png cursors/Breeze/build/x1_5/progress-21.png cursors/Breeze/build/x1_5/progress-22.png cursors/Breeze/build/x1_5/progress-23.png cursors/Breeze/build/x1_5/progress.png (675 more files...) To: jamesl Cc: plasma-devel, progwolff, lesliezhai, ali-mohamed, jensreuterberg, abetts, sebas, apol