View previous topic :: View next topic |
Author |
Message |
JD.Thompson n00b
Joined: 18 May 2005 Posts: 13
|
Posted: Fri Sep 02, 2005 9:12 pm Post subject: Unique desktop folders per workspace in KDE? |
|
|
Greetings,
I'd like to be able to set unique icons for each desktop/workspace in kde (like Fluxspace in Fluxbox). The problem is kde keeps all desktop files in /home/$user/Desktop and doesnt appear to allow me to separate the workspaces. Am I missing something? Or, is there something like Fluxspace for KDE? Has someone created a script to symlink Desktop0, Desktop1, Desktop2, etc etc.. to /home/$user/Desktop depending on which workspace I am in?
Thanks in advance,
Jack Thompson
Last edited by JD.Thompson on Sat Sep 03, 2005 10:41 pm; edited 1 time in total |
|
Back to top |
|
|
JD.Thompson n00b
Joined: 18 May 2005 Posts: 13
|
Posted: Sat Sep 03, 2005 10:18 pm Post subject: |
|
|
Well, kde does not treat symlinked files as normal files on the desktop. Is it possible to change this behavior? If not, I'd have to actually move the files to the Desktop folder when I change workspaces and I'm thinking that would be a bit to resource intensive.
I'm still getting the hang of linux/gentoo/kde so any help would be greatly appreciated.
Edit: I was trying to symlink individual files which wasnt working but symlinking the entire desktop directory did work. However, I found a way to make kdesktop change its path. |
|
Back to top |
|
|
JD.Thompson n00b
Joined: 18 May 2005 Posts: 13
|
Posted: Sun Sep 11, 2005 7:35 am Post subject: |
|
|
After endless google searches and no respsonse on this forum I decided to write my own script. I have things working like I wanted but I figured I'd post what I figured out just incase someone else is interested.
The main problem is to my knowledge kdesktop does not provide a way to tell it to reload its desktop path via dcop or some other way. I found a patch to kdesktop that makes it reload kdeglobals when a configure dcop call is sent to it and when this is done it also reloads the desktop path it finds in kdeglobals. You can find that patch here http://aseigo.bddf.ca/cms/1048 (thanks/credit to Aaron J. Seigo for making the patch ). So armed with my patched kdesktop I made a script that sends the setCurrentDesktop dcop, edits kdeglobals and then sends that configure dcop.
Here is the script... name it "udesk":
Code: |
#!/bin/bash
# udesk - A script for unique desktops in kde created by Jack Thompson
#############################################################
# Set the desktop path and maybe other settings. Settings the location of kdeglobals is a must
#############################################################
# Desktop path Note: The desktop number will be added to this path so be
# sure to create the required directorys or set auto_make to 1.. IE $HOME/Desktop1
desktop="$HOME/Desktop"
# Auto create directorys.. yes=1 no=0
auto_make=1
# Location of kdeglobals
kdeglobals="$HOME/.kde3.4/share/config/kdeglobals"
# Where to save the tmp file. Note: This is created when updating kdeglobals.
tmp="/tmp/udesk_kdeglobals.tmp"
#############################################
# The following should not need to be changed
#############################################
# Give usage help
function usage
{
echo "Usage: udesk [[-d <number> ] | [-h]]"
echo "Look at the config part of this script if you havent yet."
}
# Get input
while [ "$1" != "" ]; do
case $1 in
-d | --desk ) shift
num=$1
;;
-h | --help ) usage
exit
;;
* ) usage
exit 1
esac
shift
done
# Check to see if the directory exists if not create it
if [ -d $desktop$num ]; then
deskpath=$desktop$num
else
if [ "$auto_make" = "1" ]; then
echo "udesk - Making Directory"
mkdir $desktop$num
if [ -d $desktop$num ]; then
deskpath=$desktop$num
else
echo "Error: udesk - Unable to create the directory $desktop$num." >&2
exit 1
fi
else
echo "Error: udesk - The directory $desktop$num does not exists. Set auto_make=1 or
manually create $desktop$num." >&2
exit 1
fi
fi
# Change the desktop, update kdeglobals and then refresh kdesktop
if [ "$deskpath" ]; then
if [ "$(dcop kwin KWinInterface setCurrentDesktop $num)" = "true" ]; then
if [ "$(sed -e 's#^Desktop=.*#'"Desktop=$deskpath#" $kdeglobals > $tmp)" = "" ]; then
if [ "$(mv $tmp $kdeglobals)" = "" ]; then
if [ "$(dcop kdesktop KDesktopIface configure)" = "" ]; then
exit 0
else
echo "Error: udesk - Unable to use configure(). Make sure KDE is running :).">&2
exit 1
fi
else
echo "Error: udesk - Unable to write to kdeglobals.">&2
exit 1
fi
else
echo "Error: udesk - An unknown error has occured. The most likely cause is the kdeglobals location is not set">&2
exit 1
fi
else
echo "Error: udesk - Kdesktop is unable to change to the desktop number specified. Make sure it is enabled in KDE.">&2
fi
fi
|
If anyone needs step by step instructions I'd be happy to help. After 330+ views without a reply I suspect no one cares so I'm not going to waste my time unless someone shows interest. |
|
Back to top |
|
|
RandyBurgess n00b
Joined: 15 Dec 2005 Posts: 30
|
Posted: Sat Sep 01, 2007 1:54 pm Post subject: |
|
|
I just implemented this same patch in kdesktop-3.5.7, and the script works great, once I added an entry for the desktop path in kdeglobals (wasn't there by default). Who knows what will happen with KDE 4.0, but for now I'm enjoying virtual desktops with different icons. |
|
Back to top |
|
|
|