Warrender
Anmeldungsdatum: 3. Oktober 2010
Beiträge: 29
|
Hallo! Ich suche für Gnome einen Fenstermanager um die Windows 7. Es sollten diese Funktionen sein:
Fenster Management
Eine der attraktivsten Neuigkeiten in Microsoft Windows 7 ist das neue Fenster Managment. Ab sofort ist es möglich, ein Fenster an der rechten oder linken Hälfte des Bildschirms anzudocken, in dem man es einfach mit der Maus dorthin zieht. Weiterhin kann man ein Fenster zur oberen Hälfte des Bildschirms ziehen um es zu maximieren. Ein Doppelklick auf den oberen oder unteren Fensterrand maximiert es vertikal mit der gleichen horizontalen Breite.
Doch es kommt noch besser: Dafür gibt es nun auch Keyboard Shortcuts! Eine übersichtliche Tabelle hat Ralf Schnell in Windows Tastatur-Shortcuts veröffentlicht. Hier ein Auszug:
* Win+Links und Win+Rechts dockt das Fenster an
* Win+Hoch und Win+Runter maximiert und stellt das Fenster horizontal wieder her, bzw. minimiert es
* Win+Shift+Hoch und Win+Shift+Runter maximiert und stellt die vertikale Größe wieder her
Außerdem lassen sich alle Fenster bis auf das im Moment aktive Fenster ausblenden indem man die Win+Pos1 Kombination drückt. Ein nochmaliges Betätigen stellt sie wieder her.
http://blogs.technet.com/b/sieben/archive/2009/07/08/zehn-komfortable-windows-7-features.aspx Danke!
|
Hefeweiz3n
Moderator, Webteam
Anmeldungsdatum: 15. Juli 2006
Beiträge: 5814
Wohnort: Ankh-Morpork
|
Hi. Schau dir mal diesen Blogpost an, damit kannst du AeroSnap mit Compiz nachbauen. Funktioniert aber nicht optimal, wie im Artikel erwähnt und auch hier festgestellt. Für dich wahrscheinlich weniger interessant, aber KDE hat mit KWin einen Fenstermanager der das von Haus aus kann 😉.
|
Warrender
(Themenstarter)
Anmeldungsdatum: 3. Oktober 2010
Beiträge: 29
|
Ok, dankeschön! Aber wenn es nicht gut funktioniert, dann lass ich es gleich. Es gibt ja schon genug andere Dinge zum Ärgern an Ubuntu... 😉
|
berndth
Anmeldungsdatum: 26. September 2007
Beiträge: 290
|
Hefeweiz3n schrieb: aber KDE hat mit KWin einen Fenstermanager der das von Haus aus kann 😉.
Mutter, der WM von GNOME 3, kann das auch von Hause aus.
|
Warrender
(Themenstarter)
Anmeldungsdatum: 3. Oktober 2010
Beiträge: 29
|
und woher bekomme ich gnome3?
Gibt es noch nicht, oder?
|
berndth
Anmeldungsdatum: 26. September 2007
Beiträge: 290
|
Warrender schrieb: und woher bekomme ich gnome3?
Gibt es noch nicht, oder?
Nein, das ist noch nicht freigegeben. Und wenn es freigegeben wird, wird es vermutlich noch einige Zeit dauern, bis es in Ubuntu verfügbar ist (da Ubuntu standardmässig auf Compiz/Unity wechseln will, nicht auf Mutter). Meine Anmerkung war eher der Vollständigkeit für interessierte Leser geschuldet, und bringt dir leider nicht viel zur akuten Problemlösung.
|
mrkramps
Anmeldungsdatum: 10. Oktober 2006
Beiträge: 5523
Wohnort: south central EL
|
Mit dem Befehlszeilenwerkzeug wmctrl kann man sowas scripten. Allerdings sind die Werte für Größe und Position in einem solchen Script immer zu einem geringem Maße abhängig von der verwendeten Bildschirmauflösung und dem Erscheinungsbild - insbesondere den Fensterrahmen. Ferner kann ich keine verlässliche Aussage dazu machen, wie sich wmctrl in Kombination mit Compiz verhält. Benötigte Pakete:
Das Script (als eine mögliche Variante):
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39 | #!/bin/bash
SW=$(xdpyinfo | sed -n '/dimensions/ {s/[^0-9]*//; s/pixels.*//; s/x.*//; p}')
SH=$(xdpyinfo | sed -n '/dimensions/ {s/[^0-9]*//; s/pixels.*//; s/.*x//; p}')
function snap()
{
case $1 in
RIGHT)
X=$(($SW/2+2))
W=$(($SW/2-10))
wmctrl -r :ACTIVE: -e 0,$X,0,$W,-1
wmctrl -r :ACTIVE: -b add,maximized_vert
;;
LEFT)
X=0
W=$(($SW/2-10))
wmctrl -r :ACTIVE: -e 0,$X,0,$W,-1
wmctrl -r :ACTIVE: -b add,maximized_vert
;;
TOP)
H=$(($SH/2-$SH/20))
wmctrl -r :ACTIVE: -e 0,-1,0,-1,$H
;;
BOTTOM)
Y=$(($SH/2-$SH/100-5))
H=$(($SH/2-$SH/20))
wmctrl -r :ACTIVE: -e 0,-1,$Y,-1,$H
;;
FULL)
wmctrl -r :ACTIVE: -b toggle,maximized_vert,maximized_horz
;;
*)
exit 1
;;
esac
}
snap $1
|
Den Inhalt des Codeblocks kopieren, in eine Textdatei einfügen, mit chmod +x ausführbar machen, und anschließend entweder in ~/bin/ oder /usr/local/bin/ ablegen. Die Berechnungen innerhalb des Scriptes müssen - wie oben erwähnt - ggf. an die Bildschirmauflösung und die Fensterrahmen angepasst werden. Bei mir läuft das Script wie gepostet derzeit mit Shiki-Colors-Fensterdekoration auf 1440x1900 Bildschirmauflösung. Abschließend müssen dann lediglich Tastenkürzel vergeben werden, die das Script mit den entsprechenden Parametern aufrufen - also z.B. "scriptname LEFT " auf
Windows +
← . Das Script bietet in diesem Umfang die Möglichkeit Fenster mit Fokus links und rechts vertikal maximiert anzuordnen, in ihrer Position oben und unten auf Viertel der Bildschirmauflösung zu bringen (Anordnung von vier Fenster, funktioniert also nur sinnvoll sofern schon links oder rechts angeordnet wurde), und mit einem Aufruf das Maximieren der Fenster zu toggeln (bei erneutem Aufruf wird die ursprüngliche Fensterposition/-größe wiederhergestellt). Für weitere Informationen siehe:
man wmctrl Neben wmctrl gibt es das Befehlszeilenwerkzeug xdotools, das ähnlich Funktionen bietet. Beide arbeiten lediglich zuverlässig mit Fenstermanagern, die sich an den EWMH/NetWM-Spezifikationen orientieren, was die meisten gängigen Fenstermanager miteinschließt - Gnome (metacity), KDE (kwin), Xfce (xfwm4), LXDE (openbox).
|
mrkramps
Anmeldungsdatum: 10. Oktober 2006
Beiträge: 5523
Wohnort: south central EL
|
Außerdem lassen sich alle Fenster bis auf das im Moment aktive Fenster ausblenden indem man die Win+Pos1 Kombination drückt. Ein nochmaliges Betätigen stellt sie wieder her.
Ist vielleicht noch keine optimale Umsetzung, aber funktioniert. Leider war es mir spontan nicht möglich das in Form eines Toggles umzusetzen, so sind in diesem Fall zwei Tastenkürzel nötig. Auch hier gilt wieder, dass ich nicht weiß, wie sich das Script zusammen mit Compiz verhält. Benötigte Pakete:
Das Script:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52 | #!/bin/bash
# This script hides and unhides all windows except the active one.
# Also works when formerly active window is closed.
#
# Shortcuts for "scriptname HIDE" and "scriptname UNHIDE" have to
# be userdefined.
#
# Dependencies:
# wmctrl, xdotool, xwit, EWMH/NetWM compatible X Window Manager
# Get window IDs for all windows on active desktop
win_id_all=$(wmctrl -l | grep " $(xdotool get_desktop)" | cut -d " " -f1)
# Store output in an array for further processing
win_array=( $win_id_all )
# Get ID of active window
win_active=$(xdotool getactivewindow)
function win-foo ()
{
case $1 in
HIDE)
for i in ${win_array[@]}
do
# wmctrl outputs hex, xdotool and xwit use decimal values
# for window IDs
# let converts hex to decimal values
let win_id=$i
if [ $win_active != $win_id ]
then
xwit -iconify -id $win_id
fi
done
;;
UNHIDE)
for i in ${win_array[@]}
do
# see above for explaination
let win_id=$i
# this is a workaround...
# give focus to each unhidden window to avoid pager blinking
xwit -pop -focus -id $win_id
# give focus to formerly active window again
xwit -focus -id $win_active
done
;;
*)
exit 1
;;
esac
}
win-foo $1
|
|
mrkramps
Anmeldungsdatum: 10. Oktober 2006
Beiträge: 5523
Wohnort: south central EL
|
Ich hab den Thread hier für mich selber zum Anlass genommen meine Scripte für die Fensterverwaltung nochmal zu überarbeiten und in ein einziges Script zusammenzulegen. Also falls sich noch jemand zufällig in diesen Thread verirren sollte und Interesse hat - Bitteschön. Bislang wurde das Script nur halbwegs eingehend mit Xfwm4 (Xfce) getestet und rudimentär kann zumindest bestätigt werden, dass es unter Kwin ebenfalls halbwegs läuft - was aber auch egal ist, weil Kwin das alles eh selber kann. Benötigte Pakete:
Das Script:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278 | #!/bin/bash
###############################INFORMATION######################################
# This script provides additional functionality for window placement with
# EWMH/NetWM compatible X Window Managers such as metacity, xfwm4, kwin, icewm,
# window maker or openbox. Possibly newer versions of those window managers
# might already support these features innately.
# The functions influences the active window only and it is recommended to use
# the script with "focus follows mouse" for best user experience.
#
# Although generally a command line utility with fully working switches this
# script is meant to be a backend wrapper to bind keyboard shortcuts to.
# Best working with a combination of mod keys and the numpad keys.
#
# Dependencies:
# wmctrl, xdotool, xwit, EWMH/NetWM compatible X Window Manager
#
###############################CONFIGURATION####################################
# You have to change the following values (unit: pixels) to ensure the script
# will work properly with your screen resolution and theme.
# Resolution, screen width (sw) and height (sh)
sw="1440"
sh="900"
# Top panel height
tp="0"
# Bottom panel height
bp="32"
# Left panel width
lp="0"
# Right panel width
rp="0"
# Titlebar height
tb="25"
# Left border width
lb="3"
# Right border width
rb="3"
# Bottom border width
bb="3"
# Additional window margins
wm="1"
################################################################################
# Define remaining variables
# Get window ID for all windows on current desktop
# Still kinda instable, FIX ME!
win_id_all=$(wmctrl -l | grep " $(xdotool get_desktop)" | cut -d " " -f1)
# Store in array for further processing
win_array=( $win_id_all )
# Get window ID of currently active window
win_active=$(xdotool getactivewindow)
# Display usage information
function usage () {
cat <<USAGE
window-fu - This script provides additional functionality for window placement
with EWMH/NetWM compatible X Window Managers accessible via keyboard shortcuts.
Please apply according shortcuts in your desktop environment manually to
window-fu and one(!) parameter.
To ensure the script is working properly edit the variables at the top of the
script file according to your screen and theme settings.
Dependencies:
wmctrl, xdotool, xwit
Usage:
window-fu [PARAMETER] (applied to keyboard shortcut)
Example:
window-fu -l (applied to SHIFT+ALT+KP_LEFT)
Parameters:
-h -? Display this usage information.
-l Dock window at left screen edge maximized vertically
-r Dock window at right screen edge maximized vertically
-t Dock window at top screen edge maximized horizontally
-b Dock window at bottom screen edge maximized horizontally
-pt Set window height to screen height half docked at top edge
-pb Set window height to screen height half docked at bottom edge
-tl Set window height to screen height half docked at top left corner
-bl Set window height to screen height half docked at bottom left corner
-tr Set window height to screen height half docked at top right corner
-br Set window height to screen height half docked at top left corner
-f Toggle window fullscreen (maximize window)
-m Minimize all windows except active one on current desktop
-u Unminimize all windows on current desktop
USAGE
}
# Functions
function snap_left ()
{
w=$(($sw/2 - $lb - $rb - $lp/2 - $rp/2 - $wm))
h=$(($sh - $tb - $bb - -$tp - $bp))
x=$((0 + $lp))
y=$((0 + $tp))
wmctrl -r :ACTIVE: -e 0,$x,$y,$w,$h
# Function win_maximize will overwrite the properties
# Use absolute values for placement and size instead
#wmctrl -r :ACTIVE: -b add,maximized_vert
}
function snap_right ()
{
w=$(($sw/2 - $lb - $rb - $lp/2 - $rp/2 - $wm))
h=$(($sh - $tb - $bb - -$tp - $bp))
x=$(($sw/2 - $rp/2 + $lp/2 + $wm))
y=$((0 + $tp))
wmctrl -r :ACTIVE: -e 0,$x,$y,$w,$h
# See comment in function snap_left
#wmctrl -r :ACTIVE: -b add,maximized_vert
}
function snap_top ()
{
w=$(($sw - $lb - $rb - $lp - $rp))
h=$(($sh/2 - $tb - $bb - $tp/2 - $bp/2 - $wm))
x=$((0 + $lp))
y=$((0 + $tp))
wmctrl -r :ACTIVE: -e 0,$x,$y,$w,$h
# See comment in function snap_left
#wmctrl -r :ACTIVE: -b add,maximized_horz
}
function snap_bottom ()
{
w=$(($sw - $lb - $rb - $lp - $rp))
h=$(($sh/2 - $tb - $bb - $tp/2 - $bp/2 - $wm))
x=$((0 + $lp))
y=$(($sh/2 - $bp/2 + $tp/2))
wmctrl -r :ACTIVE: -e 0,$x,$y,$w,$h
# See comment in function snap_left
#wmctrl -r :ACTIVE: -b add,maximized_horz
}
function pos_top ()
{
h=$(($sh/2 - $tb - $bb - $tp/2 - $bp/2 - $wm))
y=$((0 + $tp))
wmctrl -r :ACTIVE: -e 0,-1,$y,-1,$h
}
function pos_bottom ()
{
h=$(($sh/2 - $tb - $bb - $tp/2 - $bp/2 - $wm))
y=$(($sh/2 - $bp/2 + $tp/2))
wmctrl -r :ACTIVE: -e 0,-1,$y,-1,$h
}
function snap_top_left ()
{
w=$(($sw/2 - $lb - $rb - $lp/2 - $rp/2 - $wm))
h=$(($sh/2 - $tb - $bb - $tp/2 - $bp/2 - $wm))
x=$((0 + $lp))
y=$((0 + $tp))
wmctrl -r :ACTIVE: -e 0,$x,$y,$w,$h
}
function snap_bottom_left ()
{
w=$(($sw/2 - $lb - $rb - $lp/2 - $rp/2 - $wm))
h=$(($sh/2 - $tb - $bb - $tp/2 - $bp/2 - $wm))
x=$((0 + $lp/2 + $rp/2 + $wm))
y=$(($sh/2 - $bp/2 + $tp/2))
wmctrl -r :ACTIVE: -e 0,$x,$y,$w,$h
}
function snap_top_right ()
{
w=$(($sw/2 - $lb - $rb - $lp/2 - $rp/2 - $wm))
h=$(($sh/2 - $tb - $bb - $tp/2 - $bp/2 - $wm))
x=$(($sw/2 - $rp/2 + $lp/2 + $wm))
y=$((0 + $tp))
wmctrl -r :ACTIVE: -e 0,$x,$y,$w,$h
}
function snap_bottom_right ()
{
w=$(($sw/2 - $lb - $rb - $lp/2 - $rp/2 - $wm))
h=$(($sh/2 - $tb - $bb - $tp/2 - $bp/2 - $wm))
x=$(($sw/2 - $rp/2 + $lp/2 + $wm))
y=$(($sh/2 - $bp/2 + $tp/2))
wmctrl -r :ACTIVE: -e 0,$x,$y,$w,$h
}
function win_maximize ()
{
wmctrl -r :ACTIVE: -b toggle,maximized_vert,maximized_horz
}
function win_minimize ()
{
for i in ${win_array[@]}
do
# wmctrl outputs hex, xdotool and xwit use decimal values for window IDs
# let converts those hex to decimal values
let win_id=$i
if [ "$win_active" != "$win_id" ]
then
xwit -iconify -id $win_id
fi
done
}
function win_unminimize ()
{
for i in ${win_array[@]}
do
# See function win_minimize for explaination
let win_id=$i
if [ "$win_active" != "$win_id" ]
then
# Give focus to each unhidden window to avoid pager blinking
xwit -pop -focus -id $win_id
fi
done
# Give focus to formerly active window again
xwit -focus -id $win_active
}
# Bring together parameters and functions
function win_fu ()
{
case $1 in
-h)
usage
;;
-\?)
usage
;;
-l)
snap_left
;;
-r)
snap_right
;;
-t)
snap_top
;;
-b)
snap_bottom
;;
-pt)
pos_top
;;
-pb)
pos_bottom
;;
-tl)
snap_top_left
;;
-bl)
snap_bottom_left
;;
-tr)
snap_top_right
;;
-br)
snap_bottom_right
;;
-f)
win_maximize
;;
-m)
win_minimize
;;
-u)
win_unminimize
;;
*)
exit 1
;;
esac
}
# Let it happen
win_fu $1
|
|
PhotonX
Anmeldungsdatum: 3. Juni 2007
Beiträge: 4471
Wohnort: München
|
Wäre das nicht was für einen Thread im Projekte-Unterforum? ☺
|
silberzwiebel
Anmeldungsdatum: 1. Februar 2010
Beiträge: 30
|
Hier auch nochmal der Hinweis:
Das (grandiose) Compiz-Plugin Grid kann die gewünschte Fensteranordnung.
Dazu muss man natürlich Compiz benutzen, zusätzlich noch compiz-fusion-plugins-extra installieren und das Plugin aktivieren.
Dann schiebt Sstrg+Alt+numpadnummer das Fenster an die entsprechende Stelle.
|
Tröte
Anmeldungsdatum: 6. August 2009
Beiträge: 53
|
Moin moin. Das Script von Dauerflucher ist wirklich super! ☺
Ich hab das ganze mal für meine eigenen Bedürftnisse angepasst und erweitert. Allerdings wärs doch auch noch Klasse, wenn man bei Metacity genau wie bei kWin einfach durch das Ziehen des Fensters an den Bildschirmrand den entsprechenden Befehl aufrufen könnte. Hat jemand ne Idee, wie das Funktionieren könnte? Oder sollte ich dafür lieber nen extra Thread eröffnen? 😉 Lg,
P.s.: Meine Variante des Scripts. ☺ Ich hab vor allem das Minimieren verändert: wenn man das aktive Fenster minimiert, hat man 5 Sekunden Zeit es durch nochmaliges betätigen der Tastenkombination wieder in den Vordergrund zu holen. Außerdem funktioniert bei der Variante auch das Verändern maximierter Fenster. Nicht schön - aber selten 😀
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165 | #!/bin/bash
###############################INFORMATION######################################
# This script provides additional functionality for window placement with
# EWMH/NetWM compatible X Window Managers such as metacity, xfwm4, kwin, icewm,
# window maker or openbox. Possibly newer versions of those window managers
# might already support these features innately.
# The functions influences the active window only and it is recommended to use
# the script with "focus follows mouse" for best user experience.
#
# Although generally a command line utility with fully working switches this
# script is meant to be a backend wrapper to bind keyboard shortcuts to.
# Best working with a combination of mod keys and the numpad keys.
#
# Dependencies:
# wmctrl, xdotool, EWMH/NetWM compatible X Window Manager
# Resolution, screen width (sw) and height (sh)
sw="1366"
sh="768"
# Top panel height
tp="24"
# Bottom panel height
bp="0"
# Left panel width
lp="0"
# Right panel width
rp="0"
# Titlebar height
tb="24"
# Left border width
lb="1"
# Right border width
rb="1"
# Bottom border width
bb="1"
# Additional window margins
wm="1"
################################################################################
# Define remaining variables
# Get window ID for all windows on current desktop
# Still kinda instable, FIX ME!
win_id_all=$(wmctrl -l | grep " $(xdotool get_desktop)" | cut -d " " -f1)
# Store in array for further processing
win_array=( $win_id_all )
# Get window ID of currently active window
win_active=$(xdotool getactivewindow)
# Functions
function snap_left ()
{
w=$(($sw/2 - $lb - $rb - $lp/2 - $rp/2 - $wm))
h=$(($sh - $tb - $bb - -$tp - $bp))
x=$((0 + $lp))
y=$((0 + $tp))
wmctrl -r :ACTIVE: -e 0,$x,$y,$w,$h
# Function win_maximize will overwrite the properties
# Use absolute values for placement and size instead
#wmctrl -r :ACTIVE: -b add,maximized_vert
}
function snap_right ()
{
w=$(($sw/2 - $lb - $rb - $lp/2 - $rp/2 - $wm))
h=$(($sh - $tb - $bb - -$tp - $bp))
x=$(($sw/2 - $rp/2 + $lp/2 + $wm))
y=$((0 + $tp))
wmctrl -r :ACTIVE: -e 0,$x,$y,$w,$h
# See comment in function snap_left
#wmctrl -r :ACTIVE: -b add,maximized_vert
}
function snap_top ()
{
w=$(($sw - $lb - $rb - $lp - $rp))
h=$(($sh/2 - $tb - $bb - $tp/2 - $bp/2 - $wm))
x=$((0 + $lp))
y=$((0 + $tp))
wmctrl -r :ACTIVE: -e 0,$x,$y,$w,$h
# See comment in function snap_left
#wmctrl -r :ACTIVE: -b add,maximized_horz
}
function win_maximize ()
{
wmctrl -r :ACTIVE: -b toggle,maximized_vert,maximized_horz
}
function win_minimize ()
{
if [ -f /tmp/block ]
then
rest_id=$(cat /tmp/block)
xwit -pop -focus -id $rest_id
else
for i in ${win_array[@]}
do
# wmctrl outputs hex, xdotool and xwit use decimal values for window IDs
# let converts those hex to decimal values
let win_id=$i
if [ "$win_active" == "$win_id" ]
then
echo $win_id > /tmp/block
xwit -iconify -id $win_id
sleep 5
rm /tmp/block
fi
done
fi
}
# Bring together parameters and functions
function win_fu ()
{
case $1 in
-l)
snap_left
;;
-r)
snap_right
;;
-u)
win_minimize
;;
-f)
win_maximize
;;
*)
exit 1
;;
esac
}
# Window namen finden
win_id_all=$(wmctrl -l | grep " $(xdotool get_desktop)" | cut -d " " -f1)
win_array=( $win_id_all )
win_active=$(xdotool getactivewindow)
# Um den namen zu bekommen
for i in ${win_array[@]}
do
let win_id=$i
if [ "$win_active" == "$win_id" ]
then
win_act_name=$(xdotool getwindowname $win_id)
fi
done
# Bildschirmbreite ermitteln
active_win_width=$(xwininfo -name "$win_act_name" | grep Width |sed -e 's/Width://' | sed 's/ //g')
# Bildschirmhöhe ermitteln
active_win_height=$(xwininfo -name "$win_act_name" | grep Height |sed -e 's/Height://' | sed 's/ //g')
if [ "$active_win_height" == "720" ] && [ "$active_win_width" == "1364" ]
then
#Um die Maximierung aufzuheben
if [ "$1" != "-f" ]
then
wmctrl -r :ACTIVE: -b toggle,maximized_vert,maximized_horz
fi
fi
# Let it happen
win_fu $1
|
|
DiBo33
Anmeldungsdatum: 16. Juni 2006
Beiträge: 1827
|
Entweder mit Compiz oder mit Brightside
|