Discussion:
2 small annoyances, maybe possible future features?
Add Reply
D
2025-01-13 15:34:30 UTC
Reply
Permalink
Dear piners,

I have experienced two small annoyances. They are very small, and almost
too small to care about, but in case anyone has any ideas of how to solve
them, it would remove a bit of friction when using alpine.


1. When I search for something in well filled mailbox, and don't get a
hit, I get a message along the lines of... "search failed". The problem is
that this "locks" or freezes the keyboard for 1 second or so, so I cannot
immediately type ";" to start a new search. I must wait about 1 second for
the message to disapper, and then I can search again.

Does anyone know if there's a time out in the code, or some setting I can
change to allow me to search again instantly in case a search turns up
empty?

2. Some times when I write emails I have to attach files that are in a
directory with hundreds if not thousands of files.

2.1. Does anyone know how I can get to the end of the directory list
quickly? Today I have to scroll. It would be great if I could press G like
in vim to go to the end instantly. Also, when navigating directories, I
use the arrows, but is there some way that I can navigate by typing
letters?

If I type "A" I would go straight to the first directory or file that
starts with the letter "A".

Besides the above, nothing major to talk of. Thank you Eduardo for all
your time and energy spent on my favourite email and news client! =)

Best regards,
Daniel
Eduardo Chappa
2025-01-14 04:57:22 UTC
Reply
Permalink
Post by D
1. When I search for something in well filled mailbox, and don't get a
hit, I get a message along the lines of... "search failed". The problem
is that this "locks" or freezes the keyboard for 1 second or so, so I
cannot immediately type ";" to start a new search. I must wait about 1
second for the message to disapper, and then I can search again.
Does anyone know if there's a time out in the code, or some setting I
can change to allow me to search again instantly in case a search turns
up empty?
if you are using the select command to do a search, you will get a message
like 'select failed. no messages selected'. in this case the duration of
the display of this message is for 3 seconds.

i realize this is annoying. i sometimes wish something similar. the reason
you are seeing this is because alpine is making an effort to show you
error messages, so that you actually see them.

internal functions of alpine send messages to the screen. alpine does not
show you all the messages these functions send. for example, a function
might send the message 'opening inbox', but alpine might not show you that
message because another function sent it the message 'folder inbox opened
with 20 messages'. in that case, alpine will show you the latter one, not
the first one because it thinks you want to see that message, not the
first one.

the same happens with error messages. alpine makes sure that you see error
messages, and it enforces those 3 seconds by locking the program and not
letting you do anything else. that is what you are experiencing.
Post by D
2. Some times when I write emails I have to attach files that are in a
directory with hundreds if not thousands of files.
2.1. Does anyone know how I can get to the end of the directory list
quickly? Today I have to scroll. It would be great if I could press G
like in vim to go to the end instantly. Also, when navigating
directories, I use the arrows, but is there some way that I can navigate
by typing letters?
in the attachment screen there is a command ctrl-w hat allows you to go
places. for example, to go to the last file, you would type ctrl-w ctrl-v,
or type the name of a file to get to its location. i hope this helps.
--
Eduardo
https://alpineapp.email (web)
http://repo.or.cz/alpine.git (Git)
D
2025-01-14 18:20:14 UTC
Reply
Permalink
Post by Eduardo Chappa
1. When I search for something in well filled mailbox, and don't get a hit,
I get a message along the lines of... "search failed". The problem is that
this "locks" or freezes the keyboard for 1 second or so, so I cannot
immediately type ";" to start a new search. I must wait about 1 second for
the message to disapper, and then I can search again.
Does anyone know if there's a time out in the code, or some setting I can
change to allow me to search again instantly in case a search turns up
empty?
if you are using the select command to do a search, you will get a message
like 'select failed. no messages selected'. in this case the duration of the
display of this message is for 3 seconds.
Ah, yes exactly!
Post by Eduardo Chappa
i realize this is annoying. i sometimes wish something similar. the reason
you are seeing this is because alpine is making an effort to show you error
messages, so that you actually see them.
internal functions of alpine send messages to the screen. alpine does not
show you all the messages these functions send. for example, a function might
send the message 'opening inbox', but alpine might not show you that message
because another function sent it the message 'folder inbox opened with 20
messages'. in that case, alpine will show you the latter one, not the first
one because it thinks you want to see that message, not the first one.
the same happens with error messages. alpine makes sure that you see error
messages, and it enforces those 3 seconds by locking the program and not
letting you do anything else. that is what you are experiencing.
Ok, I see the logic. But since it is a 3 second delay, it sounds as if it should
be a simple thing for me to just change from a 3 to a 0.5 or so in the code, and
seeing the messages 0.5 seconds instead of 3 seconds, or even 0.3 or what ever,
would be much much better! =)

I'll grep through the code a bit, and if the stars align I'd expect this to be
an easy thing to change.

