Окна каскадом

Руководства, вопросы, обсуждения
Правила форума
Правильно сформулированный вопрос и его грамотное оформление способствует высокой вероятности получения достаточно содержательного и по существу ответа.
Аватара пользователя

Автор темы
hellonet
Сообщения: 263
Зарегистрирован: 11 окт 2016, 09:58
Решено: 2
Откуда: Новосибирск
Благодарил (а): 92 раза
Поблагодарили: 25 раз

Окна каскадом

Сообщение hellonet » 18 окт 2016, 10:18

Можно ли сделать окна каскадом в Linux Mint? Как, например, в винде? Много гуглил, но нигде толком не нашёл.

Решение Chocobo » 18 окт 2016, 20:13
hellonet, Тогда немножко распишу чтоб при желании можно было поправить под свои нужды :smile: Я ж его не пилил, а так, для демонстрации возможностей набросал...

Код: Выделить всё

Xvar=0; 							# исходная позиция по оси X (0 - левый верхний угол экрана)

Yvar=0; 										# исходная позиция по оси Y

for i in $(wmctrl -l | grep ' 0 '| awk '{print $1}'); do 		# Начало цикла прохода по списку окон, их отдаст wmctrl -l

wmctrl -i -r $i -e 0,$Xvar,$Yvar,600,600; 				# Перемещение окна на позицию X Y с размером 600х600 px

Yvar=$(($Yvar + 50));							# Здесь задается смещение для следующего окна на 50 пикселей Y - вниз, Х - вправо
Xvar=$(($Xvar + 50));							
 done
Исходя из этого, по пунктам:
hellonet писал(а): прямоугольные окна получше смотрятся, чем квадратные
600,600 меняем на необходимые цифры
hellonet писал(а): и достаточно сдвига вниз и в право примерно на
полсантиметра - чтобы название окна сверху только было видно и чуть-чуть содержимого самого окна.
Подгоняем Xvar и Yvar под размер заголовков и нужные отступы
hellonet писал(а): чтобы ближнее окно было правее и ниже, а дальнее наоборот левее и выше и тогда все названия окон видать, а у вас всё загорожено одним окном.
тут значит стоит инвертировать список окон в циклt ( может с sort -r к wmctrl -l :scratch: )


Как-то вот так, например:

Код: Выделить всё

Xvar=50;Yvar=50;for i in $(wmctrl -l | grep ' 0 '| awk '{print $1}' | sort -r ); do  wmctrl -i -a $i;wmctrl -i -r $i -e 0,$Xvar,$Yvar,800,500;Yvar=$(($Yvar + 20));Xvar=$(($Xvar + 30)); done
Снимок экрана в 2016-10-18 23-12-20.png

Перейти к ответу ➙

Аватара пользователя

BadBird
Сообщения: 1331
Зарегистрирован: 09 сен 2016, 18:08
Решено: 2
Благодарил (а): 63 раза
Поблагодарили: 116 раз

Re: Окна каскадом

Сообщение BadBird » 18 окт 2016, 10:37

Через компиз вроде бы...или i3wm
Всё о тайлинге окон...ну, или почти всё: Тыц!!!

В сети
Аватара пользователя

Chocobo
Сообщения: 5523
Зарегистрирован: 27 авг 2016, 19:57
Решено: 129
Откуда: НН
Благодарил (а): 411 раз
Поблагодарили: 1434 раза

Re: Окна каскадом

Сообщение Chocobo » 18 окт 2016, 10:43

hellonet писал(а): Как, например, в винде?
А как выглядят "окна каскадом" там? Чтоб понять что ищем)

Аватара пользователя

BadBird
Сообщения: 1331
Зарегистрирован: 09 сен 2016, 18:08
Решено: 2
Благодарил (а): 63 раза
Поблагодарили: 116 раз

Re: Окна каскадом

Сообщение BadBird » 18 окт 2016, 10:49

BadBird писал(а): или i3wm
Вот как это реализовал я в i3

https://youtu.be/uLecxV-09dM
Всё о тайлинге окон...ну, или почти всё: Тыц!!!

Аватара пользователя

Bill Williamson
Сообщения: 463
Зарегистрирован: 31 авг 2016, 10:38
Решено: 18
Благодарил (а): 172 раза
Поблагодарили: 97 раз

Re: Окна каскадом

