29 Commits

Author SHA1 Message Date
b4222365c3 Bump version 2022-09-03 15:13:07 +02:00
b5e48c29f9 Put connecting/disconnected messages in status bar
Those are general status messages, and seem to belong to the bottom.
Partially motivated by the status bar being empty when disconnected.

And add a missing window invalidation.
2022-09-03 15:04:30 +02:00
eaa19be1c8 Fix Clang build 2022-09-03 14:39:47 +02:00
dad95ef444 X11: render partially visible list items 2022-09-03 13:23:07 +02:00
7e74d1a80a X11: make the scrollbar span the full height 2022-09-03 13:02:47 +02:00
8529f24a46 Bind Tab and S-Tab to tab switching 2022-08-27 17:35:17 +02:00
190e813d49 X11: fix Ctrl+Space 2022-08-27 17:32:12 +02:00
9af74259d2 Add debugging facilities for input events 2022-08-27 17:20:06 +02:00
9a996c8440 Adjust the "action unavailable" message 2022-08-25 07:45:49 +02:00
a9d4f86493 Add an action to describe items
And improve the display of messages, separating any prefix out.
2022-08-25 07:42:10 +02:00
172ceffa9e X11: support copying text to CLIPBOARD
Use the right mouse button.
2022-08-25 06:14:08 +02:00
6dad74f3c9 Enable configuring spectrum analyzer FPS 2022-08-25 02:31:32 +02:00
b196ef4f08 X11: mildly optimize drawing
There is no real performance impact on modern systems.
2022-08-25 02:16:36 +02:00
d82be07807 X11: handle Shift+clicks in the list 2022-08-25 00:25:03 +02:00
2d219f1a4b Rework mouse event processing
X11's triple-click bug is gone, and we may pass modifier state.
2022-08-25 00:10:17 +02:00
a77d872e7f Try to stuff more things in the status bar 2022-08-24 23:21:16 +02:00
179e0a123b X11: ring the bell as well, when appropriate 2022-08-24 09:35:28 +02:00
da14bdbd39 Improve help tab item choice error messages 2022-08-24 09:05:28 +02:00
24e57872d8 Hide messages when interacting with the editor 2022-08-24 09:03:40 +02:00
a20e4c74d8 Implement mouse drags on the gauge and scrollbar 2022-08-24 08:23:54 +02:00
d33c17b888 Click to close messages
While not ideal, it is at least some way to discard them.
2022-08-24 07:41:03 +02:00
6033f6a869 Notify when actions can't be taken 2022-08-24 07:26:47 +02:00
88e86724c3 Always show messages to the user 2022-08-24 07:25:21 +02:00
92c1bf783f Build with AsciiDoc as well as Asciidoctor 2022-08-23 22:32:45 +02:00
435485d145 X11: remark that triple clicks are mishandled 2022-08-23 12:59:59 +02:00
d876bbfcd3 Update README and the screenshot 2022-08-23 11:06:50 +02:00
1c37b15253 X11: improve rendering of denormalized text
Xft is dumb.
2022-08-23 10:35:28 +02:00
2803a8153b X11: clean up after Xft on exit 2022-08-23 09:00:20 +02:00
f1ab0e2d8a X11: use input methods, abandon xkbcommon
And fix a redundant XCreatePixmap() call leaking resources.
2022-08-23 08:42:38 +02:00
6 changed files with 680 additions and 271 deletions

View File

