Sublime Forum

(osx|windows|linux) Color Scheme Editor (BETA)

#75

@quodlibet, I tried the 12.10 in my 12.04 VM and it worked fine, but I went ahead and built a 12.04 32Bit anyways. Try it out and let me know how it goes:

Ubuntu 12.04 LTS Version

0 Likes

#76

An issue with some disappearing/flickering text is fixed on 32bit.

Thereā€™s an issue with the placement of the button (not a big deal) on 32-bit:
dl.dropboxusercontent.com/u/605 ā€¦ schm32.png

On 64-bit I get a number of error about PangoFc. Iā€™m assuming Iā€™m missing some dependenices, but I havenā€™t looked at it too closely:
dl.dropboxusercontent.com/u/605 ā€¦ schm64.png

Is this useful?

0 Likes

#77

[quote=ā€œquodlibetā€]Thereā€™s an issue with the placement of the button (not a big deal) on 32-bit:
https://dl.dropboxusercontent.com/u/60500742/subclrschm32.png[/quote]

How reproducible is this. There is supposed to be code that automatically resizes the window to fit the button in. This used to be a problem for me as well, but it is supposed to be fixed. I am wondering if it is a bug that sometimes pops up, or if it is always like that for you. Worse case scenario if I canā€™t get it resized proper by default is allow the user to manually resize vertically.

[quote=ā€œquodlibetā€]On 64-bit I get a number of error about PangoFc. Iā€™m assuming Iā€™m missing some dependenices, but I havenā€™t looked at it too closely:
https://dl.dropboxusercontent.com/u/60500742/subclrschm64.png[/quote]

Not much I can say about that except try to apt-get install PangoFC I guess. I can make a note of it for others if that is the only missing dependency. I am testing on VMs that have all dependencies to build it, so it is hard for me to catch dependencies that others will be missing. Pyinstaller does its best to include everything it can when compiling the binary, but I guess it canā€™t include everything needed.

0 Likes

#78

Itā€™s very reproducible, but it only happens when using Openbox (which is what I usually use). On Unity I didnā€™t have any problems. So it must be some kind of weirdness on the part of Openbox in how it renders dialogs.

I have tried installing some Pango stuff but without resolving the issue. Googling the errors didnā€™t help, either. Sorry :frowning:

0 Likes

#79

That is both the plus side and negative side of Linux. Highly configurable, and a billion different flavors of Linux, but it can be a pain to write applications to support all variations. I may play around in the future with openbox and see if I can find maybe the issue. Not sure about the Pango issue. I donā€™t really have the motivation to download a bunch of virtual machines and build on different architectures. A lot of linux issues I am going to leave up to linux people to figure out when it deals with compatibility; it just isnā€™t worth it to me to invest that kind of time.

0 Likes

#80

Yeah, no worries :smile: If I figure out anything about the text rendering, Iā€™ll let you know.

0 Likes

#81

I suggest editing the readme on github.com/facelessuser/ColorSchemeEditor to either point to this thread or to expose downloadlinks and installation instructions directly (maybe also a link to the GUI source repo). Because as it is now itā€™s nearly impossible to know how to get the thing working.

(Also posting here to kinda ā€œsubscribeā€ to this thread since I monitor all threads I posted in manually.)

0 Likes

#82

As long as its in BETA, the readme may be pretty bare. I am lazy when it comes to readmes. Before I officially release it, I will document everything in the readme. Right now, the forum OP has everything you need. I will welcome a pull request with documentation :smile:.

0 Likes

#83

I just found this plugin browsing through your repositories - you should really put this on Package Control! Up until now Iā€™ve either been editing themes by hand using ColorPicker, or using the theme editor in TextMate 1 on my Mac. You should be able to set up the Package Control .json files to download the different binaries for different platforms by pulling from individual branches in your GitHub repo. If you still need help with documentation Iā€™d be willing to help out.

0 Likes

#84

It has been on my list. It is very usable as is, but sadly you have to manually set it up.

I just havenā€™t taken the time to think through the distribution. The plugin side (the part that sublime uses to call the binary and send it what theme to edit) runs on all platforms universally. When the plugin initializes at Sublime startup, I call the binary and request the version to see if the plugin and the binary are compatible (in case I have added new features etc.). I want to eliminate calling the tool to request the version. I always get a lag during sublime startup while the plugin requests the version. Having an included versions file with the binary would let me eliminate requesting the version from the tool and speed up Sublime start time.

I also want the plugin code and the binaries to be two separate things. I donā€™t want to have a branch for each platform where I am merging the plugin side of the code to all three branches, but that is a possibility. What I actually want, is a single repo branch for the plugin code, and then have the binaries in their own separate place. But I want Package Control to pull them both, or have plugin code that, once installed, checks out the binaries (with included versions file) itself. That way upgrading the binaries could easily be managed.

I guess I could just have it as a requirement that when you install the ST plugin, you have to also install the binary package part of the plugin via Package Control as well. I wonder if Package Control has a way to configure dependancies?

I really just need to sit down and plan it out, but I am also open to hearing some good ideas or getting help from others.

Sorry for the rambling post :smile:.

0 Likes

#85

Package Control does not provide a way to specify dependencies, however it would certainly be awesome if it did. Relevant discussion here, and some here.

