Issue with eldoc documentation not being read
by Isaac Leonard
Recently I've been having some issues with eldoc information not being
read when using lsp.
If anyone else has had this issue heres the code I used to fix it:
(defun emacspeak-speak-eldoc-custom (docs interactive)
"Speak eldoc."
(cl-declare (special eldoc--doc-buffer-docs eldoc--doc-buffer))
(when (and eldoc--doc-buffer (buffer-live-p eldoc--doc-buffer))
(with-current-buffer eldoc--doc-buffer
(unless (equal docs eldoc--doc-buffer-docs)
(emacspeak-auditory-icon 'doc))
(dtk-speak (buffer-string)) )))
(setq eldoc-display-functions '(eldoc-display-in-buffer emacspeak-speak-eldoc-custom ))
Note that this is not full proof and can read things when you might not
want to and it doesn't fix the actual problem but it should work good enough.
--
Best regards Isaac
1 month
Plugin Recommendations Thread (2023 Edition)
by Robert Melton
Hey All!
As I start to really get comfortable with Emacs and Emacspeak,
I fear I made the amateur mistake of installing too many plugins!
So I am reaching out to the community for amazing plugins that
work great with both Emacspeak and Emacs, bonus points for
being light and minimal.
My "must haves" so far:
Swiper: this is the plugin I use a thousand times a day to jump to
lines in a file based on fuzzy finding.
Magit: still learning it but amazingly powerful, still haven't mastered
reading the diffs, but that is probably just a reading the docs issue.
I need to find or create a way to jump to added lines and removed
lines quickly.
Deadgrep: I use this a lot to jump around my codebases, it seems
well tweaked for Emacspeak at this point I am very comfortable in
it.
Elfeed: I am reading RSS feeds again and loving it because of this
plugin, if I could only find a way to sync the current status between
my desktop and laptop easily.
Outside of those 4 I got a bunch of lsp stuff and language specific
stuff but nothing else I am in love with, honestly the LSP stuff as I
mentioned before tends to overwhelm and annoying me with docs
popping up everywhere and making me completely lost.
Additionally I installed and configured dumb-jump and I love the
idea of it -- but have yet to see it actually... work, so, yeah.
Anyway, what are the rockstar plugins you folks use and
recommend?
--
Robert "robertmeta" Melton
1 month
Key binding to a macro
by Jeff Dittel
Hey all,
I am trying to save a macro and its’ key binding to a file for a later load-file command. My understanding is you do a C-u M-x insert-kid-macro <macro-name>. But, this only saves the macro and not the key binding. What am I missing?
Thanks,
Jeff
1 month, 1 week
speech rate adjustment
by taro.kuriyama@gmail.com
I re-installed emacs / emacspeak on a fresh Mac and found that the speech rate config doesn't seem to work. System: MacOS Venture; emacs 28.2 / emacspeak 57.
I've always had this speech rate in my emacs config: `(dtk-set-rate 350 t)`
Since somehow that line isn't working, I also tried adjusting these global rate variables in `emacspeak/servers/mac`:
# global speech rate
ttsState['speechRate'] = 350
ttsState['charFactor'] = 1.8
Modifying those two lines also seems to have no effect. Any suggestions on further troubleshooting?
Thanks!
Taro
1 month, 1 week
Mac server python version requirements, go version and intro
by Robert Melton
Hey all!
A quick introduction as I am new here. Over the last year or so I lost the much of my vision. I am a developer and Emacspeak has been absolutely life saving for me. It let me continue to code. One of my major issues was getting Emacspeak up and running on modern MacOS when I was starting. I wrote https://robertmelton.com/posts/install-emacspeak-on-modern-macs/ to hopefully help others. I came to Emacs only for Emacspeak, as I was a huge vim community member (I ran the IRC channel and moderated the reddit). My biggest problem now is I still hit escape constantly and get the ESC-<foo> is not bound!
With that in mind, I am working to modernize the mac server. I am wondering how the community feels about me requiring Python 3.10 to be installed? Modern python has brought a lot of important tools for dealing with IO (async/await) and I believe using 3.10 will allow for massively improved performance of the mac server. Presently the server is both laggy and a bit buggy, hopefully no longer will mangle and distort sound but still needs massive updates.
Alternatively, I have started work on a server in Go (just a start here: https://github.com/robertmeta/fastmac) which will be much more performant but will have a more complex build chain and add Go and some libraries as requirements to build it. An upside of Go is we can share completely stand alone pre-built binaries that work on amd64 and m1/m2 chips. Another benefit of using Go is it could easily grow into support Windows and Linux as the supporting libraries I am looking at using work on all three platforms. would just need to customize the links out to TTS engines... which isn't too bad if they are in the C family. Is a complex build chain for servers a problem?
--
Robert "robertmeta" Melton
1 month, 1 week
Me vs. Mac Audio -- The Saga So Far...
by Robert Melton
TL;DR: This post just basically says what I have learned so far, and where I am at
in debugging the robotic and distorted audio issues that can occur on MacOS with
heavy use. No solutions are below, so if you don't use Mac and don't care about
this issue -- skip it.
----
What is the issue?
With extended heavy and rapid use of Emacs-Plus (27, 28, 29 or 30) or Emacs-Mac
on modern MacOS (12+) with any modern Emacspeak (I use master, but this has
been happening for awhile) the Mac audio subsystem will become garbled, robotic
and distorted. This does not impact only sounds from Emacspeak but all sounds,
including Spotify, other apps, everything. When you exit emacs this completely is
remedied and stuff normalizes. Yet, this appears to have a trailing impact in some
way as once it happens it will very quickly happen if you reopen Emacs.
----
What have you looked at as the cause?
At first, myself and other users expected it might have to do with 3rd party audio
modifications on MacOS, and while this does make it more pronounced, it is not
the cause, I have confirmed on a few complete install on an M1 Mac Mini.
The next idea was that it was a specific version of Emacs, specifically Emacs-Mac.
Again, this was a contributing factor to the problem, but not the cause. I produced
it with a fresh built Emacs-Plus 28.2.
So, then I thought it might be the python mac server, so I wrote a new one in Go
to see if this was the case, and while building (and using) my new server, the bug
came up again. So it isn't the python mac server. I might complete the server, it is
just really getting started at https://github.com/robertmeta/fastmac -- I still want a
faster more easily concurrent server for Mac that has less requirements to install.
So then I thought it might be thrashing the audio API on mac via the sounds
playback in the mac server (which applies to tones as well, patch incoming soon)
and while this was an improvement and again might have added to the mean time
between failures -- it was again not the core issue.
By pure luck, as I was doing this stuff over the last few weeks I started using and
loving Ivy and Swiper. This was great timing, as I can consistently bug out my
sound with Ivy and Swiper witha couple tries. It appears to be related to sounds
played during typing / using backsapce in like swiper for example. With enough
overlapping / concurrent noises the sound gets blown out.
So with a lot more digging, I confirmed that this is completely unrelated to the
python mac server! With audio icons disabled this bug is completely gone, does
not occur in any way that I can cause.
----
So where are we now?
I am in the process of understanding how the audio icons work and how they get
attached to events and where the code that actually interfaces with the MacOS
audio system lives. I am new to Emacs and Lisp so I am slower than the average
bear at finding the right place, but slowly but surely making progress... any tips and
pointers greatly appreciated.
----
Anything you specifically didn't try yet?
I did not try with the base Emacs package that can be installed with brew. It feels
very far from working with my config and setup so I have not dove in too far to
testing it, This is indeed worth testing and I will probably attempt it this weekend.
--
Robert "robertmeta" Melton
1 month, 2 weeks
Mac question
by Bart Bunting
Hi everyone,
I sent this yesterday, but I don’t think it made it to the list. Apologies
if it turns up twice.
I’ve finally got a new MacBook.
I am seeing something similar to that described by Greg and victor in
December.
I have found anything later than emacspeak 56 is throwing an error
essentially preventing the mini buffer from working (see below)
Tried to do a. Git bisect but hit an issue where there was other bugs
preventing the compilation from completing and my git bisect foo is
currently insufficient to know how to work around this. I’ll do more
research into how to deal with that sort of problem, presumably there is an
option to tell git bisect to ignore that version.
Currently don’t have the actual error as it is proving hard to get.
It’s something about error in mini buffer and “back to top level”
I’ll dig deeper but was wondering if anyone else is hitting this and has a
workaround and or is anyone using emacspeak 57 on Mac and not seeing this??
Kind regards
Bart
1 month, 2 weeks
List policy clarification - unsubscribed addresses and posts
by Greg Priest-Dorman
Hi Folks,
We do not post messages from unsubscribed addresses.
If you are subscribed to the list but inadvertently send a post from some
other address, the list will treat the message as a post submission from an
unsubscribed address. It sends you a message saying the message is being
held for moderator approval.
Unfortunately, the template does not allow us to change the subject line of
the autoreply in a way that will not get overwritten. I agree that the
subject implies your message may get posted as is. In practice that is not
what happens.
I have recently changed the body of that auto reply to state that if you
are subscribed from another address you should re-submit your message from
the subscribed address. Hopefully that will help prevent any confusion
the subject line introduces.
Why this policy/rule?
A few reasons.
1 - Faster posting. In my experience people want their postes to go out
right away. Once you get the auto-reply you can repost from the correct
address and your post will go out. This is faster than waiting for Tim or I
to notice there is a possibly legitimate post waiting in with all the spam,
checking to see if it may be a list member posting from an
alternate address, checking to see if they have already resent it from
their correct address, and only then approve it to be posted.
2 - Proliferation of your addresses on the web. If we were to post that
message then the alternate address of yours is now up on the web in the
archive. Many of you have chosen a particular address for the list and I
don't like the idea that I might "out" some more private or work specific
alternate address of yours just because you made a mistake when posting.
3 - Because there is a right answer. If you want or need to post from
multiple addresses but only want to receive list mail from one of them, you
can do that from the web interface. This would involve subscribing to the
list and creating a password for the new email address. Once done you can
customize delivery options for that address. If doing this is the right
choice for you but you have problems with the web interface then please
write to me off list and I am glad to help you get that set up.
Thanks for understanding and for being part of the emacspeak community,
-Greg
1 month, 2 weeks
Setting voice-lock and voice-personality to monotone.
by Pawel Urbanski
Hi Everyone,
After learning a bit more about Emacspeak and its mechanism, asking
questions should be more precise...
Since my Lisp skills are almost non-existentcan someone share a snippet how
ot set hte voice-lock or personality to monotone for all cases? I am file
with changing all hte required declarations, but need just a single one to
get started with.
While hte pitch changes are a neat idea they are too frequent and too
significant for me. I will definitely explore how to take advantage of
htem when navigating for example word by word.
I'm currently in the classic chicken and egg situation, where knowing Lisp
and Emacs would be good to use Emacs which would help out in the former
case.
All the best,
Pawel
1 month, 2 weeks
Re: speech rate adjustment
by Robert Melton
Hey Taro!
I can confirm that with "mac" as your server the dtk-set-rate should still work.
The settings you put into the python will be overwritten by what emacspeak
sends over the stdout pipe to the mac server.
Is it possible there is another version of the mac server somewhere? You
can quickly confirm this by changing the startup phrase on the first line of
defe main(): in the mac server (around line 820).
--
Robert "robertmeta" Melton
1 month, 3 weeks