@@ -1,5 +1,5 @@
cmake_minimum_required (VERSION 3.0)
project (nncmpp VERSION 1.2.0 LANGUAGES C)
project (nncmpp VERSION 2.0.0 LANGUAGES C)
# Moar warnings
if ("${CMAKE_C_COMPILER_ID}" MATCHES "GNU" OR CMAKE_COMPILER_IS_GNUCC)
@@ -58,7 +58,7 @@ if (WITH_PULSE)
list (APPEND extra_libraries ${libpulse_LIBRARIES})
endif ()
pkg_check_modules (x11 x11 xkbcommon xrender xft fontconfig)
pkg_check_modules (x11 x11 xrender xft fontconfig)
option (WITH_X11 "Use FFTW to enable spectrum visualisation" ${x11_FOUND})
if (WITH_X11)
if (NOT x11_FOUND)
@@ -128,20 +128,31 @@ install (DIRECTORY contrib DESTINATION ${CMAKE_INSTALL_DATADIR}/${PROJECT_NAME})
# Generate documentation from text markup
find_program (ASCIIDOCTOR_EXECUTABLE asciidoctor)
if (NOT ASCIIDOCTOR_EXECUTABLE)
message (FATAL_ERROR "asciidoctor not found")
find_program (A2X_EXECUTABLE a2x)
if (NOT ASCIIDOCTOR_EXECUTABLE AND NOT A2X_EXECUTABLE)
message (FATAL_ERROR "Neither asciidoctor nor a2x were found")
endif ()
foreach (page ${PROJECT_NAME})
set (page_output "${PROJECT_BINARY_DIR}/${page}.1")
list (APPEND project_MAN_PAGES "${page_output}")
add_custom_command (OUTPUT ${page_output}
COMMAND ${ASCIIDOCTOR_EXECUTABLE} -b manpage
-a release-version=${PROJECT_VERSION}
"${PROJECT_SOURCE_DIR}/${page}.adoc"
-o "${page_output}"
DEPENDS ${page}.adoc
COMMENT "Generating man page for ${page}" VERBATIM)
if (ASCIIDOCTOR_EXECUTABLE)
add_custom_command (OUTPUT ${page_output}
COMMAND ${ASCIIDOCTOR_EXECUTABLE} -b manpage
-a release-version=${PROJECT_VERSION}
-o "${page_output}"
"${PROJECT_SOURCE_DIR}/${page}.adoc"
DEPENDS ${page}.adoc
COMMENT "Generating man page for ${page}" VERBATIM)
elseif (A2X_EXECUTABLE)
add_custom_command (OUTPUT ${page_output}
COMMAND ${A2X_EXECUTABLE} --doctype manpage --format manpage
-a release-version=${PROJECT_VERSION}
-D "${PROJECT_BINARY_DIR}"
"${PROJECT_SOURCE_DIR}/${page}.adoc"
DEPENDS ${page}.adoc
COMMENT "Generating man page for ${page}" VERBATIM)
endif ()
endforeach ()
add_custom_target (docs ALL DEPENDS ${project_MAN_PAGES})

12
NEWS
View File

@@ -1,9 +1,19 @@
Unreleased
2.0.0 (2022-09-03)
* Added an optional X11 user interface
* Implemented mouse drags on the elapsed time gauge and the scrollbar
* Added Tab and S-Tab bindings to iterate tabs
* Added a "z" binding to center the view on the selected item
* Added a "?" binding to describe items in various tabs
* Made it possible to adjust the spectrum analyzer's FPS limit
* Moved "Disconnected" and "Connecting..." messages to the status bar
* Fixed possibility of connection timeouts with PulseAudio integration

View File

@@ -37,11 +37,10 @@ The rest of this README will concern itself with externalities.
Building
--------
Build dependencies: CMake, pkg-config, asciidoctor,
Build dependencies: CMake, pkg-config, asciidoctor or asciidoc,
liberty (included), termo (included) +
Runtime dependencies: ncursesw, libunistring, cURL,
fftw3 (optional), libpulse (optional)
Optional X11 dependencies: x11, xkbcommon, xft
Runtime dependencies: ncursesw, libunistring, cURL +
Optional runtime dependencies: fftw3, libpulse, x11, xft
$ git clone --recursive https://git.janouch.name/p/nncmpp.git
$ mkdir nncmpp/build

View File

@@ -36,6 +36,7 @@ PULSE_MUTE, Toggle PulseAudio sink mute
CHOOSE, Choose item
DELETE, Delete item
DESCRIBE, Describe item
UP, Go up a level
MULTISELECT, Toggle multiselect
INCREMENTAL_SEARCH, Incremental search

898
nncmpp.c

File diff suppressed because it is too large Load Diff

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.6 KiB

After

Width:  |  Height:  |  Size: 35 KiB