You are not logged in.
Okay folks, sorry for the massive delay in response. This semester's incredibly busy for me. Trilby, I'm sorry to hear that the v3 experiment didn't quite go as planned. But, "live and learn" and all those other platitudes. Moving forward, I would be happy to continue contribution for documentation and artwork. However, I'm not sure there's much I can do on documentation until I get the chance to read the code or until there are some notes you can get together for me that I can extrapolate out into docs.
Also, a note on the artwork, if you still want to support fully colored icons, that's completely up to you, but I have a thing for simple symbolic icons (usually best set as one color), so I'm not sure I'd be the right person for the job of making really colorful icons. Not to mention, if all the icons are independently colored, it makes theming a much harder task as the colors of the icons may not blend well with the rest of the theme.
Regardless, I will be happy to contribute what I can whenever I am able.
All the best,
-HG
Offline
Icons certainly *can* be a single color. But they are just stored as png images which allow for multiple colors. It'd even be pretty easy to use the png as an opacity mask and just paint that region in the foreground color (which would replicate the previous behavior). This is not implemented yet, but neither are icons in general.
I have been putting together some notes, and I decided they are best collected on the github wiki (which only really has one page so far).
"UNIX is simple and coherent" - Dennis Ritchie; "GNU's Not Unix" - Richard Stallman
Offline
Icons are ready for testing. This is the near final step for 4.0 to be 'feature complete' as far as I can tell. Documenting changes is the last real step.
As I added icons back, I was able to easily include an option for using icons as image masks which will be drawn in the current foreground color.[1]
The status input is very similar to the 3.0 version with a few minor modifications. What remains the same is as follows:
- all non-braced text is drawn as is
- curly braces are used for special indicators, eg {cmd}
- indicators include colors specifying RGBA as numbers from 0.00 - 1.00
- solid red: {1 0 0 1}
- solid pink: {1 0.5 0.5 1}
- translucent blue: {0 0 1 0.5}
- indicators can also specify icons with an 'i' and a number
- icons are from a 10x10 grid in the image specified in the config
- 11th icon: {i 11}
What is new/revised:
- icons can be specified as a mask for the current color with an 'I'
- 12th icon used as a mask for current color {I 12}
- fonts can be toggled between regular and bold/secondary with {f} and {F}
- all status input strings must be divided into 4 segments each separated by an ampersand '&'. Each line must have three ampersands, or the results may not be as intended.
- The first and second segments are drawn on the left of the first container, the first before the tags, the second after the tag indicators.
- The third and fourth are drawn on the right of the screen. The distinction will be most relevant for users of bottom bars. For simple familiar layouts, top bar users should use the third, while bottom bar users should use the fourth segment.
- The third segment draws on the right of the second container's bar (or first if there is only one visible). The fourth draws on the right of the last visible container's bar.
- Using the third and fourth segments is certainly allowed. When there are more than two containers visible, this would place status information on the left of two different bars, one on the top of the screen (or bottom for bottom bars) and the other in the middle of the screen between containers.
Note [1]: This will now also allow for the icon image to be a one bit-per-pixel format. Internal representations will maintain the bit-depth of the source image, so if one wishes to use icons only as color masks, this can provide a noteworthy saving in memory. For example, a 10x10 grid of 10 pixel color icons would use roughly 40 KB of memory, while 1-bit transparency masks of the same size would use just over 1 KB of memory.
Last edited by Trilby (2014-02-12 16:21:30)
"UNIX is simple and coherent" - Dennis Ritchie; "GNU's Not Unix" - Richard Stallman
Offline
Just trying the new incarnation and I must admit, for me anyway, it is a steep learning curve. Until the documentation is out, I'm afraid I'm just getting basic things to work and if I put ampersands on all the lines of my status, at least alopex doesn't spit me back to my xdm login screen. You once mentioned that a multi-line status would require %1 %2 %3, etc in the status format of the config but I don't see that in the new config so you must have a new way of doing this in this version.
I did notice though that when using a top bar, the status bar is shaded but using a bottom bar it is totally transparent. It did take me a while to figure out I needed a color code for anything to show but that was one small step. I don't see tabs or a tab indicator here but that's likely me not knowing how it's done yet. Interesting progress here. I'll surely be following and trying from time to time but I don't have enough knowledge yet to truly do much testing. I'm starting to get the hang of the key binding, as well, but it's not quite as straight forward as version2, to me anyway.
edit: I'm also wondering about whether you intend to have the status bar showing without opening a window first, like version 2. Not a big deal but just used to ver 2 behavior.
edit2: In my short dabbling I did notice that with the default keybinding for firefox as the browser, firefox won't startup here but if I change it to luakit, it works fine. Also diablo 2 in wine kicks me straight out of alopex and back to my login screen. SDL games work fine though. I discovered this by finally figuring out a keybinding for a custom dmenu that I use--yay for me
Last edited by bgc1954 (2014-02-13 17:13:12)
Time is a great teacher, but unfortunately it kills all its pupils ... - Louis Hector Berlioz
Offline
You once mentioned that a multi-line status would require %1 %2 %3, etc in the status format of the config
That was an odd work around in v3. Now every status input line must just have the four segments (separated by ampersands - some can be "empty"). These four segments will be placed as described above by alopex - so there is no status format string anymore. There is also a margins setting that allows for reserving space for an external status tool, tray, or dock.
I did notice though that when using a top bar, the status bar is shaded but using a bottom bar it is totally transparent. It did take me a while to figure out I needed a color code for anything to show but that was one small step. I don't see tabs or a tab indicator here but that's likely me not knowing how it's done yet.
You shouldn't need a color code - there is a default color that would be used. Have you tried using the provided status script (which will just show one useless 1-color icon, and a clock).
I'm also wondering about whether you intend to have the status bar showing without opening a window first, like version 2.
It should show immediately. It does here. I'll have to investigate why yours might not.
the default keybinding for firefox as the browser, firefox won't startup here but if I change it to luakit, it works fine. Also diablo 2 in wine kicks me straight out of alopex and back to my login screen.
Is there any error output? I'm not sure where display managers would send this, but if started with startx, error messages would print to the controlling tty. I'll test out the wine/diablo issue in a bit.
I'm working on a website with some documentation - it's very limited, but it will progress soon:
http://trilbywhite.github.io/alopex/
EDIT: bgc, did you install v4 with the PKGBUILD, or are you trying to run a local build? If you are using a local build, you'll have to place the config file in ~/.config/alopex/ which I assume you've already done, but you'll have to modify the include lines in the config. The default config includes themes from /usr/share/alopex/* but if v4 isn't installed, there will not be anything there: this could be why things are transparent or not visible. I'm running v4 from a local build, and I just changed the include line in ~/.config/alopex/config to point to on of the theme files (e.g. polar, tundra, icecap).
EDIT2: I just installed v4 and ran into several issues. Most have been patched up but two aesthetic issues remain: if there are no images provided in the config for icons and background there are some odd results. This will be fixed shortly. Also if nonexisting filenames are provided (like those in the default config) alopex will just crash. This should also be fixed shortly.
Last edited by Trilby (2014-02-13 18:38:57)
"UNIX is simple and coherent" - Dennis Ritchie; "GNU's Not Unix" - Richard Stallman
Offline
Just a quick note about firefox--if I try firefox from a terminal I get this:
(process:3437): GLib-CRITICAL **: g_slice_set_config: assertion 'sys_page_size == 0' failed
The rest of the info--much appreciated BTW--I'll try later when I have more time. Thx, Trilby.
Time is a great teacher, but unfortunately it kills all its pupils ... - Louis Hector Berlioz
Offline
I just ran into a very odd error - I may have to start a thread on it.
When I run my locally built alopex binary everything works as intended. When I run the makepkg installed binary, I'm getting all sorts of memory issues and crashing.
I've compared the binaries, and they are difference sizes even after striping symbols. I figured this must be due to something in the flags set by makepkg, but I source makepkg.conf to use those flags and rebuilt my local binary. Still the sizes are different, and the local build works, while the makepkg installed binary crashes. They should be identical - but it seems makepkg is doing something to the binary that is exposing this issue which is otherwise hidden.
"UNIX is simple and coherent" - Dennis Ritchie; "GNU's Not Unix" - Richard Stallman
Offline
I'm also having problems with the PKGBUILD and makepkg not finishing--hangs at compressing man pages. Locally building works but I still don't see any tabs or tab indicator, although when I run luakit I do get a squigley little icon on the left side of the status bar. I copied the themes to /usr/share/alopex and even pointed the config there but no tabs at this end.
I never did use icons so I don't know what the build would look for--I did comment out the icon path though.
It seems you may have other issues so I'll see what comes out in the wash.
Last edited by bgc1954 (2014-02-13 19:44:09)
Time is a great teacher, but unfortunately it kills all its pupils ... - Louis Hector Berlioz
Offline
Oh, crap - I just realized one silly point. Do you have ttf-droid installed and/or did you change the font paths in the config?
The man page issue is fixed, and all the other issues should be fixed.
EDIT: @BGC, are you sure firefox doesn't open - or might it open on the second tag (as there is a rule for this in the default config). If tags aren't drawn, there'd be no indication of this until you switch to the second tag (MOD+2).
Last edited by Trilby (2014-02-13 23:03:08)
"UNIX is simple and coherent" - Dennis Ritchie; "GNU's Not Unix" - Richard Stallman
Offline
Duh...why didn't I see the firefox issue--sure enough it's in the second tag--sorry about that chief... PEBKAC!
I do have ttf-droid installed so at least I'm not causing that issue on my end.
I'll play around with it some more tomorrow and check out any fixes you come up with in the meantime.
Last edited by bgc1954 (2014-02-13 20:33:17)
Time is a great teacher, but unfortunately it kills all its pupils ... - Louis Hector Berlioz
Offline
The bugs I found earlier today have all been fixed. Please let me know if there are remaining issues if/when you grab the most recent revisions.
EDIT: I just tried to experiment with a diablo II demo, but I couldn't even get it to install on wine anymore (independent of the WM). So I don't have any way to track that further. The installation cancels after a video test saying directx is needed - even though I followed the wine guides on installing directx, then tried winetricks, and tried forcing opengl instead of directx - none of these allowed the installation to complete.
This did, however, get me to (temporarily) install zenity, which requires gtk3. This revealed another issue with gtk3 windows which I just patched up - and it reminded me why I avoid anything related to gtk3.
Last edited by Trilby (2014-02-14 01:18:25)
"UNIX is simple and coherent" - Dennis Ritchie; "GNU's Not Unix" - Richard Stallman
Offline
Whatever you did seems to have fixed the diablo 2 issue--it works fine now!
I'm still not seeing tabs with the new alopex. I did manage to find an icons.png on my netbook which I put in my desktop and now I see the tag icon for 1,2 .etc but not seeing tabs still here on either desktop or netbook. Also whether I use top or bottom status bar now, with themes in /usr/share/alopex, the status bar is semi-transparent top or bottom--good. Still no status bar when first started--it seems to flash but does not stay until I open a terminal or other app.
Local build is fine but PKGBUILD ends with errors
cc -march=i686 -mtune=generic -O2 -pipe -fstack-protector --param=ssp-buffer-size=4 `pkg-config --cflags x11 cairo freetype2 xinerama`
-D_FORTIFY_SOURCE=2 -c -o alopex.o src/alopex.c
cc -march=i686 -mtune=generic -O2 -pipe -fstack-protector --param=ssp-buffer-size=4 `pkg-config --cflags x11 cairo freetype2 xinerama`
-D_FORTIFY_SOURCE=2 -c -o actions.o src/actions.c
cc -march=i686 -mtune=generic -O2 -pipe -fstack-protector --param=ssp-buffer-size=4 `pkg-config --cflags x11 cairo freetype2 xinerama`
-D_FORTIFY_SOURCE=2 -c -o atoms.o src/atoms.c
cc -march=i686 -mtune=generic -O2 -pipe -fstack-protector --param=ssp-buffer-size=4 `pkg-config --cflags x11 cairo freetype2 xinerama`
-D_FORTIFY_SOURCE=2 -c -o config.o src/config.c
src/config.c: In function ‘config_init’:
src/config.c:37:7: warning: ignoring return value of ‘chdir’, declared with attribute warn_unused_result [-Wunused-result]
chdir(pwd);
^
src/config.c: In function ‘config_general’:
src/config.c:193:7: warning: ignoring return value of ‘pipe’, declared with attribute warn_unused_result [-Wunused-result]
pipe(fd);
^
cc -march=i686 -mtune=generic -O2 -pipe -fstack-protector --param=ssp-buffer-size=4 `pkg-config --cflags x11 cairo freetype2 xinerama`
-D_FORTIFY_SOURCE=2 -c -o draw.o src/draw.c
cc -march=i686 -mtune=generic -O2 -pipe -fstack-protector --param=ssp-buffer-size=4 `pkg-config --cflags x11 cairo freetype2 xinerama`
-D_FORTIFY_SOURCE=2 -c -o tile.o src/tile.c
cc -march=i686 -mtune=generic -O2 -pipe -fstack-protector --param=ssp-buffer-size=4 `pkg-config --cflags x11 cairo freetype2 xinerama`
-D_FORTIFY_SOURCE=2 -c -o xlib.o src/xlib.c
src/xlib.c: In function ‘main_loop’:
src/xlib.c:209:9: warning: ignoring return value of ‘fgets’, declared with attribute warn_unused_result [-Wunused-result]
fgets(line, MAX_LINE, conf.stat);
^
cc -Wl,-O1,--sort-common,--as-needed,-z,relro `pkg-config --libs x11 cairo freetype2 xinerama` alopex.o actions.o atoms.o config.o draw.o tile.o
xlib.o -o alopex
atoms.o: In function `atoms_init':
atoms.c:(.text+0x1c): undefined reference to `XInternAtom'
atoms.c:(.text+0x3e): undefined reference to `XInternAtom'
atoms.c:(.text+0x60): undefined reference to `XInternAtom'
atoms.c:(.text+0x82): undefined reference to `XInternAtom'
atoms.c:(.text+0xa4): undefined reference to `XInternAtom'
atoms.o: In function `get_atom':
atoms.c:(.text+0x133): undefined reference to `XGetWindowProperty'
atoms.c:(.text+0x158): undefined reference to `XFree'
atoms.o: In function `get_text':
atoms.c:(.text+0x1a7): undefined reference to `XGetTextProperty'
atoms.c:(.text+0x1db): undefined reference to `XmbTextPropertyToTextList'
atoms.c:(.text+0x1fb): undefined reference to `XFreeStringList'
atoms.c:(.text+0x207): undefined reference to `XFree'
atoms.o: In function `send_message':
atoms.c:(.text+0x2a4): undefined reference to `XSendEvent'
config.o: In function `config_theme':
config.c:(.text+0x368): undefined reference to `XrmGetResource'
config.o: In function `config_binds':
config.c:(.text+0x4a2): undefined reference to `XrmGetResource'
config.c:(.text+0x5c4): undefined reference to `XrmGetResource'
config.c:(.text+0x5d4): undefined reference to `XStringToKeysym'
config.c:(.text+0x640): undefined reference to `XrmGetResource'
config.o: In function `config_rules':
config.c:(.text+0x7cb): undefined reference to `XrmGetResource'
config.c:(.text+0x832): undefined reference to `XrmGetResource'
config.c:(.text+0x8e1): undefined reference to `XrmGetResource'
config.c:(.text+0x947): undefined reference to `XrmGetResource'
config.o:config.c:(.text+0xf1d): more undefined references to `XrmGetResource' follow
config.o: In function `config_general':
config.c:(.text+0xf91): undefined reference to `FT_New_Face'
config.c:(.text+0xfb1): undefined reference to `FT_Set_Pixel_Sizes'
config.c:(.text+0xfde): undefined reference to `FT_New_Face'
config.c:(.text+0xffe): undefined reference to `FT_Set_Pixel_Sizes'
config.c:(.text+0x101b): undefined reference to `cairo_ft_font_face_create_for_ft_face'
config.c:(.text+0x1035): undefined reference to `cairo_ft_font_face_create_for_ft_face'
config.o: In function `config_init':
config.c:(.text+0x1598): undefined reference to `XrmInitialize'
config.c:(.text+0x1640): undefined reference to `XrmGetFileDatabase'
config.c:(.text+0x1674): undefined reference to `XrmGetResource'
config.c:(.text+0x1698): undefined reference to `XrmGetFileDatabase'
config.o: In function `config_free':
config.c:(.text+0x16dd): undefined reference to `XrmDestroyDatabase'
config.c:(.text+0x174a): undefined reference to `cairo_font_face_destroy'
config.c:(.text+0x1757): undefined reference to `cairo_font_face_destroy'
config.c:(.text+0x1764): undefined reference to `FT_Done_Face'
config.c:(.text+0x1771): undefined reference to `FT_Done_Face'
draw.o: In function `set_color':
draw.c:(.text+0x35): undefined reference to `cairo_set_source_rgba'
draw.o: In function `sbar_text':
draw.c:(.text+0x69): undefined reference to `cairo_move_to'
draw.c:(.text+0x78): undefined reference to `cairo_show_text'
draw.c:(.text+0x8f): undefined reference to `cairo_text_extents'
draw.o: In function `sbar_icon.isra.2':
draw.c:(.text+0x120): undefined reference to `cairo_save'
draw.c:(.text+0x156): undefined reference to `cairo_set_source_surface'
draw.c:(.text+0x160): undefined reference to `cairo_paint'
draw.c:(.text+0x189): undefined reference to `cairo_mask_surface'
draw.c:(.text+0x19a): undefined reference to `cairo_restore'
draw.o: In function `round_rect.isra.0.constprop.4':
draw.c:(.text+0x225): undefined reference to `cairo_new_sub_path'
draw.c:(.text+0x2ec): undefined reference to `cairo_arc'
draw.c:(.text+0x35f): undefined reference to `cairo_arc'
draw.c:(.text+0x3b0): undefined reference to `cairo_arc'
draw.c:(.text+0x3ef): undefined reference to `cairo_arc'
draw.c:(.text+0x3f9): undefined reference to `cairo_close_path'
draw.c:(.text+0x411): undefined reference to `cairo_fill_preserve'
draw.c:(.text+0x43e): undefined reference to `cairo_set_line_width'
draw.c:(.text+0x448): undefined reference to `cairo_stroke'
draw.c:(.text+0x45a): undefined reference to `cairo_restore'
draw.c:(.text+0x482): undefined reference to `cairo_save'
draw.c:(.text+0x49a): undefined reference to `cairo_scale'
draw.c:(.text+0x4bc): undefined reference to `cairo_translate'
draw.o: In function `draw_bar_sub':
draw.c:(.text+0x521): undefined reference to `cairo_rectangle'
draw.c:(.text+0x52f): undefined reference to `cairo_clip'
draw.c:(.text+0x58a): undefined reference to `cairo_set_source_surface'
draw.c:(.text+0x598): undefined reference to `cairo_paint'
draw.c:(.text+0x5f9): undefined reference to `cairo_set_source_surface'
draw.c:(.text+0x607): undefined reference to `cairo_paint'
draw.c:(.text+0x615): undefined reference to `cairo_reset_clip'
draw.o: In function `draw_bars':
draw.c:(.text+0x6ad): undefined reference to `cairo_set_source_surface'
draw.c:(.text+0x6b8): undefined reference to `cairo_paint'
draw.c:(.text+0x764): undefined reference to `cairo_set_source_surface'
draw.c:(.text+0x76f): undefined reference to `cairo_paint'
draw.c:(.text+0x82a): undefined reference to `cairo_set_source_surface'
draw.c:(.text+0x835): undefined reference to `cairo_paint'
draw.o: In function `draw_tab':
draw.c:(.text+0x95a): undefined reference to `cairo_text_extents'
draw.c:(.text+0x9b9): undefined reference to `cairo_save'
draw.c:(.text+0x9fa): undefined reference to `cairo_set_source_surface'
draw.c:(.text+0xa05): undefined reference to `cairo_paint'
draw.c:(.text+0xa2d): undefined reference to `cairo_restore'
draw.c:(.text+0xa6c): undefined reference to `cairo_rectangle'
draw.c:(.text+0xa77): undefined reference to `cairo_clip'
draw.c:(.text+0xa9b): undefined reference to `cairo_move_to'
draw.c:(.text+0xaad): undefined reference to `cairo_show_text'
draw.c:(.text+0xab8): undefined reference to `cairo_reset_clip'
draw.o: In function `icons_init':
draw.c:(.text+0xb25): undefined reference to `cairo_image_surface_create_from_png'
draw.c:(.text+0xb31): undefined reference to `cairo_surface_status'
draw.c:(.text+0xb52): undefined reference to `cairo_image_surface_get_format'
draw.c:(.text+0xb5f): undefined reference to `cairo_image_surface_get_width'
draw.c:(.text+0xb7f): undefined reference to `cairo_image_surface_get_height'
draw.c:(.text+0xbd1): undefined reference to `cairo_image_surface_create'
draw.c:(.text+0xbe4): undefined reference to `cairo_create'
draw.c:(.text+0xc06): undefined reference to `cairo_scale'
draw.c:(.text+0xc39): undefined reference to `cairo_set_source_surface'
draw.c:(.text+0xc41): undefined reference to `cairo_paint'
draw.c:(.text+0xc49): undefined reference to `cairo_destroy'
draw.c:(.text+0xc71): undefined reference to `cairo_surface_destroy'
draw.o: In function `icons_free':
draw.c:(.text+0xca7): undefined reference to `cairo_surface_destroy'
draw.o: In function `sbar_parse':
draw.c:(.text+0xcd6): undefined reference to `cairo_save'
draw.c:(.text+0xce9): undefined reference to `cairo_set_operator'
draw.c:(.text+0xcf4): undefined reference to `cairo_paint'
draw.c:(.text+0xcff): undefined reference to `cairo_restore'
draw.c:(.text+0xe88): undefined reference to `cairo_set_font_face'
draw.c:(.text+0xf30): undefined reference to `cairo_set_font_face'
draw.c:(.text+0xf67): undefined reference to `cairo_set_source_rgba'
draw.o: In function `sbar_tags':
draw.c:(.text+0xfb3): undefined reference to `cairo_save'
draw.c:(.text+0xfc6): undefined reference to `cairo_set_operator'
draw.c:(.text+0xfd1): undefined reference to `cairo_paint'
draw.c:(.text+0xfdc): undefined reference to `cairo_restore'
draw.c:(.text+0x1008): undefined reference to `cairo_set_font_face'
draw.c:(.text+0x1095): undefined reference to `cairo_set_font_face'
tile.o: In function `tile':
tile.c:(.text+0x25f): undefined reference to `XMoveResizeWindow'
tile.c:(.text+0x297): undefined reference to `cairo_set_source_surface'
tile.c:(.text+0x2a5): undefined reference to `cairo_paint'
tile.c:(.text+0x2fe): undefined reference to `XMoveResizeWindow'
tile.c:(.text+0x3ba): undefined reference to `XMoveResizeWindow'
tile.c:(.text+0x3f1): undefined reference to `cairo_set_source_surface'
tile.c:(.text+0x3ff): undefined reference to `cairo_paint'
tile.c:(.text+0x489): undefined reference to `XMoveResizeWindow'
xlib.o: In function `expose':
xlib.c:(.text+0x32): undefined reference to `cairo_set_source_surface'
xlib.c:(.text+0x3d): undefined reference to `cairo_paint'
xlib.o: In function `unmapnotify':
xlib.c:(.text+0xd5): undefined reference to `XFree'
xlib.o: In function `apply_rules':
xlib.c:(.text+0x11a): undefined reference to `XAllocClassHint'
xlib.c:(.text+0x138): undefined reference to `XGetClassHint'
xlib.c:(.text+0x240): undefined reference to `XFree'
xlib.o: In function `configurerequest':
xlib.c:(.text+0x2cd): undefined reference to `XConfigureWindow'
xlib.c:(.text+0x2da): undefined reference to `XFlush'
xlib.o: In function `buttonpress':
xlib.c:(.text+0x38e): undefined reference to `XRaiseWindow'
xlib.c:(.text+0x412): undefined reference to `XGrabPointer'
xlib.c:(.text+0x477): undefined reference to `XMaskEvent'
xlib.c:(.text+0x4b2): undefined reference to `XMoveResizeWindow'
xlib.c:(.text+0x5a9): undefined reference to `XUngrabPointer'
xlib.o: In function `keypress':
xlib.c:(.text+0x5f0): undefined reference to `XkbKeycodeToKeysym'
xlib.o: In function `xerror':
xlib.c:(.text+0x6a1): undefined reference to `XGetErrorText'
xlib.o: In function `get_name':
xlib.c:(.text+0x718): undefined reference to `XFree'
xlib.o: In function `get_icon.isra.1':
xlib.c:(.text+0x786): undefined reference to `XGetWMHints'
xlib.c:(.text+0x7a7): undefined reference to `cairo_surface_destroy'
xlib.c:(.text+0x7f3): undefined reference to `XGetGeometry'
xlib.c:(.text+0x801): undefined reference to `cairo_surface_destroy'
xlib.c:(.text+0x83e): undefined reference to `cairo_xlib_surface_create'
xlib.c:(.text+0x859): undefined reference to `cairo_image_surface_create'
xlib.c:(.text+0x863): undefined reference to `cairo_create'
xlib.c:(.text+0x889): undefined reference to `cairo_scale'
xlib.c:(.text+0x89f): undefined reference to `cairo_set_source_surface'
xlib.c:(.text+0x8a7): undefined reference to `cairo_paint'
xlib.c:(.text+0x8af): undefined reference to `cairo_destroy'
xlib.c:(.text+0x8b7): undefined reference to `cairo_surface_destroy'
xlib.c:(.text+0x8ff): undefined reference to `cairo_xlib_surface_create_for_bitmap'
xlib.c:(.text+0x917): undefined reference to `cairo_image_surface_create'
xlib.c:(.text+0x921): undefined reference to `cairo_create'
xlib.c:(.text+0x947): undefined reference to `cairo_scale'
xlib.c:(.text+0x961): undefined reference to `cairo_set_source_surface'
xlib.c:(.text+0x989): undefined reference to `cairo_mask_surface'
xlib.c:(.text+0x991): undefined reference to `cairo_destroy'
xlib.c:(.text+0x999): undefined reference to `cairo_surface_destroy'
xlib.c:(.text+0x9a5): undefined reference to `cairo_surface_destroy'
xlib.o: In function `get_hints':
xlib.c:(.text+0x9c7): undefined reference to `XGetWMHints'
xlib.c:(.text+0x9f3): undefined reference to `XFree'
xlib.o: In function `propertynotify':
xlib.c:(.text+0xa7d): undefined reference to `XFetchName'
xlib.c:(.text+0xaa1): undefined reference to `XFree'
xlib.o: In function `free_mons':
xlib.c:(.text+0xb6a): undefined reference to `cairo_destroy'
xlib.c:(.text+0xb77): undefined reference to `cairo_surface_destroy'
xlib.c:(.text+0xb8d): undefined reference to `cairo_destroy'
xlib.c:(.text+0xba1): undefined reference to `XDestroyWindow'
xlib.c:(.text+0xbb2): undefined reference to `cairo_destroy'
xlib.c:(.text+0xbbc): undefined reference to `cairo_surface_destroy'
xlib.c:(.text+0xbd2): undefined reference to `cairo_surface_destroy'
xlib.c:(.text+0xbef): undefined reference to `cairo_destroy'
xlib.c:(.text+0xbfa): undefined reference to `cairo_surface_destroy'
xlib.o: In function `get_mons':
xlib.c:(.text+0xd06): undefined reference to `XineramaQueryScreens'
xlib.c:(.text+0xe0d): undefined reference to `cairo_image_surface_create_from_png'
xlib.c:(.text+0xe19): undefined reference to `cairo_surface_status'
xlib.c:(.text+0xe2d): undefined reference to `cairo_image_surface_get_width'
xlib.c:(.text+0xe3d): undefined reference to `cairo_image_surface_get_height'
xlib.c:(.text+0xe78): undefined reference to `XCreatePixmap'
xlib.c:(.text+0xeb0): undefined reference to `cairo_xlib_surface_create'
xlib.c:(.text+0xebc): undefined reference to `cairo_create'
xlib.c:(.text+0xf63): undefined reference to `cairo_image_surface_create'
xlib.c:(.text+0xf92): undefined reference to `cairo_create'
xlib.c:(.text+0xfb2): undefined reference to `cairo_scale'
xlib.c:(.text+0xfd0): undefined reference to `cairo_set_source_surface'
xlib.c:(.text+0xfd8): undefined reference to `cairo_paint'
xlib.c:(.text+0xfe0): undefined reference to `cairo_destroy'
xlib.c:(.text+0xfec): undefined reference to `cairo_save'
xlib.c:(.text+0x100a): undefined reference to `cairo_scale'
xlib.c:(.text+0x1020): undefined reference to `cairo_translate'
xlib.c:(.text+0x103a): undefined reference to `cairo_set_source_surface'
xlib.c:(.text+0x1042): undefined reference to `cairo_paint'
xlib.c:(.text+0x104a): undefined reference to `cairo_restore'
xlib.c:(.text+0x10c3): undefined reference to `cairo_image_surface_create'
xlib.c:(.text+0x10d2): undefined reference to `cairo_create'
xlib.c:(.text+0x10ec): undefined reference to `cairo_set_font_face'
xlib.c:(.text+0x1104): undefined reference to `cairo_set_font_size'
xlib.c:(.text+0x1153): undefined reference to `XCreateSimpleWindow'
xlib.c:(.text+0x116f): undefined reference to `XSelectInput'
xlib.c:(.text+0x11ad): undefined reference to `cairo_xlib_surface_create'
xlib.c:(.text+0x11b7): undefined reference to `cairo_create'
xlib.c:(.text+0x11c2): undefined reference to `cairo_surface_destroy'
xlib.c:(.text+0x11d6): undefined reference to `XMapWindow'
xlib.c:(.text+0x1210): undefined reference to `cairo_image_surface_create'
xlib.c:(.text+0x121a): undefined reference to `cairo_create'
xlib.c:(.text+0x1239): undefined reference to `cairo_set_font_face'
xlib.c:(.text+0x124e): undefined reference to `cairo_set_font_size'
xlib.c:(.text+0x129d): undefined reference to `cairo_image_surface_create'
xlib.c:(.text+0x12a8): undefined reference to `cairo_create'
xlib.c:(.text+0x12c7): undefined reference to `cairo_set_font_face'
xlib.c:(.text+0x12dc): undefined reference to `cairo_set_font_size'
xlib.c:(.text+0x12f0): undefined reference to `cairo_surface_destroy'
xlib.c:(.text+0x12fc): undefined reference to `cairo_surface_destroy'
xlib.c:(.text+0x1308): undefined reference to `cairo_destroy'
xlib.c:(.text+0x1326): undefined reference to `XSetWindowBackgroundPixmap'
xlib.c:(.text+0x1337): undefined reference to `XFreePixmap'
xlib.c:(.text+0x1373): undefined reference to `cairo_image_surface_create'
xlib.c:(.text+0x137f): undefined reference to `cairo_create'
xlib.c:(.text+0x139f): undefined reference to `cairo_set_source_rgba'
xlib.c:(.text+0x13ab): undefined reference to `cairo_paint'
xlib.c:(.text+0x13b7): undefined reference to `cairo_destroy'
xlib.o: In function `main_loop':
xlib.c:(.text+0x15c1): undefined reference to `XPending'
xlib.c:(.text+0x15da): undefined reference to `XNextEvent'
xlib.c:(.text+0x161a): undefined reference to `XFlush'
xlib.o: In function `purgatory':
xlib.c:(.text+0x1686): undefined reference to `XMoveWindow'
xlib.o: In function `maprequest':
xlib.c:(.text+0x16b5): undefined reference to `XGetWindowAttributes'
xlib.c:(.text+0x175f): undefined reference to `XGetTransientForHint'
xlib.c:(.text+0x17b2): undefined reference to `XSelectInput'
xlib.c:(.text+0x180f): undefined reference to `XMapWindow'
xlib.o: In function `set_focus':
xlib.c:(.text+0x18ef): undefined reference to `XConfigureWindow'
xlib.c:(.text+0x1930): undefined reference to `XRaiseWindow'
xlib.c:(.text+0x195a): undefined reference to `XSetInputFocus'
xlib.o: In function `xlib_init':
xlib.c:(.text+0x19d4): undefined reference to `XSupportsLocale'
xlib.c:(.text+0x19e8): undefined reference to `XSetLocaleModifiers'
xlib.c:(.text+0x19fc): undefined reference to `XOpenDisplay'
xlib.c:(.text+0x1a15): undefined reference to `FT_Init_FreeType'
xlib.c:(.text+0x1a4e): undefined reference to `XSetErrorHandler'
xlib.c:(.text+0x1a63): undefined reference to `XCreateFontCursor'
xlib.c:(.text+0x1a7d): undefined reference to `XDefineCursor'
xlib.c:(.text+0x1b0b): undefined reference to `XClearWindow'
xlib.c:(.text+0x1b29): undefined reference to `XSelectInput'
xlib.c:(.text+0x1b6f): undefined reference to `XUngrabKey'
xlib.c:(.text+0x1b84): undefined reference to `XSync'
xlib.c:(.text+0x1bb3): undefined reference to `XKeysymToKeycode'
xlib.c:(.text+0x1bfb): undefined reference to `XGrabKey'
xlib.c:(.text+0x1c7a): undefined reference to `XGrabButton'
xlib.c:(.text+0x1ccc): undefined reference to `XGrabButton'
xlib.c:(.text+0x1d1e): undefined reference to `XGrabButton'
xlib.c:(.text+0x1d56): undefined reference to `XFlush'
xlib.o: In function `xlib_free':
xlib.c:(.text+0x1e20): undefined reference to `XUngrabKey'
xlib.c:(.text+0x1e46): undefined reference to `XUngrabButton'
xlib.c:(.text+0x1e53): undefined reference to `XFlush'
xlib.c:(.text+0x1e65): undefined reference to `FT_Done_FreeType'
xlib.c:(.text+0x1e72): undefined reference to `XCloseDisplay'
collect2: error: ld returned 1 exit status
<builtin>: recipe for target 'alopex' failed
make: *** [alopex] Error 1
==> ERROR: A failure occurred in build().
Aborting...
Time is a great teacher, but unfortunately it kills all its pupils ... - Louis Hector Berlioz
Offline
I'm getting that here too. It must be due to the simplifications in the Makefile ...
Hmm, well I just learned a bit about makefiles' implicit rules (which falconindy suggested using) and the ld's "as-needed" option. The ordering of libraries on the command line matters, and gnu make puts LDFLAGS before the object files, but LDLIBS after, so I needed to change my LDFLAGS to LDLIBS in the Makefile. Now that should be all set.
Last edited by Trilby (2014-02-14 11:56:25)
"UNIX is simple and coherent" - Dennis Ritchie; "GNU's Not Unix" - Richard Stallman
Offline
Got some time to check out the latest and I have to say that I'm still having to build locally. Using PKGBUILD hangs at compressing man pages.
I still don't see a status bar until I open an app and don't see any sort of tabs at all--I get the tag icon on the far left, then an icon for the app next to it and then the simple stat output on the far right. If I don't specify a color in my stat, I don't see output at all--maybe that has something to do with no tabs? I even tried a different theme--polar--with no effect.
edit: I just noticed that if I have two apps open in monocle mode the icon for the second app moves over to the middle so tabs are there just no outline.
Last edited by bgc1954 (2014-02-15 17:01:19)
Time is a great teacher, but unfortunately it kills all its pupils ... - Louis Hector Berlioz
Offline
I'm not sure about the other theming issues, but I can't help but suspect a file is not in the right place - so unless the replicate once the PKGBUILD works, I'm not sure how to approach them.
For the PKGBUILD failure, there is nothing odd about the man page - and there is nothing in the Makefile or PKGBUILD that does anything with the man page except install it to ${pkgdir}/usr/share/man/man1/. Compressing the man page is part of makepkg's routine - I assume you have been installing other aur packages without this issue, right?
You could add "options=(!zipman)" to the PKGBUILD as a temporary work around which will prevent makepkg from compressing the man page.
"UNIX is simple and coherent" - Dennis Ritchie; "GNU's Not Unix" - Richard Stallman
Offline
Thx Trilby, the "options" bit added to the PKGBUILD lets the package build and install. I had to remove the themes that I had copied to /usr/share/alopex before it would install, at first, due to file existing errors. Still not seeing tabs and no status bar until I open an app.
I think I might try to remove all alopex related files I can find, except the PKGBUILD, and start from scratch.
Edit: Uninstalling with pacman actually got rid of the stuff in /usr/share/alopex and I did a new makepkg -i but nothing has changed. Builds and installs fine, though. And btw, I have installed lots of stuff from AUR and not had any problems.
Now, the diablo 2 issue is back for me. It just kicks me back to xdm login.
edit: Funny thing, after putting alopex 4 on my netbook, which also has diablo 2 on it, it works fine on my netbook which uses intel graphics. I wonder if this has anything to do with the nvidia graphics on my desktop??? I'll try running in a window and see if that makes a difference.
Last edited by bgc1954 (2014-02-15 22:46:51)
Time is a great teacher, but unfortunately it kills all its pupils ... - Louis Hector Berlioz
Offline
A very interesting exercise was installing alopex 4 in debian. I just got a new/old lenovo T61 to replace my old T21 and have been setting up debian on it--long story short my wife uses it more than me and she likes debian over arch--don't even ask.
So I decided to build alopex on this machine and after figuring out where the fonts were, I built it and fired it up. Guess what? I can see tabs and outlines around the tab and stat output. I don't really know what to make of it. I'll have to try and set it up on my netbook that has arch on it and see what goes. Nice way to spend a Saturday.
EDIT: If you give me long enough, I'll generally stumble on a solution caused by my own stupidity. I started from scratch on my desktop but still had my old ~/.config/alopex/config when I made the new package. I redid my config from scratch this time and I believe my whole problem was due to uncommenting the location of the themes and pointing it to a specific location. I left it commented out this time and everything looks great after the latest package build/install.
Sorry if I've caused you to spend any time trying to track down my problem originating from this end.
The only thing that persists here is no status bar until I open an app.
Last edited by bgc1954 (2014-02-15 20:22:56)
Time is a great teacher, but unfortunately it kills all its pupils ... - Louis Hector Berlioz
Offline
Whoa, thanks for all the great bug hunting! To make sure I'm reading right, is the lack of status bar until a window is opened the only remaining issue (even on the nvidia-driver system)? This is still definitely a bug - but much more tractable.
I've been playing with some variations of status scripts. I do see that the status information will not show up right away if the status script does not output a line immediately after starting. For example, if I have the loop sleep first, then print the time, there is the delay. This doesn't however seem to relate to whether or not a window is opened. Are you sure your results are actually connected to the window opening and are not a coincidence (eg if the status shows up 5 seconds after starting alopex, and that's about the same time you start the first program ...)
Last edited by Trilby (2014-02-15 23:58:50)
"UNIX is simple and coherent" - Dennis Ritchie; "GNU's Not Unix" - Richard Stallman
Offline
Are you sure your results are actually connected to the window opening and are not a coincidence (eg if the status shows up 5 seconds after starting alopex, and that's about the same time you start the first program ...)
I checked all three machines, netbook and T61 laptop both intel graphics and my desktop, nvidia-304xx driver, and they all won't show status bar, no matter how long I wait, until I open an app. I am using your stat example and even changed the sleep to 5 from 60 as I had a similair thought that it might be the sleep function in the stat script, but status never shows up until I start an app. Something seems to flash for a second but then just my background.png showing.
EDIT: In case I didn't mention it, status bar just disappears when you close your app, as well. Also, now that I can see tabs, etc, you were right that a color code is not needed to see the stat output--unless of course you want a different color from the default.
The wine stuff is strange. I can start Starcraft, the original, in wine and it acts just like alopex version 2. It has problems with different resolutions but starts and plays not bad but when you quit the resolution stays at 800x600 and I have to change it back to 1280x1024 with xrandr on my nvidia desktop, just like version 2. Diablo 2 just kicks me back to xdm login even if I try to run in a window on desktop but not in netbook. Another little windows poker game that works in wine runs fine but when you exit, alopex 4 freezes up and I have to ctrl+alt+backspace to exit to xdm login. Seems to be something alopex 4 doesn't like about wine but I don't know what or if you care to deal with that. Thanks for all your work.
Last edited by bgc1954 (2014-02-16 18:52:10)
Time is a great teacher, but unfortunately it kills all its pupils ... - Louis Hector Berlioz
Offline
I definitely want to have this working with all of those. I did just find an issue with SDL games (which may overlap with some of those) and I implemented a potential fix.
Are there links to or packages for any of those wine games and/or are there free versions so I could do some testing?
EDIT: I guess my fix wasn't for SDL games - it was for 0ad, I'm not sure what that uses. (This "fix" was just undone as it had side effects on all fullscreen windows. I'll have to look into the 0ad issue seperately).
I just reinstalled flobopuyo and see it only partially works. It is perfectly playable here, but the screen isn't appropriately resized - I suspect this is related to your issue of not resizing with the sdl program closes.
EDIT2: nevermind that last bit - I just tried flobopuyo with openbox and I see the program changed: it doesn't try to change the video mode anymore. So that one seems work work as intended.
Last edited by Trilby (2014-02-18 00:30:33)
"UNIX is simple and coherent" - Dennis Ritchie; "GNU's Not Unix" - Richard Stallman
Offline
I found a different site that you can try for Diablo2 and Warcraft 3 demos. Google for the demos on archive.org. They both install and play in alopex ver 2 but both just kick me back to my login screen in alopex 4. I found I had to install Diablo 2 with wine from the terminal--I tried to just run the executable file from pcmanfm and I got a horrible white noise and hard freeze as I had to hit the reset button to stop. In the Warcraft game, after it's installed, you have to run the War3Demo.exe not the War III Demo.exe or you don't get a menu and so you can't select anything to play. I installed both in alopex 2 and then tried to run in alopex 2 with success but no joy in alopex 4.
Last edited by bgc1954 (2014-02-17 18:01:40)
Time is a great teacher, but unfortunately it kills all its pupils ... - Louis Hector Berlioz
Offline
So far no luck. Every demo I download fails to start up even under openbox. I wonder if there could be an incompatability with wine-silverlight. I'm down to one regular computer at the moment, but I have another one I can put a vanilla wine install on and experiment with that - but probably not until this weekend. I'd be happy to get cracking on any bugs I can find a way to replicate here, but without being able to run those programs even in a different stable WM (eg openbox) I'm not sure what to look for.
"UNIX is simple and coherent" - Dennis Ritchie; "GNU's Not Unix" - Richard Stallman
Offline
It must be something with wine-silverlight because I use plain old wine from community repo and everything is fine here in alopex ver 2. Have fun on the weekend.
edit: Any ides on why I don't get a status bar until I open an app and then it disappears when I close the app?
Last edited by bgc1954 (2014-02-18 19:59:03)
Time is a great teacher, but unfortunately it kills all its pupils ... - Louis Hector Berlioz
Offline
Well this was silly. I just was using a monocle layout for a bit, and suddenly ran in to the vanishing status bar you've described. Once I realized this only happens with monocle mode when there are no clients open, it was easy to track down. This bug has been fixed.
I've also just implemented a change that should help with SDL games. Apparently there has been a very long standing SDL bug (5+ years) where SDL windows assume that they are in a reparenting window manager - non-reparenting WMs need to do some gymnastics to deal with the SDL devs who refuse to address the issue.
Last edited by Trilby (2014-02-19 21:38:07)
"UNIX is simple and coherent" - Dennis Ritchie; "GNU's Not Unix" - Richard Stallman
Offline
Well this was silly. I just was using a monocle layout for a bit, and suddenly ran in to the vanishing status bar you've described. Once I realized this only happens with monocle mode when there are no clients open, it was easy to track down. This bug has been fixed.
You are absolutely right, I now see a status bar in monocle mode--which is mostly the only mode I use. Thx.
Also, your sdl change has now made Diablo 2 work just like in version 2. The Warcraft 3 demo game still kicks me back to login screen but it's just a demo and I don't really play WoW--yet.
Edit: A strange thing I'm noticing is X dying intermittently in both Diablo 2 and WoW3 startup so both games technically work. I don't really see a pattern here but most of the time they will startup and play fine, and occaisionally they will kick you back to login.
I went back to my long, one-line stat script and now that works well so I'll be using version 4 for now and see if I run into any problems. So far, so good. If I split my stat script into separate lines--so it's easier to read and follow--using echo -n for each line, my script only shows the last line, any thoughts? A long single line works but if you try to add color codes it gets extremely hard to follow.
Last edited by bgc1954 (2014-02-20 18:09:04)
Time is a great teacher, but unfortunately it kills all its pupils ... - Louis Hector Berlioz
Offline