Thank you very much for the explanation!
Post by Eduardo Chappa
2. Some times when I write emails I have to attach files that are in a
directory with hundreds if not thousands of files.
2.1. Does anyone know how I can get to the end of the directory list
quickly? Today I have to scroll. It would be great if I could press G like
in vim to go to the end instantly. Also, when navigating directories, I use
the arrows, but is there some way that I can navigate by typing letters?
in the attachment screen there is a command ctrl-w hat allows you to go
places. for example, to go to the last file, you would type ctrl-w ctrl-v, or
type the name of a file to get to its location. i hope this helps.
Ahhhhh! What a relief! How could I _not_ see this? I'm ashamed that I had to ask
when this was so easily visible in the bar at the bottom of the screen.

Regardless, thank you Eduardo for your patience, help and work. This was a nice
itch to scratch, thank you! =)
D
2025-01-14 21:57:46 UTC
Reply
Permalink
Post by Eduardo Chappa
the same happens with error messages. alpine makes sure that you see error
messages, and it enforces those 3 seconds by locking the program and not
letting you do anything else. that is what you are experiencing.
Just to expand a bit on this, in case anyone else ever reads this in the
future...

After a bit of grepping around the source I found the following on line 121 in
the file status.c:

/*
* By convention, we have min_time equal to zero in messages which we
* think are not as important, so-called comfort messages. We have
* min_time >= 3 for messages which we think the user should see for
* sure. Some users don't like to wait so we've provided a way for them
* to live on the edge.
* status_msg_delay == -1 => min time == MIN(0, min_time)
* status_msg_delay == -2 => min time == MIN(1, min_time)
* status_msg_delay == -3 => min time == MIN(2, min_time)
* ...
*/
if(ps_global->status_msg_delay < 0)
min_time = MIN(-1 - ps_global->status_msg_delay, min_time);

so to me, the "operation" seems simple. I just modify the file like this:

*/
ps_global->status_msg_delay = -2; // My addition.
if(ps_global->status_msg_delay < 0)
min_time = MIN(-1 - ps_global->status_msg_delay, min_time);

After a recompile, any error messages will be seen for 1 second instead of 3.
0.5 seconds I do not think is possible, since it is probably an int, but I think
lowering from 3 to 1 seconds will scratch my itch, and should it not, I can
always set it to -1 to remove the error message altogether.

Only one question remains. Is it possible to set this value as a setting or in a
file somewhere so I do not have to recompile to change? Asking "the code" I
think the answer is no.
Eduardo Chappa
2025-01-15 03:15:03 UTC
Reply
Permalink
Post by D
Post by Eduardo Chappa
the same happens with error messages. alpine makes sure that you see error
messages, and it enforces those 3 seconds by locking the program and not
letting you do anything else. that is what you are experiencing.
Just to expand a bit on this, in case anyone else ever reads this in the
future...
After a bit of grepping around the source I found the following on line 121 in
/*
* By convention, we have min_time equal to zero in messages which we
* think are not as important, so-called comfort messages. We have
* min_time >= 3 for messages which we think the user should see for
* sure. Some users don't like to wait so we've provided a way for them
* to live on the edge.
* status_msg_delay == -1 => min time == MIN(0, min_time)
* status_msg_delay == -2 => min time == MIN(1, min_time)
* status_msg_delay == -3 => min time == MIN(2, min_time)
* ...
*/
if(ps_global->status_msg_delay < 0)
min_time = MIN(-1 - ps_global->status_msg_delay, min_time);
oh, this is an interesting finding. there is a variable in the .pinerc
file called status-message-delay, which when set to a negative value will
reduce the amount of time the message is displayed in the screen.

if you set this value to -2, you will get a delay of 1 second, which will
probably do what you want, and that way you do not have to rebuild alpine
to get this behavior.

i hope this helps.
--
Eduardo
https://alpineapp.email (web)
http://repo.or.cz/alpine.git (Git)
D
2025-01-15 08:54:12 UTC
Reply
Permalink
Post by D
Post by Eduardo Chappa
the same happens with error messages. alpine makes sure that you see error
messages, and it enforces those 3 seconds by locking the program and not
letting you do anything else. that is what you are experiencing.
Just to expand a bit on this, in case anyone else ever reads this in the
future...
After a bit of grepping around the source I found the following on line 121 in
/*
* By convention, we have min_time equal to zero in messages which we
* think are not as important, so-called comfort messages. We have
* min_time >= 3 for messages which we think the user should see for
* sure. Some users don't like to wait so we've provided a way for them
* to live on the edge.
* status_msg_delay == -1 => min time == MIN(0, min_time)
* status_msg_delay == -2 => min time == MIN(1, min_time)
* status_msg_delay == -3 => min time == MIN(2, min_time)
* ...
*/
if(ps_global->status_msg_delay < 0)
min_time = MIN(-1 - ps_global->status_msg_delay, min_time);
oh, this is an interesting finding. there is a variable in the .pinerc file
called status-message-delay, which when set to a negative value will reduce
the amount of time the message is displayed in the screen.
if you set this value to -2, you will get a delay of 1 second, which will
probably do what you want, and that way you do not have to rebuild alpine to
get this behavior.
i hope this helps.
I did try the compile strategy and it worked perfectly!

Thank you Eduardo, setting the value in pinerc is an even better solution,
since I would not have to make the change and recompile when I upgrade
alpine. =)

Thank you very much!

Loading...