Сообщение Bill Williamson » 18 окт 2016, 11:52

Chocobo писал(а): А как выглядят "окна каскадом" там? Чтоб понять что ищем)
Наверное, имеется ввиду, чтоб было вот так:
1.gif
У вас нет необходимых прав для просмотра вложений в этом сообщении.

Аватара пользователя

zuzabrik
Сообщения: 759
Зарегистрирован: 29 авг 2016, 09:08
Решено: 15
Благодарил (а): 48 раз
Поблагодарили: 222 раза

Re: Окна каскадом

Сообщение zuzabrik » 18 окт 2016, 12:46

Искаропки вроде не встречал нигде :) Как и за полтора десятка лет никогда не нажимал эту кнопку в винде :) Разве что пару раз из любопытства :)
Имею желание иметь всех желающих, но не имею желающих.

Аватара пользователя

Автор темы
hellonet
Сообщения: 263
Зарегистрирован: 11 окт 2016, 09:58
Решено: 2
Откуда: Новосибирск
Благодарил (а): 92 раза
Поблагодарили: 25 раз

Re: Окна каскадом

Сообщение hellonet » 18 окт 2016, 14:14

Chocobo писал(а): А как выглядят "окна каскадом" там? Чтоб понять что ищем)
окна каскадом

В сети
Аватара пользователя

Chocobo
Сообщения: 5523
Зарегистрирован: 27 авг 2016, 19:57
Решено: 129
Откуда: НН
Благодарил (а): 411 раз
Поблагодарили: 1434 раза

Re: Окна каскадом

Сообщение Chocobo » 18 окт 2016, 15:04

Ну, подобного эффекта можно добиться где угодно. :vic:

Для примера сейчас набросал такой однострочник (если кому нужно - разжую что за магия там происходит :magic: ):

Код: Выделить всё

Xvar=0;Yvar=0;for i in $(wmctrl -l | grep ' 0 '| awk '{print $1}'); do echo $i; echo " ";wmctrl -i -r $i -e 0,$Xvar,$Yvar,600,600;Yvar=$(($Yvar + 50));Xvar=$(($Xvar + 50));echo $Yvar; done
И Вот его результаты:
До
Снимок экрана в 2016-10-18 18-00-28.png
После
Снимок экрана в 2016-10-18 18-00-36.png
Все окна выстроены по позициям и приведены к единому размеру.

Дальше можно доработать его управляя активностью окон, учитывая развернутые или нет и т.д. - вариантов для полета мысли немало.

Ну и для исполнения привязать к хоткею или кнопке на экране, при желании.
У вас нет необходимых прав для просмотра вложений в этом сообщении.

Аватара пользователя

Автор темы
hellonet
Сообщения: 263
Зарегистрирован: 11 окт 2016, 09:58
Решено: 2
Откуда: Новосибирск
Благодарил (а): 92 раза
Поблагодарили: 25 раз

Re: Окна каскадом

Сообщение hellonet » 18 окт 2016, 18:53

Chocobo писал(а): Для примера сейчас набросал такой однострочник (если кому нужно - разжую что за магия там происходит
Грубовато конечно, но видимо если поиграть с настройками можно улучшить. И прямоугольные окна получше смотрятся, чем квадратные и достаточно сдвига вниз и в право примерно на полсантиметра - чтобы название окна сверху только было видно и чуть-чуть содержимого самого окна.Хотелось бы примерно так, чтобы ближнее окно было правее и ниже, а дальнее наоборот левее и выше и тогда все названия окон видать, а у вас всё загорожено одним окном. Неинформативно. см. фото(выстраивал вручную):

Аватара пользователя

zuzabrik
Сообщения: 759
Зарегистрирован: 29 авг 2016, 09:08
Решено: 15
Благодарил (а): 48 раз
Поблагодарили: 222 раза

Re: Окна каскадом

Сообщение zuzabrik » 18 окт 2016, 19:42

Окна каскадом, скриншоты экрана с мобилки... Кто вы, загадочный человек? :)
Имею желание иметь всех желающих, но не имею желающих.

Аватара пользователя

BadBird
Сообщения: 1331
Зарегистрирован: 09 сен 2016, 18:08
Решено: 2
Благодарил (а): 63 раза
Поблагодарили: 116 раз

Re: Окна каскадом

