Question

I often want to open a file browser to open a file and then close the browser.

Is there a way (a plasmoid, a dolphin plugin, another browser...) which could allow me to have a file browser "in the style of" yakuake? (i.e. unfolding with a shortcut, and re-folding when I chose the file I want)

Était-ce utile?

La solution

Took me some time, but finally managed to get what you want (and eventually, what I also want :) with xdotool (on Ubuntu sudo apt-get install xdotool).

With this script, you can have any application behave like you asked:

#!/bin/bash

SEARCHED_WINDOW=$1
COMMAND=${2:-$SEARCHED_WINDOW}
SEARCHED_WINDOW_CLASSNAME=toggleApp$SEARCHED_WINDOW
WINDOW_ID=$(xdotool search --classname $SEARCHED_WINDOW_CLASSNAME)
VISIBLE_WINDOW_ID=$(xdotool search --onlyvisible --classname $SEARCHED_WINDOW_CLASSNAME 2>/dev/null)

if [ -z "$WINDOW_ID" ]; then
    $COMMAND 2>/dev/null &
    pid=$!
    NEW_WINDOW_ID=$(xdotool search --onlyvisible --sync --pid $pid 2>/dev/null)
    xdotool set_window --classname $SEARCHED_WINDOW_CLASSNAME $NEW_WINDOW_ID
    xdotool windowfocus $NEW_WINDOW_ID
elif [ -z "$VISIBLE_WINDOW_ID" ]; then
    xdotool windowmap $WINDOW_ID
    xdotool windowfocus $WINDOW_ID
else
    xdotool windowunmap $VISIBLE_WINDOW_ID
fi

(Inspired from here)

You call it like this:

./toggle.sh dolphin

If the command to launch the program is different, you can add a second parameter:

./toggle.sh appName commandToLaunchApp

What this script does is the following:

  1. If the app is not running: launch it, give window a specific class, and give window focus
  2. If the app is running but with no visible window: make window visible and give it focus
  3. Else, i.e. app is running and visible: hide it.

All you have left to do is map a shortcut to the above-mentionned command to launch the script. In KDE : System settings > Shortcuts and gestures > Custom shortcuts. Then Edit > New > Global shortcut > Command.

Plus, this script works with any app, should work with any EWMH compliant window manager, and allows you to have other instances of the same app (this is why I added the class trick).

Autres conseils

The closest solution to what you want is the Widget Layer Compiz plugin.

This plugin enables you to make appear a layer on top of your workspace. You can configure this layer to hold windows of your choice, in your case that would be the file manager. It has a hide/show feature which you can bind to a hotkey.

It uses Window Matching rules to define the windows to hold.

More information on http://wiki.compiz.org/Plugins/Widget

However, this would imply that you use the Compiz compositing manager.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top