ocd-Dock - a dock written for Puppy

Window managers, icon programs, widgets, etc.
Message
Author
ProgRob
Posts: 67
Joined: Wed 13 Feb 2013, 12:39

ocd-Dock - a dock written for Puppy

#1 Post by ProgRob »

ocd-Dock is a highly-configurable dock written for Linux.

It was written to create a nice looking interface for low-powered Linux environments. It is part of my OCD project which is seeking to create a minimalist interface to Openbox which contains no more than a Clock and Dock (hence the name). This has also been somewhat of an obsession since I started using Linux and hence the obsession/minimalist environment seems aptly named. ocd-Dock was created as I struggled to find a dock that provided a nice look but did not depend on compositing as Puppy Linux does not seem to be happy with compositing and anyway compositing creates a load on low powered systems which seems excessive for a bit of eye candy.

ocd-Dock was developed under Puppy Linux (Precise Puppy to be precise). There is a Upup version which has been tested by me on TahrPup and Precise Puppy. There is also a slackware version which I have tested on 6.3.2. It also runs on Lubuntu, if anyone is interested! It is written in Genie which means it is compiled for execution speed. It uses GTK2, GDK2, Wnck1.0 and Gee-0.8 libraries. It should run under any window manager that fully supports the freedesktop.org Extended Window Manager Hints (EWMH) specification. Although designed for Openbox, ocd-Dock works in JWM (the default WM for Puppy) in TahrPup. It does not work fully with JWM in Precise Puppy. I assume that this is because it uses an older version of JWM which does not support the unminimizing of minimised windows.


The current Upup pet stable version is 4.2.2 and can be downloaded here: https://dl.orangedox.com/5Zglqu1oQ59o8N2hKD

The current pet for 4.2.2 compiled under Slacko can be obtained from here: https://dl.orangedox.com/DwPbq3m9rsa1AV2h7q


This release is a further bug fix release. It eliminates a problem that caused the Slacko version to occasionally crash, removed a problem that caused X to very slowly grab more and more virtual memory, and fixes a problem whereby TahrPup matched terminal windows to the wrong desktop file. A few other minor enhancements have also been included and are documented at the post below.

It has the functionality described in the current documentation which can be downloaded from https://dl.orangedox.com/hxmKMEgeIqIRbajoTg. Note that the documentation states that it relates to version 4.1 - version 4.2.1 is purely a bug fix release. The version 4.1 specific feature is allowing widgets to be placed on the desktop (desklets). Also, from 4.1 you can drag and drop dockitems within the dock. Just hold the mouse down as you drag the dockitem around within the dock.

There has been some feedback that the dock has too many options and is hard for a newcomer to get into. I will next be working on a quick start guide. In addition, Smokey01 has created a really useful utility, ocd-dock-Config, which can be downloaded here: http://murga-linux.com/puppy/viewtopic. ... 5&start=75.


All feedback is gratefully received! Special thanks to Smokey01 and Keef for their feedback which has helped identify and track down those pesky memory leaks and visual disturbances!



Thank you,
Rob
Last edited by ProgRob on Mon 24 Oct 2016, 14:09, edited 14 times in total.

ProgRob
Posts: 67
Joined: Wed 13 Feb 2013, 12:39

ocd-Dock documentation

#2 Post by ProgRob »

Follow this link to download the documentation which is an AbiWord file that I have zipped.

https://www.dropbox.com/s/1enxrymopym3v ... bw.gz?dl=0


You may have to install the following additional libraries:

LibWnck-1.0 (possibly described as libwnck22);
Gdk-2.0
Gtk+-2.0

On TahrPup, only LibWnck is required, but in Precise Puppy all three libraries will probably be required. However, the latter two particularly are common libraries and might already be loaded.

ProgRob
Posts: 67
Joined: Wed 13 Feb 2013, 12:39

#3 Post by ProgRob »

Some screen shots - the 'standard' theme - note that all the themes below are 'built-in' but you can easily write your own.

I have chosen these to demonstrate how standard puppy can be made to look very different within ocd-Dock. The only downloads have been the wallpapers otherwise all images have been taken from standard Precise Puppy with Openbox added.