I think there is currently 2 solutions to the problem:

  1. Provide 4 packages, one ST base and one core for each platform. The first package would tell you to download the corresponding package from package control if it does not exist (or even do it automatically, I think you can install arbitrary plugins using package control from within a plugin if you call the functions directly). The others would then do the same.
    Maybe you can even download arbitrary repositories that are not even listed in package control? That would surely be awesome.

  2. Provide 1 package with 3 releases. You can either mirror the ST base code in each repo/branch or provide 3 manually created archives that you specify directly (using ā€œurlā€).

0 Likes

#86

@FichteFoll, thanks for the info. I will explore what I can do with Package Control (PC) before I make any decisions. I am going to try to have a separate binary repo with separate OS branches. Then I will see if I can use PC from the ST plugin to pull the appropriate binary branches, if that doesnā€™t work, I will explore other options.

Before I try and release this, I think I will set up using pipes with the ColorSchemeEditor. That way if a second instance of the editor gets launched, it can send its parameters to the first instance and closeā€¦I might even have the ST plugin send the info down the pipes without launching a second instance. Anyways, this all depends on what I get to first, but I will try and get this suitable for PC first, and see what I feel like doing then. Hopefully it wonā€™t take much.

0 Likes

SchemeEditor
#87

I decided just to have the plugin manually download the zip file from github. I have an experimental branch that does this, but it is not currently threaded, so it freezes things up. I will thread it before I release it. It should be able to upgrade the binary when needed as well. But the point is, I can can have this work as a package once I clean it all up. Probably should be done by the end of the week if not sooner depending on how motivated I am.

0 Likes

#88

I wanted to get this done, so I went ahead and finished it up.

Can someone try out the experimental branch? github.com/facelessuser/ColorSc ā€¦ compatible

Linux is probably hit or miss, and most likely only works on Ubuntu. I know they were compiled on a 12.X Ubuntu, not sure if they work on 13.X. But Windows and OSX should be fine.

Anyways, if someone does try it, please report if there were any problems, or if it worked great :wink:.

0 Likes

#89

Small fix posted. I wasnā€™t testing from a completely clean environment, so the installation didnā€™t fail for me. I have fixed the issue, and ensured the installation success message also displays. I have tested this on OSX and Windows, and it appears to be good. If anyone tries this please confirm it worked for you as well. I am going to polish up the binaries, and get this to Package Control soonish.

I will probably have to rename the packageā€¦I donā€™t think I am the only one to have used ColorSchemeEditor as a nameā€¦I can probably just do it in Package Control settings.

0 Likes

#90

I assume you havenā€™t tested this on ST2 yet because there is no entry point for the plugin (only for ST3). Furthermore set_timeout_async is not available to ST and Iā€™m actually not sure if just changing this to set_timeout wonā€™t freeze ST for the download duration. A real thread might be necessary in this case, which on the other hand can not call specific API functions, but I donā€™t know which these are.

Anyway, I will look into this tomorrow and eventually do some updates for ST2 compatability or change the code to be ST2-only for another branch. I donā€™t really like that though. Also, if you donā€™t plan to support ST2 at all I would probably just leave it at that, assuming it works on my ST3 portable.

0 Likes

#91

I will be honest. All new plugins that I am doing, I code from an ST3 perspective. I code for what I use, and I am using ST3. Many of my plugins that originally were supported on ST2, I have continued to back-port features and fixes to the separate legacy branches, but that will only be until ST3 is released. I wonā€™t kill them off, but new features I will leave to others to back-port if they are desired. I have a bunch of plugins right now, and supporting them all for multiple platforms is a bit of work. Most of my new plugins have been ST3 only: RawLineEdit, QuickCal, EasyDiff, etc. Maybe I will make some donate buttons very prominent on some of my projects and see which ones people actually support the most. Maybe those I will support in the long term for ST2.

As for the plugin at hand:

  • Using a real thread would fix that issue for sure; I almost did use a real thread, and I donā€™t mind switching to a real thread either (it really isnā€™t that much extra work to use real threads), but I took the path of least resistance last night to get the proof of concept out (and I wanted to try out set_timeout_async because I hadnā€™t as of yet).

  • Also, I would need to abstract the requests for package resources.

  • I think I would need to abstract some unicode stuff as wellā€¦pretty sure, there always seems to be some kind of unicode conflicts :smile:

I am not adverse to supporting this on ST2 and ST3 as a single branch. The tool itself already works regardless of platform (that is really 90% of the work). I imagine that once the plugin supports both, it really wouldnā€™t require much maintenance since its main purpose is to call the tool.

If you are feeling ambitious, I would gladly welcome help on getting it ST2 compatible. If not, I will take a look when I get some time. I will at least look at the threading issue tonight; I did take the easy way out on that one :smile:.

It is always hard for me to gauge how much real excitement there is for a plugin, so it also makes it hard for me to gauge how much effort to put in, so I always code for myself first and then others as my motivation allows.

Edit: If I am feeling ambitious tonight, I will see how far I can get with ST2 abstraction.

0 Likes

#92

Now using the threading library.

Edit: I was wrong about the message dialogs. ST2 supports OK/Cancel dialogs.

0 Likes

#93

pc-compatible branch now should handle ST2 or ST3. I have not tested it on windows yet, so there may be some file path issues. I will test it tomorrow when I get to a windows machine. It does appear to work on OSX though.

0 Likes

#94

Small fix for windows now posted. Turns out opening a dialog in as a plugin is loading on ST2 on windows can cause sublime not to start. So a delay has been added before checking and prompting if a download is desired.

Good news is this works on ST2 and ST3 and has been verified on Windows and OSX now.

0 Likes