Сообщение BadBird » 18 окт 2016, 19:50

zuzabrik писал(а): Окна каскадом, скриншоты экрана с мобилки...
Лайф сиди видимо, и поэтому не знал наверное как сохранить скрин, но я могу и ошибаться )))
Всё о тайлинге окон...ну, или почти всё: Тыц!!!

Аватара пользователя

Автор темы
hellonet
Сообщения: 263
Зарегистрирован: 11 окт 2016, 09:58
Решено: 2
Откуда: Новосибирск
Благодарил (а): 92 раза
Поблагодарили: 25 раз

Re: Окна каскадом

Сообщение hellonet » 18 окт 2016, 19:52

zuzabrik писал(а): Кто вы, загадочный человек? :)
Новичок. :-). Просто работаю практически одновременно на 2-х осях - 10 винде и LM. Трудно перестраиваться. В винде скриншот делается пайнтом с обрезкой лишнего за 5 секунд.
BadBird писал(а): Лайф сиди видимо, и поэтому не знал наверное как сохранить скрин, но я могу и ошибаться )))
Да не не лайф, установлена. В LM скрин делается сразу с 2-х моников и обрезать не знаю чем.
Типа вот как на скрине с винды, но без обрезки. [spoiler][/spoiler]
Проще получилось сфотать.

В сети
Аватара пользователя

Chocobo
Сообщения: 5523
Зарегистрирован: 27 авг 2016, 19:57
Решено: 129
Откуда: НН
Благодарил (а): 411 раз
Поблагодарили: 1434 раза

Re: Окна каскадом

Сообщение Chocobo » 18 окт 2016, 20:13

hellonet, Тогда немножко распишу чтоб при желании можно было поправить под свои нужды :smile: Я ж его не пилил, а так, для демонстрации возможностей набросал...

Код: Выделить всё

Xvar=0; 							# исходная позиция по оси X (0 - левый верхний угол экрана)

Yvar=0; 										# исходная позиция по оси Y

for i in $(wmctrl -l | grep ' 0 '| awk '{print $1}'); do 		# Начало цикла прохода по списку окон, их отдаст wmctrl -l

wmctrl -i -r $i -e 0,$Xvar,$Yvar,600,600; 				# Перемещение окна на позицию X Y с размером 600х600 px

Yvar=$(($Yvar + 50));							# Здесь задается смещение для следующего окна на 50 пикселей Y - вниз, Х - вправо
Xvar=$(($Xvar + 50));							
 done
Исходя из этого, по пунктам:
hellonet писал(а): прямоугольные окна получше смотрятся, чем квадратные
600,600 меняем на необходимые цифры
hellonet писал(а): и достаточно сдвига вниз и в право примерно на
полсантиметра - чтобы название окна сверху только было видно и чуть-чуть содержимого самого окна.
Подгоняем Xvar и Yvar под размер заголовков и нужные отступы
hellonet писал(а): чтобы ближнее окно было правее и ниже, а дальнее наоборот левее и выше и тогда все названия окон видать, а у вас всё загорожено одним окном.
тут значит стоит инвертировать список окон в циклt ( может с sort -r к wmctrl -l :scratch: )


Как-то вот так, например:

Код: Выделить всё

Xvar=50;Yvar=50;for i in $(wmctrl -l | grep ' 0 '| awk '{print $1}' | sort -r ); do  wmctrl -i -a $i;wmctrl -i -r $i -e 0,$Xvar,$Yvar,800,500;Yvar=$(($Yvar + 20));Xvar=$(($Xvar + 30)); done
Снимок экрана в 2016-10-18 23-12-20.png
У вас нет необходимых прав для просмотра вложений в этом сообщении.

Аватара пользователя

Автор темы
hellonet
Сообщения: 263
Зарегистрирован: 11 окт 2016, 09:58
Решено: 2
Откуда: Новосибирск
Благодарил (а): 92 раза
Поблагодарили: 25 раз

Re: Окна каскадом

Сообщение hellonet » 18 окт 2016, 21:42

Chocobo писал(а): Как-то вот так, например:
Вообще отлично получилось. Ещё бы кнопочку для этого однострочника на панель задач или хотя бы на рабочий стол! Никак? А то в терминале каждый раз запускать неудобно. Не поможете?

Аватара пользователя

