Commit Graph

224 Commits

Author SHA1 Message Date
Přemysl Eric Janouch 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
Přemysl Eric Janouch 172ceffa9e
X11: support copying text to CLIPBOARD
Use the right mouse button.
2022-08-25 06:14:08 +02:00
Přemysl Eric Janouch 6dad74f3c9
Enable configuring spectrum analyzer FPS 2022-08-25 02:31:32 +02:00
Přemysl Eric Janouch b196ef4f08
X11: mildly optimize drawing
There is no real performance impact on modern systems.
2022-08-25 02:16:36 +02:00
Přemysl Eric Janouch d82be07807
X11: handle Shift+clicks in the list 2022-08-25 00:25:03 +02:00
Přemysl Eric Janouch 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
Přemysl Eric Janouch a77d872e7f
Try to stuff more things in the status bar 2022-08-24 23:21:16 +02:00
Přemysl Eric Janouch 179e0a123b
X11: ring the bell as well, when appropriate 2022-08-24 09:35:28 +02:00
Přemysl Eric Janouch da14bdbd39
Improve help tab item choice error messages 2022-08-24 09:05:28 +02:00
Přemysl Eric Janouch 24e57872d8
Hide messages when interacting with the editor 2022-08-24 09:03:40 +02:00
Přemysl Eric Janouch a20e4c74d8
Implement mouse drags on the gauge and scrollbar 2022-08-24 08:23:54 +02:00
Přemysl Eric Janouch 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
Přemysl Eric Janouch 6033f6a869
Notify when actions can't be taken 2022-08-24 07:26:47 +02:00
Přemysl Eric Janouch 88e86724c3
Always show messages to the user 2022-08-24 07:25:21 +02:00
Přemysl Eric Janouch 435485d145
X11: remark that triple clicks are mishandled 2022-08-23 12:59:59 +02:00
Přemysl Eric Janouch 1c37b15253
X11: improve rendering of denormalized text
Xft is dumb.
2022-08-23 10:35:28 +02:00
Přemysl Eric Janouch 2803a8153b
X11: clean up after Xft on exit 2022-08-23 09:00:20 +02:00
Přemysl Eric Janouch f1ab0e2d8a
X11: use input methods, abandon xkbcommon
And fix a redundant XCreatePixmap() call leaking resources.
2022-08-23 08:42:38 +02:00
Přemysl Eric Janouch 830a744a11
Add an X11 user interface
This is meant to exactly mimic the terminal UI, just without
the restriction to ugly monospace fonts.

The Curses implementation has been reworked, and may have become
more computationally expensive.  In general, though, the codebase
has been significantly cleaned up.
2022-08-23 02:50:24 +02:00
Přemysl Eric Janouch 8260842aef
Fix event processing with PulseAudio integration 2022-08-19 23:48:33 +02:00
Přemysl Eric Janouch fe017b4daa
Mark an invalid assumption 2022-08-18 19:56:47 +02:00
Přemysl Eric Janouch f3c4cec24a
Add and bind an action to center the cursor
"z" stands for VIM's "zz".
2021-12-23 20:36:00 +01:00
Přemysl Eric Janouch 410136a647
Fix up coding style inconsistency 2021-12-21 06:26:53 +01:00
Přemysl Eric Janouch 48482ef2e5
Make incremental search more useful
Make it unanchored, as well as case-insensitive.
2021-12-21 05:46:22 +01:00
Přemysl Eric Janouch a14a907b18
Indicate that a stream download is in progress 2021-12-08 18:58:03 +01:00
Přemysl Eric Janouch 333049de01
Do not run cURL fully synchronously
The improvement is very minor in character.
2021-12-08 18:23:30 +01:00
Přemysl Eric Janouch 4e3596db35
Add rudimentary incremental search facility 2021-12-08 17:23:25 +01:00
Přemysl Eric Janouch 5aa07fd8af
Clean up mpd_process_info() better 2021-12-07 20:38:02 +01:00
Přemysl Eric Janouch 2060da4a8e
Do not jump to beginning after unqueueing
Instead, assume that the whole previously selected range
has been removed, and try to go after or before it accordingly.
2021-12-07 20:34:32 +01:00
Přemysl Eric Janouch f5b5cec340
Clean up unreadable code 2021-12-07 20:10:35 +01:00
Přemysl Eric Janouch 227b8e0fa2
Do not show both volumes if unnecessary
Also, make it apparent which value comes from where.
2021-11-16 04:48:52 +01:00
Přemysl Eric Janouch 32203f8117
Fix the comment for settings.pulseaudio 2021-11-08 07:23:08 +01:00
Přemysl Eric Janouch 4598c45d2f
Generate actions from a text file
Mostly because I wanted to nest preprocessing.

