Страница 1 из 1

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

Добавлено: 18 окт 2016, 13:18
hellonet
Можно ли сделать окна каскадом в Linux Mint? Как, например, в винде? Много гуглил, но нигде толком не нашёл.

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

Добавлено: 18 окт 2016, 13:37
BadBird
Через компиз вроде бы...или i3wm

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

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

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

Добавлено: 18 окт 2016, 13:49
BadBird
BadBird писал(а): или i3wm
Вот как это реализовал я в i3

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

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

Добавлено: 18 окт 2016, 14:52
Bill Williamson
Chocobo писал(а): А как выглядят "окна каскадом" там? Чтоб понять что ищем)
Наверное, имеется ввиду, чтоб было вот так:
1.gif

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

Добавлено: 18 окт 2016, 15:46
zuzabrik
Искаропки вроде не встречал нигде :) Как и за полтора десятка лет никогда не нажимал эту кнопку в винде :) Разве что пару раз из любопытства :)

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

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

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

Добавлено: 18 окт 2016, 18:04
Chocobo
Ну, подобного эффекта можно добиться где угодно. :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
Все окна выстроены по позициям и приведены к единому размеру.

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

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

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

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

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

Добавлено: 18 окт 2016, 22:42
zuzabrik
Окна каскадом, скриншоты экрана с мобилки... Кто вы, загадочный человек? :)

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

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

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

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

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

Добавлено: 18 окт 2016, 23:13
Chocobo
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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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