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

Как правильно задавать вопросы Правильно сформулированный вопрос и его грамотное оформление способствует высокой вероятности получения достаточно содержательного и по существу ответа. Общая рекомендация по составлению тем: 1. Для начала воспользуйтесь поиском форума. 2. Укажите версию ОС вместе с разрядностью. Пример: LM 19.3 x64, LM Sarah x32 3. DE. Если вопрос касается двух, то через запятую. (xfce, KDE, cinnamon, mate) 4. Какое железо. (достаточно вывод inxi -Fxz в спойлере (как пользоваться спойлером смотрим здесь)) или же дать ссылку на hw-probe 5. Суть. Желательно с выводом консоли, логами. 6. Скрин. Просьба указывать 2, 3 и 4 независимо от того, имеет ли это отношение к вопросу или нет. Так же не забываем об общих правилах Как пример вот
Закрыто
Аватара пользователя

Автор темы
hellonet
Сообщения: 2847
Зарегистрирован: 11 окт 2016, 12:58
Решено: 11
Откуда: Новосибирск
Благодарил (а): 1079 раз
Поблагодарили: 467 раз
Контактная информация:

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

#1

18 окт 2016, 13:18

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

Решение Chocobo » 18 окт 2016, 23: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
Сообщения: 3066
Зарегистрирован: 09 сен 2016, 21:08
Решено: 5
Откуда: Грозный
Благодарил (а): 174 раза
Поблагодарили: 568 раз
Контактная информация:

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

#2

18 окт 2016, 13:37

Через компиз вроде бы...или i3wm

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

Chocobo
Сообщения: 10015
Зарегистрирован: 27 авг 2016, 22:57
Решено: 215
Откуда: НН
Благодарил (а): 815 раз
Поблагодарили: 3007 раз
Контактная информация:

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

#3

18 окт 2016, 13:43

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

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

BadBird
Сообщения: 3066
Зарегистрирован: 09 сен 2016, 21:08
Решено: 5
Откуда: Грозный
Благодарил (а): 174 раза
Поблагодарили: 568 раз
Контактная информация:

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

#4

18 окт 2016, 13:49

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

https://youtu.be/uLecxV-09dM

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

Bill Williamson
Сообщения: 928
Зарегистрирован: 31 авг 2016, 13:38
Решено: 34
Благодарил (а): 288 раз
Поблагодарили: 249 раз
Контактная информация:

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

#5

18 окт 2016, 14:52

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

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

zuzabrik
Сообщения: 1744
Зарегистрирован: 29 авг 2016, 12:08
Решено: 20
Благодарил (а): 108 раз
Поблагодарили: 521 раз
Контактная информация:

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

#6

18 окт 2016, 15:46

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

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

Автор темы
hellonet
Сообщения: 2847
Зарегистрирован: 11 окт 2016, 12:58
Решено: 11
Откуда: Новосибирск
Благодарил (а): 1079 раз
Поблагодарили: 467 раз
Контактная информация:

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

#7

18 окт 2016, 17:14

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

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

Chocobo
Сообщения: 10015
Зарегистрирован: 27 авг 2016, 22:57
Решено: 215
Откуда: НН
Благодарил (а): 815 раз
Поблагодарили: 3007 раз
Контактная информация:

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

#8

18 окт 2016, 18: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
Сообщения: 2847
Зарегистрирован: 11 окт 2016, 12:58
Решено: 11
Откуда: Новосибирск
Благодарил (а): 1079 раз
Поблагодарили: 467 раз
Контактная информация:

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

#9

18 окт 2016, 21:53

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

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

zuzabrik
Сообщения: 1744
Зарегистрирован: 29 авг 2016, 12:08
Решено: 20
Благодарил (а): 108 раз
Поблагодарили: 521 раз
Контактная информация:

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

#10

18 окт 2016, 22:42

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

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

BadBird
Сообщения: 3066
Зарегистрирован: 09 сен 2016, 21:08
Решено: 5
Откуда: Грозный
Благодарил (а): 174 раза
Поблагодарили: 568 раз
Контактная информация:

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

#11

18 окт 2016, 22:50

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

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

Автор темы
hellonet
Сообщения: 2847
Зарегистрирован: 11 окт 2016, 12:58
Решено: 11
Откуда: Новосибирск
Благодарил (а): 1079 раз
Поблагодарили: 467 раз
Контактная информация:

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

#12

18 окт 2016, 22:52

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

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

Chocobo
Сообщения: 10015
Зарегистрирован: 27 авг 2016, 22:57
Решено: 215
Откуда: НН
Благодарил (а): 815 раз
Поблагодарили: 3007 раз
Контактная информация:

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

#13

18 окт 2016, 23: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
Сообщения: 2847
Зарегистрирован: 11 окт 2016, 12:58
Решено: 11
Откуда: Новосибирск
Благодарил (а): 1079 раз
Поблагодарили: 467 раз
Контактная информация:

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

#14

19 окт 2016, 00:42

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

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

zuzabrik
Сообщения: 1744
Зарегистрирован: 29 авг 2016, 12:08
Решено: 20
Благодарил (а): 108 раз
Поблагодарили: 521 раз
Контактная информация:

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

#15

19 окт 2016, 00:56

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

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

Автор темы
hellonet
Сообщения: 2847
Зарегистрирован: 11 окт 2016, 12:58
Решено: 11
Откуда: Новосибирск
Благодарил (а): 1079 раз
Поблагодарили: 467 раз
Контактная информация:

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

#16

19 окт 2016, 01:42

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

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

Bill Williamson
Сообщения: 928
Зарегистрирован: 31 авг 2016, 13:38
Решено: 34
Благодарил (а): 288 раз
Поблагодарили: 249 раз
Контактная информация:

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

#17

19 окт 2016, 12:02

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

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

Chocobo
Сообщения: 10015
Зарегистрирован: 27 авг 2016, 22:57
Решено: 215
Откуда: НН
Благодарил (а): 815 раз
Поблагодарили: 3007 раз
Контактная информация:

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

#18

19 окт 2016, 12:26

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

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

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

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

Автор темы
hellonet
Сообщения: 2847
Зарегистрирован: 11 окт 2016, 12:58
Решено: 11
Откуда: Новосибирск
Благодарил (а): 1079 раз
Поблагодарили: 467 раз
Контактная информация:

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

#19

21 окт 2016, 07:44

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

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

Dja
Сообщения: 6875
Зарегистрирован: 27 авг 2016, 20:03
Решено: 30
Откуда: Voskresensk
Благодарил (а): 1310 раз
Поблагодарили: 724 раза
Контактная информация:

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

#20

04 ноя 2016, 21:28

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

Закрыто

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

Кто сейчас на конференции

Сейчас этот форум просматривают: Yandex [Bot] и 1 гость