zuzabrik
Сообщения: 759
Зарегистрирован: 29 авг 2016, 09:08
Решено: 15
Благодарил (а): 48 раз
Поблагодарили: 222 раза

Re: Окна каскадом

Сообщение zuzabrik » 18 окт 2016, 21:56

1 - сохраните это в файл например sort.sh
2 - дайте ему права на выполнение например командой chmod 755 sort.sh
3 - любым способом добавьте на панель или раб. стол (например в циннамон достаточно нажать на кнопках быстрого запуска правую кнопку, затем "добавить" и в выскочившем окне указать имя, файл, иконку)
Имею желание иметь всех желающих, но не имею желающих.

Аватара пользователя

Автор темы
hellonet
Сообщения: 263
Зарегистрирован: 11 окт 2016, 09:58
Решено: 2
Откуда: Новосибирск
Благодарил (а): 92 раза
Поблагодарили: 25 раз

Re: Окна каскадом

Сообщение hellonet » 18 окт 2016, 22:42

zuzabrik писал(а): любым способом добавьте на панель или раб. стол
Просто тупо перетащил созданный файл мышкой на панель задач. Образовалась кнопка запуска. Всё заработало. Огромное спасибо Chocobo и zuzabrik.

Аватара пользователя

Bill Williamson
Сообщения: 463
Зарегистрирован: 31 авг 2016, 10:38
Решено: 18
Благодарил (а): 172 раза
Поблагодарили: 97 раз

Re: Окна каскадом

Сообщение Bill Williamson » 19 окт 2016, 09:02

Кстати, в Windows 7 все окна (не свернутые в окна) открываются каскадом по умолчанию. Этого можно добиться в LM?

В сети
Аватара пользователя

Chocobo
Сообщения: 5523
Зарегистрирован: 27 авг 2016, 19:57
Решено: 129
Откуда: НН
Благодарил (а): 411 раз
Поблагодарили: 1434 раза

Re: Окна каскадом

Сообщение Chocobo » 19 окт 2016, 09:26

Bill Williamson, скриптованием или встраиванием в функциональность окружения (если оно модульное) можно добиться многого.
Но надо уже глубже интегрироваться с определенным DE, чтоб например перехватить вызов действия по которому необходимо что-то сделать с окошками. и простой однострочник обрастет десятками условий и костылей

Большой красивой и универсальной кнопки "сделать хорошо" - еще никто не придумал, в почти каждом окружении есть свои модули или расширения на тот или иной функционал.

А если нужного вдруг не оказалось - можно смело браться за напильник, в том случае, когда необходимость покрывает предстоящие трудозатраты :smile:

Аватара пользователя

Автор темы
hellonet
Сообщения: 263
Зарегистрирован: 11 окт 2016, 09:58
Решено: 2
Откуда: Новосибирск
Благодарил (а): 92 раза
Поблагодарили: 25 раз

Re: Окна каскадом

Сообщение hellonet » 21 окт 2016, 04:44

hellonet писал(а): В LM скрин делается сразу с 2-х моников и обрезать не знаю чем.
Вопрос решился установкой пакета Shutter. Отличная штука.
Bill Williamson писал(а): Кстати, в Windows 7 все окна (не свернутые в окна) открываются каскадом по умолчанию. Этого можно добиться в LM?
Да собственно и не нужно. Даже если на экране ералаш из окон скрипт Chocobo всё расставляет по местам. Отличная вещь (с радостью повторюсь).

Аватара пользователя

Dja
Сообщения: 2764
Зарегистрирован: 27 авг 2016, 17:03
Решено: 11
Откуда: Воскресенск
Благодарил (а): 391 раз
Поблагодарили: 283 раза

Re: Окна каскадом

Сообщение Dja » 04 ноя 2016, 18:28

1 - зачем каскад когда есть панель задач?
2 - в кедах есть замечательная вещь - левый верхний угол. Все окна показывает и не каскадом, а лучше - выбирай.
3 - для еще бОльшего удобства на панели задач можно сделать only иконки (KDE, xfce) вполне позволяют. Остальное - не от мира сего. имхо. Хотя сам в крысе разочаровался. С другой стороны такое наблюдалось только у меня. Да и вообще это не по теме уже ) По сабжу всё сказал.
Новичок? - ознакомься с правилами

В поисках истины :grabli:

Вернуться в «Параметры и оптимизация»