Image
Last edited by ProgRob on Thu 17 Dec 2015, 11:28, edited 3 times in total.

ProgRob
Posts: 67
Joined: Wed 13 Feb 2013, 12:39

#4 Post by ProgRob »

The 'trad' theme

Image
Last edited by ProgRob on Thu 17 Dec 2015, 11:28, edited 1 time in total.

ProgRob
Posts: 67
Joined: Wed 13 Feb 2013, 12:39

#5 Post by ProgRob »

The 'walk' theme

Image
Last edited by ProgRob on Thu 17 Dec 2015, 11:29, edited 1 time in total.

ProgRob
Posts: 67
Joined: Wed 13 Feb 2013, 12:39

#6 Post by ProgRob »

The 'monochrome' theme (my current favourite)

Image
Last edited by ProgRob on Thu 17 Dec 2015, 11:30, edited 1 time in total.

ProgRob
Posts: 67
Joined: Wed 13 Feb 2013, 12:39

#7 Post by ProgRob »

A 'matrix' theme

Image
Last edited by ProgRob on Thu 17 Dec 2015, 11:30, edited 1 time in total.

ProgRob
Posts: 67
Joined: Wed 13 Feb 2013, 12:39

#8 Post by ProgRob »

The 'modern' theme

Image
Last edited by ProgRob on Thu 17 Dec 2015, 11:31, edited 1 time in total.

ProgRob
Posts: 67
Joined: Wed 13 Feb 2013, 12:39

#9 Post by ProgRob »

The 'bullet' theme

Image
Last edited by ProgRob on Thu 17 Dec 2015, 11:31, edited 1 time in total.

User avatar
Keef
Posts: 987
Joined: Thu 20 Dec 2007, 22:12
Location: Staffordshire

#10 Post by Keef »

ProgRob

I only found this by accident. Installed it on the current Slacko and it is running quite well.
Only had to install LibWnck-1.0 - got it via PPM.
I've gone for the monochrome theme, and disabled the desktop switching at screen edge. Moved to the right hand edge as I use JWM, and have the taskbar at the bottom.
When I ran Barry's SNS, the dock had it as "GTKdialog examples"' for some reason.
Other than that, not had any problems yet.

PS - you should really reduce the size of the screenshots to 600px width. Less scrolling, shorter loading etc.

ProgRob
Posts: 67
Joined: Wed 13 Feb 2013, 12:39

#11 Post by ProgRob »

Hi Keef, thanks for the info and suggestions!

I will have to replace the images - they are too big. In the interim, if you go to the album on imgur at http://imgur.com/a/h9Z5z then I think it shows them all much smaller!

As to the problem with SNS, I tried it on Precise and get GtkDialog3 or GtkDialog4 depending where I am in the process of going through the Internet Wizard. This highlights a challenge which I think all docks face. Puppy uses a lot of scripts for things like SNS. The dialogue window that pops up can be hard to trace back to the script. The text name for the icon is derived either from the .desktop file (if it was able to identify one) or the window title (if it could not find a desktop file). What is curious is the text that you get!

Thanks for the feedback,
Rob

User avatar
torm
Posts: 186
Joined: Sat 07 Mar 2015, 19:56

#12 Post by torm »

wow... :shock:
Looks really good.
Also with IceWM.

Must agree about default 'edgeaction', as it can be somewhat misleading..

What is the direct Gtk2 call for hints and calendar background (for gtkrc )?

ProgRob
Posts: 67
Joined: Wed 13 Feb 2013, 12:39

#13 Post by ProgRob »

Hi Torm,thanks for the feedback.

I'll take a look at the default values for the edge actions. In the, as yet unreleased, next version there are also corner actions so that you can associate an action with a corner of the screen as well as edges. Maybe that would be better for changing workspace.

As for the GTK2 calls for hints and calendar background, I use a gtk label to set up the labels. The window background colour is changed to hintbackgroundcolour using modify_by on the window created for holding the hint. Does that answer the question? I feel, looking at the code, that perhaps I should be allowing the window to default to the GTK2 colours if none are specified. I will make such a change in the next release.

