Вы можете использовать расширенную подстановка, но восклицательный знак идет перед шаблон:
[Ф1], если [Ф3] не горит, включить его в первый раз:
[Ф2]Я хотел бы найти лучшее решение, но Compiz имеет группировку окон.
Сценарий, который я сделал ниже, работает для меня, требуется только wmctrl. Вы можете получить это на Ubuntu с помощью команды sudo apt-get install wmctrl.
При необходимости вам может потребоваться внести некоторые незначительные изменения.
младшие модификации должны быть установлены на последнюю строку имени вашего компьютера (вы можете просмотреть это из System Settings> Details> Device name).
System Settings> Details> Device name это будет работать с двумя мониторами (с разрешением 1920x####), хотя вы можете переопределить эту переменную, установив элемент для каждый монитор подключен к вашему устройству и устанавливает его на любую координату x на этом экране.
$SKIPPED_WINDOWS - это список окон, которые вы не хотите перемещать при вызове этого сценария. Не стесняйтесь добавлять или удалять элементы. Список элементов можно просмотреть, введя команду wmctrl -l.
Наконец, этот сценарий принимает один параметр: $SKIPPED_WINDOWS , где n является монитором для перемещения окон.
#! /bin/bash
IFS=$'\n' #prevents window names from breaking in loop
#Computers Name
#change this to the last characters before window names
#0x02a00002 0 mycomputer-Envy-M3970 XdndCollectionWindowImp -> ie:last characters in computer name
BEFORE_WINDOW_NAME="M3970" #MODIFY ME!!
WINDOWS=$(wmctrl -l | grep -oh -P "(?<=$BEFORE_WINDOW_NAME\ ).*")
#MODIFY MONITORS if needed
declare -a MONITORS=(
'0' # Monitor 1
'2150' # Monitor 2
);
declare -a SKIPPED_WINDOWS=(
'XdndCollectionWindowImp'
'unity-launcher'
'unity-panel'
'unity-dash'
'Hud'
'Desktop'
'Ubuntu'
);
#loop through window names and move them
for i in $WINDOWS; do
if [[ " ${SKIPPED_WINDOWS[@]} " =~ " ${i} " ]]; then
# whatever you DO NOT want to do when arr contains value
# echo "Skipping $i"
echo ""
else
# whatever you want to do when arr contains value
echo "Moving $i"
wmctrl -r "$i" -b remove,maximized_vert,maximized_horz
wmctrl -r "$i" -e 0,"${MONITORS[$1]}",0,800,800
wmctrl -r "$i" -b add,maximized_vert,maximized_horz
fi
done
Вы можете использовать wmctrl и небольшой скрипт bash для прокрутки окон, а затем поместить их на основной экран. Я бросил это вместе. Это может быть достаточно для вас.
#! /bin/bash
#dump the list of windows to a file
wmctrl -l > /tmp/window_list.txt
x=40; y=40
#read the window information from the file
while read id sticky host win_title; do
#move any non-sticky windows except the desktop
if [ "$sticky" == "0" -a "$win_title" != "x-nautilus-desktop" ]
then
wmctrl -i -r $id -e 0,$x,$y,-1,-1
x=$(($x + 40))
y=$(($y + 40))
fi
done < /tmp/window_list.txt
#delete the temporary file
rm /tmp/window_list.txt
exit 0
Сохраните его в файл с именем «move_windows.sh» или что-то подобное и дайте ему разрешения на выполнение с помощью chmod +x move_windows.sh, а затем создайте для него пусковую установку.
Я хотел бы найти лучшее решение, но Compiz имеет группировку окон.
Сценарий, который я сделал ниже, работает для меня, требуется только wmctrl. Вы можете получить это на Ubuntu с помощью команды sudo apt-get install wmctrl.
При необходимости вам может потребоваться внести некоторые незначительные изменения.
младшие модификации должны быть установлены на последнюю строку имени вашего компьютера (вы можете просмотреть это из System Settings> Details> Device name).
System Settings> Details> Device name это будет работать с двумя мониторами (с разрешением 1920x####), хотя вы можете переопределить эту переменную, установив элемент для каждый монитор подключен к вашему устройству и устанавливает его на любую координату x на этом экране.
$SKIPPED_WINDOWS - это список окон, которые вы не хотите перемещать при вызове этого сценария. Не стесняйтесь добавлять или удалять элементы. Список элементов можно просмотреть, введя команду wmctrl -l.
Наконец, этот сценарий принимает один параметр: $SKIPPED_WINDOWS , где n является монитором для перемещения окон.
#! /bin/bash
IFS=$'\n' #prevents window names from breaking in loop
#Computers Name
#change this to the last characters before window names
#0x02a00002 0 mycomputer-Envy-M3970 XdndCollectionWindowImp -> ie:last characters in computer name
BEFORE_WINDOW_NAME="M3970" #MODIFY ME!!
WINDOWS=$(wmctrl -l | grep -oh -P "(?<=$BEFORE_WINDOW_NAME\ ).*")
#MODIFY MONITORS if needed
declare -a MONITORS=(
'0' # Monitor 1
'2150' # Monitor 2
);
declare -a SKIPPED_WINDOWS=(
'XdndCollectionWindowImp'
'unity-launcher'
'unity-panel'
'unity-dash'
'Hud'
'Desktop'
'Ubuntu'
);
#loop through window names and move them
for i in $WINDOWS; do
if [[ " ${SKIPPED_WINDOWS[@]} " =~ " ${i} " ]]; then
# whatever you DO NOT want to do when arr contains value
# echo "Skipping $i"
echo ""
else
# whatever you want to do when arr contains value
echo "Moving $i"
wmctrl -r "$i" -b remove,maximized_vert,maximized_horz
wmctrl -r "$i" -e 0,"${MONITORS[$1]}",0,800,800
wmctrl -r "$i" -b add,maximized_vert,maximized_horz
fi
done
Вы можете использовать wmctrl и небольшой скрипт bash для прокрутки окон, а затем поместить их на основной экран. Я бросил это вместе. Это может быть достаточно для вас.
#! /bin/bash
#dump the list of windows to a file
wmctrl -l > /tmp/window_list.txt
x=40; y=40
#read the window information from the file
while read id sticky host win_title; do
#move any non-sticky windows except the desktop
if [ "$sticky" == "0" -a "$win_title" != "x-nautilus-desktop" ]
then
wmctrl -i -r $id -e 0,$x,$y,-1,-1
x=$(($x + 40))
y=$(($y + 40))
fi
done < /tmp/window_list.txt
#delete the temporary file
rm /tmp/window_list.txt
exit 0
Сохраните его в файл с именем «move_windows.sh» или что-то подобное и дайте ему разрешения на выполнение с помощью chmod +x move_windows.sh, а затем создайте для него пусковую установку.
Я хотел бы найти лучшее решение, но Compiz имеет группировку окон.
Сценарий, который я сделал ниже, работает для меня, требуется только wmctrl. Вы можете получить это на Ubuntu с помощью команды sudo apt-get install wmctrl.
При необходимости вам может потребоваться внести некоторые незначительные изменения.
младшие модификации должны быть установлены на последнюю строку имени вашего компьютера (вы можете просмотреть это из System Settings> Details> Device name).
System Settings> Details> Device name это будет работать с двумя мониторами (с разрешением 1920x####), хотя вы можете переопределить эту переменную, установив элемент для каждый монитор подключен к вашему устройству и устанавливает его на любую координату x на этом экране.
$SKIPPED_WINDOWS - это список окон, которые вы не хотите перемещать при вызове этого сценария. Не стесняйтесь добавлять или удалять элементы. Список элементов можно просмотреть, введя команду wmctrl -l.
Наконец, этот сценарий принимает один параметр: $SKIPPED_WINDOWS , где n является монитором для перемещения окон.
#! /bin/bash
IFS=$'\n' #prevents window names from breaking in loop
#Computers Name
#change this to the last characters before window names
#0x02a00002 0 mycomputer-Envy-M3970 XdndCollectionWindowImp -> ie:last characters in computer name
BEFORE_WINDOW_NAME="M3970" #MODIFY ME!!
WINDOWS=$(wmctrl -l | grep -oh -P "(?<=$BEFORE_WINDOW_NAME\ ).*")
#MODIFY MONITORS if needed
declare -a MONITORS=(
'0' # Monitor 1
'2150' # Monitor 2
);
declare -a SKIPPED_WINDOWS=(
'XdndCollectionWindowImp'
'unity-launcher'
'unity-panel'
'unity-dash'
'Hud'
'Desktop'
'Ubuntu'
);
#loop through window names and move them
for i in $WINDOWS; do
if [[ " ${SKIPPED_WINDOWS[@]} " =~ " ${i} " ]]; then
# whatever you DO NOT want to do when arr contains value
# echo "Skipping $i"
echo ""
else
# whatever you want to do when arr contains value
echo "Moving $i"
wmctrl -r "$i" -b remove,maximized_vert,maximized_horz
wmctrl -r "$i" -e 0,"${MONITORS[$1]}",0,800,800
wmctrl -r "$i" -b add,maximized_vert,maximized_horz
fi
done
Вы можете использовать wmctrl и небольшой скрипт bash для прокрутки окон, а затем поместить их на основной экран. Я бросил это вместе. Это может быть достаточно для вас.
#! /bin/bash
#dump the list of windows to a file
wmctrl -l > /tmp/window_list.txt
x=40; y=40
#read the window information from the file
while read id sticky host win_title; do
#move any non-sticky windows except the desktop
if [ "$sticky" == "0" -a "$win_title" != "x-nautilus-desktop" ]
then
wmctrl -i -r $id -e 0,$x,$y,-1,-1
x=$(($x + 40))
y=$(($y + 40))
fi
done < /tmp/window_list.txt
#delete the temporary file
rm /tmp/window_list.txt
exit 0
Сохраните его в файл с именем «move_windows.sh» или что-то подобное и дайте ему разрешения на выполнение с помощью chmod +x move_windows.sh, а затем создайте для него пусковую установку.
Я хотел бы найти лучшее решение, но Compiz имеет группировку окон.
скрипт я сделал ниже работает для меня, требует только wmctrl. Вы можете сделать это в Ubuntu с помощью команды sudo apt-get install wmctrl.
в случае необходимости, вам может понадобиться, чтобы сделать некоторые незначительные изменения.
мелкие изменения должен быть установлен в последней строке имя компьютера вытащил (можно просмотреть с System Settings>Details>Device name).
System Settings>Details>Device name это будет работать с 2 мониторами (с resoloution в 1920x####) хотя вы можете переопределить эту переменную, установив элемент для каждого монитора, подключенного к компьютеру устройства и установка его на [F10] для координат на экране.
$SKIPPED_WINDOWS находится список Windows, Вы не хотите двигаться, когда вызывается этот скрипт. Не стесняйтесь добавлять или удалять элементы. Список пунктов можно посмотреть, набрав в командной wmctrl -l.
в конце концов, этот скрипт взять в один параметр, т. е. : $SKIPPED_WINDOWS, где n - это следить за тем, чтобы передвигать окна.
#! /bin/bash
IFS=$'\n' #prevents window names from breaking in loop
#Computers Name
#change this to the last characters before window names
#0x02a00002 0 mycomputer-Envy-M3970 XdndCollectionWindowImp -> ie:last characters in computer name
BEFORE_WINDOW_NAME="M3970" #MODIFY ME!!
WINDOWS=$(wmctrl -l | grep -oh -P "(?<=$BEFORE_WINDOW_NAME\ ).*")
#MODIFY MONITORS if needed
declare -a MONITORS=(
'0' # Monitor 1
'2150' # Monitor 2
);
declare -a SKIPPED_WINDOWS=(
'XdndCollectionWindowImp'
'unity-launcher'
'unity-panel'
'unity-dash'
'Hud'
'Desktop'
'Ubuntu'
);
#loop through window names and move them
for i in $WINDOWS; do
if [[ " ${SKIPPED_WINDOWS[@]} " =~ " ${i} " ]]; then
# whatever you DO NOT want to do when arr contains value
# echo "Skipping $i"
echo ""
else
# whatever you want to do when arr contains value
echo "Moving $i"
wmctrl -r "$i" -b remove,maximized_vert,maximized_horz
wmctrl -r "$i" -e 0,"${MONITORS[$1]}",0,800,800
wmctrl -r "$i" -b add,maximized_vert,maximized_horz
fi
done
Вы можете использовать wmctrl и небольшой скрипт bash для прокрутки окон, а затем поместить их на основной экран. Я бросил это вместе. Это может быть достаточно для вас.
#! /bin/bash
#dump the list of windows to a file
wmctrl -l > /tmp/window_list.txt
x=40; y=40
#read the window information from the file
while read id sticky host win_title; do
#move any non-sticky windows except the desktop
if [ "$sticky" == "0" -a "$win_title" != "x-nautilus-desktop" ]
then
wmctrl -i -r $id -e 0,$x,$y,-1,-1
x=$(($x + 40))
y=$(($y + 40))
fi
done < /tmp/window_list.txt
#delete the temporary file
rm /tmp/window_list.txt
exit 0
Сохраните его в файл с именем «move_windows.sh» или что-то подобное и дайте ему разрешения на выполнение с помощью chmod +x move_windows.sh, а затем создайте для него пусковую установку.
Я хотел бы найти лучшее решение, но Compiz имеет группировку окон.
скрипт я сделал ниже работает для меня, требует только wmctrl. Вы можете сделать это в Ubuntu с помощью команды sudo apt-get install wmctrl.
в случае необходимости, вам может понадобиться, чтобы сделать некоторые незначительные изменения.
мелкие изменения должен быть установлен в последней строке имя компьютера вытащил (можно просмотреть с System Settings>Details>Device name).
System Settings>Details>Device name это будет работать с 2 мониторами (с resoloution в 1920x####) хотя вы можете переопределить эту переменную, установив элемент для каждого монитора, подключенного к компьютеру устройства и установка его на [F10] для координат на экране.
$SKIPPED_WINDOWS находится список Windows, Вы не хотите двигаться, когда вызывается этот скрипт. Не стесняйтесь добавлять или удалять элементы. Список пунктов можно посмотреть, набрав в командной wmctrl -l.
в конце концов, этот скрипт взять в один параметр, т. е. : $SKIPPED_WINDOWS, где n - это следить за тем, чтобы передвигать окна.
#! /bin/bash
IFS=$'\n' #prevents window names from breaking in loop
#Computers Name
#change this to the last characters before window names
#0x02a00002 0 mycomputer-Envy-M3970 XdndCollectionWindowImp -> ie:last characters in computer name
BEFORE_WINDOW_NAME="M3970" #MODIFY ME!!
WINDOWS=$(wmctrl -l | grep -oh -P "(?<=$BEFORE_WINDOW_NAME\ ).*")
#MODIFY MONITORS if needed
declare -a MONITORS=(
'0' # Monitor 1
'2150' # Monitor 2
);
declare -a SKIPPED_WINDOWS=(
'XdndCollectionWindowImp'
'unity-launcher'
'unity-panel'
'unity-dash'
'Hud'
'Desktop'
'Ubuntu'
);
#loop through window names and move them
for i in $WINDOWS; do
if [[ " ${SKIPPED_WINDOWS[@]} " =~ " ${i} " ]]; then
# whatever you DO NOT want to do when arr contains value
# echo "Skipping $i"
echo ""
else
# whatever you want to do when arr contains value
echo "Moving $i"
wmctrl -r "$i" -b remove,maximized_vert,maximized_horz
wmctrl -r "$i" -e 0,"${MONITORS[$1]}",0,800,800
wmctrl -r "$i" -b add,maximized_vert,maximized_horz
fi
done
Вы можете использовать wmctrl и небольшой скрипт bash для прокрутки окон, а затем поместить их на основной экран. Я бросил это вместе. Это может быть достаточно для вас.
#! /bin/bash
#dump the list of windows to a file
wmctrl -l > /tmp/window_list.txt
x=40; y=40
#read the window information from the file
while read id sticky host win_title; do
#move any non-sticky windows except the desktop
if [ "$sticky" == "0" -a "$win_title" != "x-nautilus-desktop" ]
then
wmctrl -i -r $id -e 0,$x,$y,-1,-1
x=$(($x + 40))
y=$(($y + 40))
fi
done < /tmp/window_list.txt
#delete the temporary file
rm /tmp/window_list.txt
exit 0
Сохраните его в файл с именем «move_windows.sh» или что-то подобное и дайте ему разрешения на выполнение с помощью chmod +x move_windows.sh, а затем создайте для него пусковую установку.
Я хотел бы найти лучшее решение, но Compiz имеет группировку окон.
скрипт я сделал ниже работает для меня, требует только wmctrl. Вы можете сделать это в Ubuntu с помощью команды sudo apt-get install wmctrl.
в случае необходимости, вам может понадобиться, чтобы сделать некоторые незначительные изменения.
мелкие изменения должен быть установлен в последней строке имя компьютера вытащил (можно просмотреть с System Settings>Details>Device name).
System Settings>Details>Device name это будет работать с 2 мониторами (с resoloution в 1920x####) хотя вы можете переопределить эту переменную, установив элемент для каждого монитора, подключенного к компьютеру устройства и установка его на [F10] для координат на экране.
$SKIPPED_WINDOWS находится список Windows, Вы не хотите двигаться, когда вызывается этот скрипт. Не стесняйтесь добавлять или удалять элементы. Список пунктов можно посмотреть, набрав в командной wmctrl -l.
в конце концов, этот скрипт взять в один параметр, т. е. : $SKIPPED_WINDOWS, где n - это следить за тем, чтобы передвигать окна.
#! /bin/bash
IFS=$'\n' #prevents window names from breaking in loop
#Computers Name
#change this to the last characters before window names
#0x02a00002 0 mycomputer-Envy-M3970 XdndCollectionWindowImp -> ie:last characters in computer name
BEFORE_WINDOW_NAME="M3970" #MODIFY ME!!
WINDOWS=$(wmctrl -l | grep -oh -P "(?<=$BEFORE_WINDOW_NAME\ ).*")
#MODIFY MONITORS if needed
declare -a MONITORS=(
'0' # Monitor 1
'2150' # Monitor 2
);
declare -a SKIPPED_WINDOWS=(
'XdndCollectionWindowImp'
'unity-launcher'
'unity-panel'
'unity-dash'
'Hud'
'Desktop'
'Ubuntu'
);
#loop through window names and move them
for i in $WINDOWS; do
if [[ " ${SKIPPED_WINDOWS[@]} " =~ " ${i} " ]]; then
# whatever you DO NOT want to do when arr contains value
# echo "Skipping $i"
echo ""
else
# whatever you want to do when arr contains value
echo "Moving $i"
wmctrl -r "$i" -b remove,maximized_vert,maximized_horz
wmctrl -r "$i" -e 0,"${MONITORS[$1]}",0,800,800
wmctrl -r "$i" -b add,maximized_vert,maximized_horz
fi
done
Вы можете использовать wmctrl и небольшой скрипт bash для прокрутки окон, а затем поместить их на основной экран. Я бросил это вместе. Это может быть достаточно для вас.
#! /bin/bash
#dump the list of windows to a file
wmctrl -l > /tmp/window_list.txt
x=40; y=40
#read the window information from the file
while read id sticky host win_title; do
#move any non-sticky windows except the desktop
if [ "$sticky" == "0" -a "$win_title" != "x-nautilus-desktop" ]
then
wmctrl -i -r $id -e 0,$x,$y,-1,-1
x=$(($x + 40))
y=$(($y + 40))
fi
done < /tmp/window_list.txt
#delete the temporary file
rm /tmp/window_list.txt
exit 0
Сохраните его в файл с именем «move_windows.sh» или что-то подобное и дайте ему разрешения на выполнение с помощью chmod +x move_windows.sh, а затем создайте для него пусковую установку.
Я хотел бы найти лучшее решение, но Compiz имеет группировку окон.
Сценарий, который я сделал ниже, работает для меня, требуется только wmctrl. Вы можете получить это на Ubuntu с помощью команды sudo apt-get install wmctrl.
При необходимости вам может потребоваться внести некоторые незначительные изменения.
младшие модификации должны быть установлены на последнюю строку имени вашего компьютера (вы можете просмотреть это из System Settings> Details> Device name).
System Settings> Details> Device name это будет работать с двумя мониторами (с разрешением 1920x####), хотя вы можете переопределить эту переменную, установив элемент для каждый монитор подключен к вашему устройству и устанавливает его на любую координату x на этом экране.
$SKIPPED_WINDOWS - это список окон, которые вы не хотите перемещать при вызове этого сценария. Не стесняйтесь добавлять или удалять элементы. Список элементов можно просмотреть, введя команду wmctrl -l.
Наконец, этот сценарий принимает один параметр: $SKIPPED_WINDOWS , где n является монитором для перемещения окон.
#! /bin/bash
IFS=$'\n' #prevents window names from breaking in loop
#Computers Name
#change this to the last characters before window names
#0x02a00002 0 mycomputer-Envy-M3970 XdndCollectionWindowImp -> ie:last characters in computer name
BEFORE_WINDOW_NAME="M3970" #MODIFY ME!!
WINDOWS=$(wmctrl -l | grep -oh -P "(?<=$BEFORE_WINDOW_NAME\ ).*")
#MODIFY MONITORS if needed
declare -a MONITORS=(
'0' # Monitor 1
'2150' # Monitor 2
);
declare -a SKIPPED_WINDOWS=(
'XdndCollectionWindowImp'
'unity-launcher'
'unity-panel'
'unity-dash'
'Hud'
'Desktop'
'Ubuntu'
);
#loop through window names and move them
for i in $WINDOWS; do
if [[ " ${SKIPPED_WINDOWS[@]} " =~ " ${i} " ]]; then
# whatever you DO NOT want to do when arr contains value
# echo "Skipping $i"
echo ""
else
# whatever you want to do when arr contains value
echo "Moving $i"
wmctrl -r "$i" -b remove,maximized_vert,maximized_horz
wmctrl -r "$i" -e 0,"${MONITORS[$1]}",0,800,800
wmctrl -r "$i" -b add,maximized_vert,maximized_horz
fi
done
Вы можете использовать wmctrl и небольшой скрипт bash для прокрутки окон, а затем поместить их на основной экран. Я бросил это вместе. Это может быть достаточно для вас.
#! /bin/bash
#dump the list of windows to a file
wmctrl -l > /tmp/window_list.txt
x=40; y=40
#read the window information from the file
while read id sticky host win_title; do
#move any non-sticky windows except the desktop
if [ "$sticky" == "0" -a "$win_title" != "x-nautilus-desktop" ]
then
wmctrl -i -r $id -e 0,$x,$y,-1,-1
x=$(($x + 40))
y=$(($y + 40))
fi
done < /tmp/window_list.txt
#delete the temporary file
rm /tmp/window_list.txt
exit 0
Сохраните его в файл с именем «move_windows.sh» или что-то подобное и дайте ему разрешения на выполнение с помощью chmod +x move_windows.sh, а затем создайте для него пусковую установку.