Colors and x64 version

May 26, 2012 at 12:09 PM
Edited May 26, 2012 at 12:11 PM

hey,

yesterday I noticed that it's not possible to use RGB Colors in the general-config.py anymore in both x86 and x64 versions.

Also, the SystemTrayWidget does not seem to work in the x64 version - switched back to x86 because of that.

 

Apart from that someone reported a problem with windawesome to me and I think it's related to .NET framework 4: http://pastebin.com/xpDAyhy8

His windawesome just crashes at startup.

Coordinator
May 26, 2012 at 4:51 PM

Hello,

What do you mean it's not possible "anymore"? :) It worked before? It shouldn't be a problem to just change (e.g. from my own configs) "Color.Black" to "Color.FromArgb(0x123456)" and it should work fine. See the documentation of the color structure here.

The only SystemTrayWidget that should work (if you are on a 64-bit system) is the 64-bit one. The other one isn't supposed to work. :D Are you sure about that? Could you try using my own configs and check if it works? Note that only the first workspace has a bar with the widget.

 

The third thing you reported is strange. It might be because the version of IronPython is strange (2.7.0.40). The DLLs that I've uploaded contain this version: 2.7.1. This is the version that is supposed to be used. It's better to just download the DLLs from here and use these. If there are still problems, he might have an older (or newer) version of IronPython installed which might cause the problem. Uninstalling everything might help. :)

Regards!

May 26, 2012 at 7:06 PM

hi,

the color I want to use is#002b36 or RGB (0,43,54) and I can't get the color working. Also, there's no equivalent to this color in the link you provided.

As the main color in this image: http://oi47.tinypic.com/w748n.jpg

Changed almost all programs (miranda, firefox, thunderbird, foobar etc.) to this dark solarized theme and really like it. Only windawesome is missing.

 

Isn't the x64 version automatically using the x64 widget if I add it to the config? I mean how could it use the x86 version if I only downloaded the x64 version?

We still have pretty much the same config except for some workspace names and my new colors ;)

 

I told him the same: Complete uninstall of .NET framework and reinstall including windawesome+dlls. maybe it works. Gave him the link to this discussion.

Cheers

Coordinator
May 27, 2012 at 7:52 AM

Hello,

Alright, so this works (while some other stuff doesn't, so use that):

Color.FromArgb(0, 43, 54)

So take my configs, replace all occurrences of "Color.Black" (these are my background colors) with "Color.FromArgb(0, 43, 54)" and it should work fine - at least it does on my machine. :) It's a nice color, I agree, but I prefer black. :)

About the widget - yes, if you've downloaded the 64-bit version then it's going to use the 64-bit DLLs. If you are using the 32-bit version on a 64-bit Windows, it's NOT going to work at all - the reasons for this being technical - you cannot insert a 32-bit DLL in the process memory of explorer.exe (which is a 64-bit process) and so I cannot hook for messages for the system tray. So in order to have a working SystemTrayWidget you should use the 64-bit Windawesome in a 64-bit Windows or a 32-bit Windawesome on a 32-bit Windows. :)

Anyway, I still don't understand what the problem is - the Widget doesn't show? The program doesn't even start? It shows but it doesn't work correctly? And it works on a 64-bit Windows with a 32-bit Windawesome?! :)

May 27, 2012 at 11:09 AM
Edited May 27, 2012 at 11:23 AM

hi,

I already tried it with Color.FromArgb(xx,xx,xx) and it didn't work. Also, I tried any possible combination. Nothing worked, that's why I'm asking

 

Yep, I tried the x64 windawesome on my x64 windows system and the systemtraywidget didn't work (windawesome just didn't start). It only started when I removed the SystemTrayWidget from the config.

Now I'm running the x86 version of windawesome on exactly the same windows and the systemtraywidget works.

 

I just downloaded the x64 version and the dlls again and tried to start windawesome (without changing anything in the config or programrules you provide with that download!). Nothing happened and this is what the logfile says (although the systemtrayhook64.dll is present in the folder):

 

------------------------------------
27.05.2012 12:11:48
Assemblies:
Windawesome, Version=1.4.0.0, Culture=neutral, PublicKeyToken=null
mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
System.Core, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
Microsoft.Scripting, Version=1.1.0.20, Culture=neutral, PublicKeyToken=7f709c5b713576e1
System.Xml, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
IronPython, Version=2.7.0.40, Culture=neutral, PublicKeyToken=7f709c5b713576e1
IronRuby, Version=1.1.3.0, Culture=neutral, PublicKeyToken=7f709c5b713576e1
Microsoft.CSharp, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a

OS: Microsoft Windows NT 6.1.7601 Service Pack 1
CLR: 4.0.30319
64-bit OS: True
64-bit process: True
Elevated: False
System.DllNotFoundException: Unable to load DLL 'SystemTrayHook64.dll': Das angegebene Modul wurde nicht gefunden. (Exception from HRESULT: 0x8007007E)
   at Windawesome.NativeMethods.RegisterSystemTrayHook64(IntPtr hwnd)
   at Windawesome.SystemTrayWidget.Windawesome.IWidget.StaticInitializeWidget(Windawesome windawesome)
   at Windawesome.Bar.<>c__DisplayClassc.b__1(IWidget w)
   at Windawesome.NativeMethods.ForEach[T](IEnumerable`1 items, Action`1 action)
   at Windawesome.Bar.Windawesome.IBar.InitializeBar(Windawesome windawesome)
   at Windawesome.NativeMethods.ForEach[T](IEnumerable`1 items, Action`1 action)
   at Windawesome.Windawesome..ctor()
   at Windawesome.Program.Main()
Inner Exception:
none
Coordinator
May 27, 2012 at 12:22 PM
Edited May 27, 2012 at 12:25 PM

Hey,

Colors: that's funny, when I change this line:

workspacesWidgetBackgroundColors = [Color.Black for i in range(0, 10)]

To this one:

workspacesWidgetBackgroundColors = [Color.FromArgb(0, 43, 54) for i in range(0, 10)]

Things work exactly as expected - the background colors of the WorkspacesWidget are changed to the one you want. Maybe try changing the backgroundColor of the bar itself (this is one of the arguments to the Bar constructor itself). I'm not sure why else it wouldn't be working - you are probably changing the wrong config or something. :)

 

The error in the log file is misleading. This normally happens when one of the dependencies of the DLL is missing, not the DLL itself. Do you have the Visual C++ 2010 Runtime Redistributable for x64? You can download it here:

http://www.microsoft.com/en-us/download/details.aspx?id=14632

That should fix your problem... hopefully.

Edit:

btw, what you see as a "working" SystemTrayWidget on your system is actually just the icons for the currently existing (when you started Windawesome) tray buttons. Whenever a new one is created (or an old one removed) - you won't see the change due to what I explained in the previous post. So I highly suggest using the x64 Windawesome. :)

May 27, 2012 at 12:49 PM

hi,

ahh, I had the Visual C++ 2005 version, not the 2010. Updated and now everything works fine.

Many thanks :D

Coordinator
May 27, 2012 at 1:12 PM

No problem, have fun. :)

Feb 1, 2013 at 3:35 AM
Sorry in advance if replying to old threads is discouraged, but I found another way. You can change the top import into:
from System.Drawing import Color, ColorTranslator, Font
Then you can use ColorTranslator.FromHtml to color things instead:
HEX = ColorTranslator.FromHtml
highlightedForegroundColor = HEX("#960050")