By the way, a new release is coming along. So far I have fixed a bug in the battery widget, put in optional wizzy graphics when selecting windows, got window minimisation animation work better in openbox and got urgency notifications working.

Thanks,
Rob

User avatar
Fossil
Posts: 1157
Joined: Tue 13 Dec 2005, 21:36
Location: Gloucestershire, UK.

#14 Post by Fossil »

@ProgRob Please resize those ridiculously oversized screen prints.
The images are FAR to large to view on a normal laptop screen. Impossible to see the whole image.
There is an accepted size limit to this forum...
HINT: Try a width of 800 pixels.Thank you.

musher0
Posts: 14629
Joined: Mon 05 Jan 2009, 00:54
Location: Gatineau (Qc), Canada

#15 Post by musher0 »

Fossil wrote:@ProgRob Please resize those ridiculously oversized screen prints.
The images are FAR to large to view on a normal laptop screen. Impossible to see the whole image.
There is an accepted size limit to this forum...
HINT: Try a width of 800 pixels.Thank you.
Hello all.

799 pixels, actually, if you're using mtpaint. Moderator Flash once told
me to do it that way because there's a bug in mtpaint. Or is the bug in
the forum software?

Anyway, please reduce your image width to 799 pixels if you want to
make sure that it will be displayed properly in this forum. Maybe mention
the original size of the picture in the picture comments if you like.

BFN.
musher0
~~~~~~~~~~
"You want it darker? We kill the flame." (L. Cohen)

Terry H
Posts: 708
Joined: Sun 29 Mar 2009, 16:48
Location: The Heart of Muskoka, ON Canada

#16 Post by Terry H »

Just saw this thread, so downloaded to check it out.

Initial execution.

As the name of the download file is different from internal naming, it won't load with ppm. it has to be renamed to remove the '-beta'. It installed OK after renaming.

Initial ran on slacko-6.3.0 with JWM. After installing libwnck all has been OK. Configuration is well documented and so far has been easy, with a well set out config file.

I then attempted to run it while using FbBox WM in same slacko install. It failed to run, giving the following error:

Code: Select all

 (ocd-Dock: 6069):Wnck-Warning**: Unhandled action type _OB_WM_ACTION_UNDECORATE
Over all it works well. Nice job.

Terry H
Posts: 708
Joined: Sun 29 Mar 2009, 16:48
Location: The Heart of Muskoka, ON Canada

#17 Post by Terry H »

Further testing. This is done running slacko 6.3.0 with JWM, on my Dell D630 laptop.

Pinning applications using right-clicking works well. I did however have 2 instances (firefox & chromium) where pin option not displayed when right-clicked application, did not give option to pin. When tried again later, the option to pin was shown for these applications. so at present does not appear reproducible. Manual editing of pinned file, very simple and working well.

When exposedock is set to max, the dock is hidden when a window is opened within its space, as it should. When the window is closed, moved or changed size, the dock remains hidden. I would have thought the dock should be displayed when the window is changed. At present the only way I can get the dock to reappear is th change Desktops. The 'reveal' edge action, doesn't appear to work for me.

Edge actions so far seem a bit intermittent. I moved the dock to the left edge (baredge = 2). This is the values I currently have set:

Code: Select all

edge_action_1 = none
edge_action_2 = reveal
edge_action_3 = desktop show
edge_action_4 = run htop
When I first started running ocd-Dock, I ran it from a terminal, as it is easier to restart it to get changes to take effect. When I move the cursor to the right edge, the terminal which I was running ocd in would flicker with htop. When I changed running ocd at startup, I couldn't get htop to show at all.

I had tried desktop show, which if you leave the cursor against the edge it continually toggles the desktop between hide/show windows. Initially a bit off putting, but moving cursor away from edge stops this.

At present no edge actions appear to work at all for me. I believe that my config file is OK.


Edit: I unistalled ocd-Dock and reinstalled, edge actions are working better now. Running htop with an edge action still appears strange though. If running ocd-Dock from a terminal, the terminal flickers with htop. If running ocd-Dock from startup, it does not display htop at all when the edge action is invoked.

I changed an edge to run abiword and it is OK. You have to remember to move the cursor away from the edge once the application has started, or you get lots of windows opened, because it continues to do the action.

