TeX-Live / tlcockpit

GUI for tlmgr written in Scala
GNU General Public License v3.0
27 stars 2 forks source link

How to search or filter packages? #4

Closed priyadarshan closed 6 years ago

priyadarshan commented 6 years ago

Hello, Is there a way to search or filter for packages?

For example, typing micro would bring up any package with the string "micro" either in package name or package description, that is:

avremu
microtype
microtype-de

If such feature is not there yet, would it be possible to add it at some future stage?

That would offer a tremendous discoverability feature to tlcockpit. Thank you.

norbusan commented 6 years ago

Good idea, but not implemented by now. I will see what can be done. First i want to get more of the core functionality done (but that is progressingl nicely).

norbusan commented 6 years ago

Implemented now, will be in the next released version

priyadarshan commented 6 years ago

Thank you so much for considering this, and thank you for the superspeed. Very much obliged.

norbusan commented 6 years ago

Look at the updated screenshots on the front page for how it looks. If you want to try it out, you need latest tlcritical tlmgr for now, and the jar which I updated just now.

priyadarshan commented 6 years ago

Hello,

I have copied the latest jar file from GitHub to where the previous `tlcockpit was:

/usr/local/texlive/2017/texmf-dist/scripts/tlcockpit/tlcockpit.jar

Then I launched it the same way, and I got:

tlcockpit
Exception in thread "JavaFX Application Thread" spray.json.JsonParser$ParsingException: Unexpected character 'E' at input index 0 (line 1, position 1), expected JSON Value:
ERROR unsupported arguments
^

    at spray.json.JsonParser.fail(JsonParser.scala:213)
    at spray.json.JsonParser.value(JsonParser.scala:64)
    at spray.json.JsonParser.parseJsValue(JsonParser.scala:43)
    at spray.json.JsonParser$.apply(JsonParser.scala:28)
    at spray.json.PimpedString.parseJson(package.scala:45)
    at TLCockpit.ApplicationMain$.$anonfun$load_tlpdb_update_pkgs$1(ApplicationMain.scala:631)
    at TLCockpit.ApplicationMain$.$anonfun$load_tlpdb_update_pkgs$1$adapted(ApplicationMain.scala:630)
    at TLCockpit.ApplicationMain$.$anonfun$tlmgr_run_one_cmd$2(ApplicationMain.scala:1257)
    at scala.runtime.java8.JFunction0$mcV$sp.apply(JFunction0$mcV$sp.java:12)
    at scalafx.application.Platform$$anon$1.run(Platform.scala:78)
    at com.sun.javafx.application.PlatformImpl.lambda$null$5(PlatformImpl.java:295)
    at java.security.AccessController.doPrivileged(Native Method)
    at com.sun.javafx.application.PlatformImpl.lambda$runLater$6(PlatformImpl.java:294)
    at com.sun.glass.ui.InvokeLaterDispatcher$Future.run(InvokeLaterDispatcher.java:95)
    at com.sun.glass.ui.gtk.GtkApplication._runLoop(Native Method)
    at com.sun.glass.ui.gtk.GtkApplication.lambda$null$5(GtkApplication.java:139)
    at java.lang.Thread.run(Thread.java:748)
Exception in thread "JavaFX Application Thread" java.lang.ArrayIndexOutOfBoundsException: 1
    at TLCockpit.ApplicationMain$.parse_one_update_line(ApplicationMain.scala:642)
    at TLCockpit.ApplicationMain$.$anonfun$update_upds_list$3(ApplicationMain.scala:690)
    at scala.collection.TraversableLike.$anonfun$map$1(TraversableLike.scala:234)
    at scala.collection.IndexedSeqOptimized.foreach(IndexedSeqOptimized.scala:32)
    at scala.collection.IndexedSeqOptimized.foreach$(IndexedSeqOptimized.scala:29)
    at scala.collection.mutable.ArrayOps$ofRef.foreach(ArrayOps.scala:191)
    at scala.collection.TraversableLike.map(TraversableLike.scala:234)
    at scala.collection.TraversableLike.map$(TraversableLike.scala:227)
    at scala.collection.mutable.ArrayOps$ofRef.map(ArrayOps.scala:191)
    at TLCockpit.ApplicationMain$.$anonfun$update_upds_list$1(ApplicationMain.scala:689)
    at TLCockpit.ApplicationMain$.$anonfun$update_upds_list$1$adapted(ApplicationMain.scala:678)
    at TLCockpit.ApplicationMain$.$anonfun$tlmgr_run_one_cmd$2(ApplicationMain.scala:1257)
    at scala.runtime.java8.JFunction0$mcV$sp.apply(JFunction0$mcV$sp.java:12)
    at scalafx.application.Platform$$anon$1.run(Platform.scala:78)
    at com.sun.javafx.application.PlatformImpl.lambda$null$5(PlatformImpl.java:295)
    at java.security.AccessController.doPrivileged(Native Method)
    at com.sun.javafx.application.PlatformImpl.lambda$runLater$6(PlatformImpl.java:294)
    at com.sun.glass.ui.InvokeLaterDispatcher$Future.run(InvokeLaterDispatcher.java:95)
    at com.sun.glass.ui.gtk.GtkApplication._runLoop(Native Method)
    at com.sun.glass.ui.gtk.GtkApplication.lambda$null$5(GtkApplication.java:139)
    at java.lang.Thread.run(Thread.java:748)
Exception in thread "JavaFX Application Thread" spray.json.JsonParser$ParsingException: Unexpected character 'E' at input index 0 (line 1, position 1), expected JSON Value:
ERROR unsupported arguments
^

    at spray.json.JsonParser.fail(JsonParser.scala:213)
    at spray.json.JsonParser.value(JsonParser.scala:64)
    at spray.json.JsonParser.parseJsValue(JsonParser.scala:43)
    at spray.json.JsonParser$.apply(JsonParser.scala:28)
    at spray.json.PimpedString.parseJson(package.scala:45)
    at TLCockpit.ApplicationMain$.$anonfun$update_bkps_list$1(ApplicationMain.scala:575)
    at TLCockpit.ApplicationMain$.$anonfun$update_bkps_list$1$adapted(ApplicationMain.scala:574)
    at TLCockpit.ApplicationMain$.$anonfun$tlmgr_run_one_cmd$2(ApplicationMain.scala:1257)
    at scala.runtime.java8.JFunction0$mcV$sp.apply(JFunction0$mcV$sp.java:12)
    at scalafx.application.Platform$$anon$1.run(Platform.scala:78)
    at com.sun.javafx.application.PlatformImpl.lambda$null$5(PlatformImpl.java:295)
    at java.security.AccessController.doPrivileged(Native Method)
    at com.sun.javafx.application.PlatformImpl.lambda$runLater$6(PlatformImpl.java:294)
    at com.sun.glass.ui.InvokeLaterDispatcher$Future.run(InvokeLaterDispatcher.java:95)
    at com.sun.glass.ui.gtk.GtkApplication._runLoop(Native Method)
    at com.sun.glass.ui.gtk.GtkApplication.lambda$null$5(GtkApplication.java:139)
    at java.lang.Thread.run(Thread.java:748)
Exception in thread "Thread-7" java.lang.InterruptedException
    at java.lang.Object.wait(Native Method)
    at java.lang.Object.wait(Object.java:502)
    at scala.concurrent.SyncVar.put(SyncVar.scala:101)
    at TLCockpit.ApplicationMain$.$anonfun$initialize_tlmgr$2(ApplicationMain.scala:1165)
    at TLCockpit.ApplicationMain$.$anonfun$initialize_tlmgr$2$adapted(ApplicationMain.scala:1165)
    at TeXLive.TlmgrProcess.outputFn(TlmgrProcess.scala:102)
    at TeXLive.TlmgrProcess.$anonfun$start_process$2(TlmgrProcess.scala:44)
    at TeXLive.TlmgrProcess.$anonfun$start_process$2$adapted(TlmgrProcess.scala:44)
    at scala.sys.process.ProcessBuilderImpl$Simple.$anonfun$run$3(ProcessBuilderImpl.scala:76)
    at scala.sys.process.ProcessImpl$Spawn$$anon$1.run(ProcessImpl.scala:23)
Exception in thread "Thread-8" java.lang.InterruptedException
    at java.lang.Object.wait(Native Method)
    at java.lang.Object.wait(Object.java:502)
    at scala.concurrent.SyncVar.put(SyncVar.scala:101)
    at TLCockpit.ApplicationMain$.$anonfun$initialize_tlmgr$2(ApplicationMain.scala:1165)
    at TLCockpit.ApplicationMain$.$anonfun$initialize_tlmgr$2$adapted(ApplicationMain.scala:1165)
    at TeXLive.TlmgrProcess.outputFn(TlmgrProcess.scala:102)
    at TeXLive.TlmgrProcess.$anonfun$start_process$3(TlmgrProcess.scala:44)
    at TeXLive.TlmgrProcess.$anonfun$start_process$3$adapted(TlmgrProcess.scala:44)
    at scala.sys.process.ProcessBuilderImpl$Simple.$anonfun$run$4(ProcessBuilderImpl.scala:79)
    at scala.sys.process.ProcessImpl$Spawn$$anon$1.run(ProcessImpl.scala:23)

Windows was like this:

tlcockpit

Then, I removed the newer version, and put back the current version, and it ran fine.

Is there some settings I need to activate to make the new version run?

norbusan commented 6 years ago

I told you ... you need the latest tlmgr from tlcritical, see https://www.tug.org/texlive/tlmgr.html

norbusan commented 6 years ago

And even that will give problems, because you need tomorrows tlmgr ;-) I fixed some problems again.

priyadarshan commented 6 years ago

Yes, I did do

sudo tlmgr update --self                                                                                                                                                   
Password:
tlmgr: package repository http://ctan.mirror.garr.it/mirrors/CTAN/systems/texlive/tlnet (verified)
tlmgr: saving backups to /usr/local/texlive/2017/tlpkg/backups
tlmgr: no self-updates for tlmgr available.

But I am hesitant to use the Test versions: tlcritical, pretests, becasue I am in the middle of a big LuaLaTeX project. But I can try on a different machine with tomorrow's version.

Thank you, and thank you for your patience! TLCockpit simply rocks.

norbusan commented 6 years ago

latest tlnet does not suffice, tlcritical is necessary. But we will push out to tlnet in the next week I guess.

priyadarshan commented 6 years ago

I could not wait, that feature is so useful to me :) I did:

sudo tlmgr --repository=ftp://tug.org/texlive/tlcritical update --self                                                                                                     
Password:
tlmgr: package repository ftp://tug.org/texlive/tlcritical (verified)
tlmgr: saving backups to /usr/local/texlive/2017/tlpkg/backups
[1/1, ??:??/??:??] update: texlive.infra [371k] (45305 -> 45806) ... done
running mktexlsr ...
done running mktexlsr.
running mtxrun --generate ...
done running mtxrun --generate.
tlmgr: package log updated: /usr/local/texlive/2017/texmf-var/web2c/tlmgr.log

And now tlcockpit works wonderfully:

tlcockpit

By the way, it feels much faster than Tex Live Utility on OS X, on similar machine.

Thank you so much.

priyadarshan commented 6 years ago

I do not know what you did, but it is even faster now, using the "stable" one from TeXLive. Thanks again, it is a real joy to use.