atlas-engineer / nyxt

Nyxt - the hacker's browser.
https://nyxt-browser.com/
9.82k stars 410 forks source link

Nyxt init.lisp and local modules? #1896

Closed tvraman closed 9 months ago

tvraman commented 2 years ago

Title: Nyxt init.lisp and local modules? Description: Returning to Nyxt and trying to update my speech-enable starter to see if I can make progress.

I blew away my old checkout and started afresh -- and make all and make install succeeded with no complaints.

However, Looking back at my old notes: https://github.com/tvraman/emacspeak/blob/master/nyxttalk/Readme.org#L21

I'm no longer able to map my own instructions re adding a local module and setting up a custom nyxt init.lisp to the new world of nyxt.

Could you tell me what that looks like in the present world?

aartaka commented 2 years ago

Regarding loading a local module: I guess you'll be best served by

(asdf:load-asd (nyxt-init-file "tts/tts.asd"))
(asdf:load-system :tts)

Regarding the Swank setup (it's there in your config, so you might need to update it too): see the developer README (documents/README.org in Nyxt source tree) for how to set Swank up.

tvraman commented 2 years ago

Thanks for the response.

Sadly my init.lisp doesn't appear to finish loading; it never gets to the load-system of tts --- I verified after placing the tts library in ~/quicklisp/local that (asdf:load-system :tts) works in a vanilla SBCL session.

--

Thanks,

--Raman(I Search, I Find, I Misplace, I Research) ♈ Id: kg:/m/0285kf1 🦮

jmercouris commented 2 years ago

Could you please paste your full init.lisp file?

tvraman commented 2 years ago

I should be hearing it say "testing" but it never gets there -- no error messages in the console either.

Here it is:

(ql:quickload :tts) (tts:init) ;;; (tts:init :engine "espeak" for espeak (tts:speak "Welcome To The Next In Browsers!")

;; (define-configuration buffer ;; ((default-modes (append '(emacs-mode) %slot-default)))) ;; (swank:create-server :port 4006 :dont-close t) ;; (tts:speak "Swank server started at port 4006") ;;

--

Thanks,

--Raman(I Search, I Find, I Misplace, I Research) ♈ Id: kg:/m/0285kf1 🦮

jmercouris commented 2 years ago

If you execute (ql:quickload :tts) (tts:init) (tts:speak "Hello world") in a regular SLIME REPL does it work?

jmercouris commented 2 years ago

If you must use Quicklisp in your init, you can copy the relevant lines from your SBCLRC to load it.

tvraman commented 2 years ago

John Mercouris @.***> writes:

Yes, I already confirmed this, thought I had even said it worked earlier:-)

If you execute (ql:quickload :tts) (tts:init) (tts:speak "Hello world") in a regular SLIME REPL does it work?

— You are receiving this because you authored the thread. Reply to this email directly, view it on GitHub, or unsubscribe. Triage notifications on the go with GitHub Mobile for iOS or Android.

--

Thanks,

--Raman(I Search, I Find, I Misplace, I Research) ♈ Id: kg:/m/0285kf1 🦮

tvraman commented 2 years ago

will try that next --- --

Thanks,

--Raman(I Search, I Find, I Misplace, I Research) ♈ Id: kg:/m/0285kf1 🦮

aartaka commented 2 years ago

Oh wait, the problem could be in the use of the symbols non existing on read-time! load-after-system can help there.

@tvraman, can you please try

(asdf:load-asd (nyxt-init-file "tts/tts.asd"))
(load-after-system :tts (nyxt-init-file "tts.lisp"))

in your init.lisp and then put this part or your config

(tts:init) ;;; (tts:init :engine "espeak" for espeak
(tts:speak "Welcome To The Next In Browsers!")

in a separate file (tts.lisp) in the same directory init.lisp is in?

This way, we'll exclude the problem with read-time errors, as those are most probably what breaks the startup.

tvraman commented 2 years ago

So adding the quicklisp lines to load quicklisp got my init.lisp working, I now hear speech (at least my test message)!

Any idea why nyxt 'https://google.com' ends up leaving focus in a window that approximately has a "*help no url" title?

--

Thanks,

--Raman(I Search, I Find, I Misplace, I Research) ♈ Id: kg:/m/0285kf1 🦮

aartaka commented 2 years ago

So adding the quicklisp lines to load quicklisp got my init.lisp working, I now hear speech (at least my test message)! Any idea why nyxt 'https://google.com' ends up leaving focus in a window that approximately has a "*help no url" title?

The first buffer Nyxt loads is always a help buffer. There is a small delay before Nyxt starts loading the URL you provide on the command line. If your title-speaking function is time-dependent, then help buffer being opened slightly earlier than the Google one could be the reason.