User avatar
torm
Posts: 186
Joined: Sat 07 Mar 2015, 19:56

#18 Post by torm »

About documentation:
System-monitor widget could probably take few more lines about *.png file usage.
(if pixmap is less pixels than configured it will segfault, when randomly replaced)
And about custom shapes and sizes.. or use of opacity?

Maybe a hint about RGBA
255, 255, 255, 255
red, green, blue, opacity(transparency or alpha-channel)

"Style - 0 for a horizontal bar"- bar direction (used/available fg/bg)?
(on below screenshot -red is actually "used resource" on the right-hand-end of the bar.. )

Chapter 10.
"fixed launcher" would really make it perfect ( at least for those still missing e17 :wink: )
Attachments
ocd-sysmon-direction.png
(6.82 KiB) Downloaded 867 times

ProgRob
Posts: 67
Joined: Wed 13 Feb 2013, 12:39

#19 Post by ProgRob »

Thanks again for all the feedback. To let you know that I have finally fixed the size of the images. You can still view them at full size at http://imgur.com/a/h9Z5z

I am working on a new release. So far I have implemented:
  • Fixed bug in the battery widget, so it should work properly
  • Fixed bug in the option to redraw the dock, so it should work properly
  • Implemented 'hot corners' so that edge actions can be associated with corners
  • Implemented a diagnostics window which can be used to understand what rules have been applied to match windows to desktop items - useful for diagnosing odd behaviour
I'm hoping to release this either this Friday or some point next week.

@Terry H - many thanks for your input.

The warning you note is a warning I get all the time (and so does the dock Plank) if you run it from a terminal. You get one of these warnings for every window that is open when the dock starts up or a new window is opened. However, I don't think that the warning is the problem - I think that there must be an EWMH which it doesn't support that I depend on. I'd like to make it all a lot more smart about EWMH, so at some point I might download FB and see what is the problem.

The pinning problem is interesting. The pinned option is hidden when the dock cannot link the window to a specific desktop file. The new diagnostic window might help understand why that is happening if you can reproduce the problem as Firefox and Chrome should be picked up.

I'll take a look at the exposedock max problem - doesn't sound right at all. I'll double check the reveal code as well. It may be another EWMH problem.

As for the sensitivity of the edge. I will look at implementing an additional option to stop it triggering more than one edge action. You can also reduce the sensitivity of the repeat action through the config file. Your config file looks perfect to me.

As to your htop problem. I do all my testing from a terminal window so this is something I may have overlooked. I'll test that too - I suspect the cause is the way in which I call such commands.

@Torm - looks like you've spotted that E17 was one of the influences! I agree that more work is needed on the widgets. I will see if I can reproduce something like the example you've provided.

Agree about RGBA - will consider that for a future release.

I'll sort the segfault issue. I suspect that is a missing check.

Can you expand on what you mean by 'fixed launcher'? Do you mean being able to have only a fixed number of items pinned to the dock?


Thanks everyone,
Rob

Terry H
Posts: 708
Joined: Sun 29 Mar 2009, 16:48
Location: The Heart of Muskoka, ON Canada

#20 Post by Terry H »

ProgRob wrote:
@Terry H - many thanks for your input.

The pinning problem is interesting. The pinned option is hidden when the dock cannot link the window to a specific desktop file. The new diagnostic window might help understand why that is happening if you can reproduce the problem as Firefox and Chrome should be picked up.

I'll take a look at the exposedock max problem - doesn't sound right at all. I'll double check the reveal code as well. It may be another EWMH problem.

As for the sensitivity of the edge. I will look at implementing an additional option to stop it triggering more than one edge action. You can also reduce the sensitivity of the repeat action through the config file. Your config file looks perfect to me.

As to your htop problem. I do all my testing from a terminal window so this is something I may have overlooked. I'll test that too - I suspect the cause is the way in which I call such commands.

Thanks everyone,
Rob
Those results I posted were using slacko, have since installed in tahrpup, edge actions are OK.

Still not getting htop to run though, works fine to run other apps though, abiword starts fine.

I'll check further when you post new version.

Terry

Post Reply