This makes the build more complex and slightly less portable,
but the code itself is much cleaner.
2021-11-08 06:07:04 +01:00
Přemysl Eric Janouch 7165a8eb02
Add ability to control PulseAudio volume
I know, son, it might be hard to accept,
but you're imported.  Your true parents are wmstatus
and paswitch, from the desktop-tools family.

Also, fix unnecessary linking of optional dependencies.
2021-11-07 23:07:55 +01:00
Přemysl Eric Janouch 87b57bb24c
Add a comment about the music directory 2021-11-07 13:29:13 +01:00
Přemysl Eric Janouch 6de940fe96
Do not beep on focus changes 2021-11-04 13:24:15 +01:00
Přemysl Eric Janouch 6bd8c1db2f
CMakeLists.txt: fix macOS build 2021-11-02 17:17:32 +01:00
Přemysl Eric Janouch bd0ee66c19
Add clang-format configuration 2021-10-30 03:02:00 +02:00
Přemysl Eric Janouch 53fbb3dec1
Fix the line editor/spectrum analyser interaction
The updater assumed the terminal cursor was invisible.
2021-10-21 09:13:07 +02:00
Přemysl Eric Janouch 267598643a
Add program arguments to MPD's current playlist
I was tired of using `mpv --no-video`, this is a bit better.

It's all rather quirky, but very little code is involved.

I've added a few related TODO entries.
2021-09-07 06:35:24 +02:00
Přemysl Eric Janouch fba1210e9f
Clean up connection initialisation
Also, do not set up the spectrum visualiser before a password is sent.

It would look a bit weird to have it run but display "Disconnected",
even though technically, it would probably work.
2021-09-06 21:48:27 +02:00
Přemysl Eric Janouch 30777e8fd3
Improve terminal initialisation
Don't just abort() on failures, print a proper error message.

Also, set up ncurses as late as possible.  This should be alright wrt.
signal handlers according to ncurses code, as well as XSI:

> Curses implementations may provide for special handling of
> the SIGINT, SIGQUIT and SIGTSTP signals if their disposition
> is SIG_DFL at the time initscr is called ...

termo blocks job control, so SIGTSTP is not a concern at all.
2021-09-06 21:30:03 +02:00
Přemysl Eric Janouch 353174ee3c
Spetrum analyser: expand my favourite comment 2021-07-09 20:08:53 +02:00
Přemysl Eric Janouch 2d641d087f
Spectrum analyser: add some useful comments 2021-07-09 06:25:48 +02:00
Přemysl Eric Janouch 20c8385f2e
Spectrum analyser: optimise the x:16:2 case
nncmpp CPU usage went from 2 to 1.7 percent, a 15% improvement.

Sort of worth it, given that it's a constant load.

The assembly certainly looks nicer.
2021-07-08 19:14:26 +02:00
Přemysl Eric Janouch fa4443a3ce
Rectify an obsolete comment 2021-07-08 04:33:03 +02:00
Přemysl Eric Janouch 14ba637d4b
Expand the last comment once again 2021-07-08 04:32:53 +02:00
Přemysl Eric Janouch 66bc3f1c2c
Expand the comment on spectrum frequency filtering 2021-07-05 23:42:51 +02:00
Přemysl Eric Janouch 0646cea126
Silence a compiler warning
The statement can be eliminated, then it suggests braces.
2021-07-05 01:26:16 +02:00
Přemysl Eric Janouch a439a56ee9
Add an optional spectrum visualiser
This is really more of a demo.  It's doable, just rather ugly.

It would deserve some further tuning, if anyone cared enough.
2021-07-05 01:10:46 +02:00