Автор Тема: Разные обои на рабочих столах  (Прочитано 15227 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн Alex_ander

  • Постоялец
  • ***
  • Автор темы
  • Сообщений: 122
Разные обои на рабочих столах
« : Октябрь 03, 2010, 21:35:05 »
Можно ли установить разные обои на каждый рабочий стол или даже сменить тему оформления?
  RUNTU RULIT  LENOVO G550 T4400 2Gb

Оффлайн Universe

  • Global Moderator
  • *****
  • Сообщений: 270

Оффлайн GO

  • Прохожий
  • *
  • Сообщений: 8
Re: Разные обои на рабочих столах
« Ответ #2 : Декабрь 17, 2012, 19:19:27 »
Можно ли установить разные обои на каждый рабочий стол или даже сменить тему оформления?

Есть такая GUI-шная штуковина wallpapoz,
почитать можно тут,
а установить отсюда

Но у меня
runtu-lite-12.04_20121109 (in VirtualBox)
и это чудо не завелось...
(говорят, оно для gnoma и xfce)

И замутил bash-скриптик,
в основе которого тот же принцип.
То есть, статических обоев нет, но при переходе от одного стола к другому
обои соответственно изменяются

#!/bin/bash
# на компизе не испытано!!!

# переменная для сравнения соответствия номеров картинки и текущего рабочего стола
n=0
# пути к картинкам соответствующих рабочих столов (нумерация с '0')
# если больше столов - добавить IMG4=... и т.д.
IMG0=<путь_к_картинке_для_стола_0>
IMG1=<путь_к_картинке_для_стола_1>
IMG2=<путь_к_картинке_для_стола_2>
IMG3=<путь_к_картинке_для_стола_3>

# функция для установки фонового изображения :
WLLPPR ()
{
# команда для установки фонового изображения (входной аргумент задается позиционным параметром $1)
   mateconftool-2 -t str -s /desktop/mate/background/picture_filename "$1" # для mate
#  gconftool-2 -t str -s /desktop/gnome/background/picture_filename "$1" # для gnome
#  feh --bg-scale "$1" # для openbox,..
 }
 
#  в цикле
while true; do
# определить номер текущего рабочего стола
   N=$(wmctrl -d | grep \* | awk '{print $1}')
#  или так (если не установлена утилита wmctrl):
# N=$(xprop -root _NET_CURRENT_DESKTOP | fgrep '_NET_CURRENT_DESKTOP(CARDINAL) ='| awk '{print $3}')
#  выполнять проверку: если нет соответствия номера текущего рабочего стола и картинки, то
   if (($N != $n));then
# изменить номер картинки на номер текущего рабочего стола
     n=$N
# и установить соответствующую картинку фоном текущего рабочего стола
     case $n in
     0)
     WLLPPR $IMG0
     ;;
     1)
     WLLPPR $IMG1     
     ;;
     2)
     WLLPPR $IMG2
     ;;
     3)
     WLLPPR $IMG3 
     ;;
# если больше столов - добавить 4)... и т.д.     
     esac
   fi
   sleep 1
#  через секунду повторить проверку   
done

Делаем файл исполняемым и ставим в автозагрузку!
Правда, процесс смены обоев подтормаживает...
Думаю, если бы картинки брались не с диска, а непосредственно из памяти,
то смена обоев при переходе со стола на стол проходила бы незаметно...

Может кто подскажет, как реализовать кеширование обоев в оперативную память?  ;)

Кое-что брал отсюда:
 http://forums.linuxmint.com/viewtopic.php?f=110&t=110927
 http://crunchbang.org/forums/viewtopic.php?pid=44444%23p44444#p44444
 http://ubuntuforums.org/showthread.php?t=1797174
 http://execbit.ru/2011/06/10/wmctrl/

Оффлайн Feduka

  • Активист
  • ****
  • Сообщений: 428
  • Меняю путина на Ходорковского
Re: Разные обои на рабочих столах
« Ответ #3 : Декабрь 17, 2012, 21:01:53 »
Может кто подскажет, как реализовать кеширование обоев в оперативную память?  ;)
http://serg-markov.livejournal.com/884633.html
2:5020/655.11

Оффлайн GO

  • Прохожий
  • *
  • Сообщений: 8
Re: Разные обои на рабочих столах
« Ответ #4 : Декабрь 18, 2012, 21:31:08 »
Может кто подскажет, как реализовать кеширование обоев в оперативную память?  ;)
http://serg-markov.livejournal.com/884633.html

Спасибо, попробовал описанный там вариант... ;)

Создал папки  ~/.ramdisk-archive и ~/.ramdisk

Прописал в /etc/fstab
Цитировать (выделенное)
tmpfs /home/rl/.ramdisk tmpfs size=50m 0

Отмонтировал что было
sudo umount -a
Успешно примонтировал ~/.ramdisk
sudo mount -a Проверил
Файл.система   1K-блоков Использовано Доступно Использовано% Cмонтировано в
/dev/sda1       20238996      2567572 16643328           14% /
udev              188960            4   188956            1% /dev
tmpfs              78908          740    78168            1% /run
tmpfs              51200            0    51200            0% /home/rl/.ramdisk


Перенес в ~/.ramdisk обойные картинки и вернул  на родное место ссылки на них

Создал файл и сделал его исполняемым
/etc/rc.local_shutdown
rsync -a /home/rl/.ramdisk/ /home/rl/.ramdisk-archive
Прописал в /etc/rc.local
rsync -a /home/rl/.ramdisk-archive/ /home/rl/.ramdisk
Установил rsync
sudo apt-get install rsync
Перезагрузился, поклацал по рабочим столам...
Особого прироста скорости смены обоев не ощутил.

По рекомендации автора
Цитировать (выделенное)
Переносим (не копируем) в /home/user/.ramdisk все что хотим ... вообще можно все что угодно запихнуть, все настройки в хомяке
попробовал сначала закинуть туда еще и ~/.mateconf (и на родное место вернул ссылку)- после перезагрузки тема стала дефолтной, окна стали открываться оочень медленно, мой скрипт смены обоев не сработал, запустил его из терминала , получил
Ошибка установки значения: Невозможно перезаписать существующее значение, предназначенное только для чтения: Невозможно перезаписать существующее значение, предназначенное только для чтения: Значение для «/desktop/mate/background/picture_filename» установлено в источнике только-для-чтения в начале пути конфигурации
, потом выпало
Произошла ошибка системы MateConf: Отсутствуют доступные базы данных для сохранения вашей конфигурации: Невозможно сохранить значения ключа «/apps/caja/preferences/navigation_window_saved_maximized», так как сервер конфигурации не имеет записываемых баз данных. Есть несколько общих причин этой проблемы: 1) ваш файл пути конфигурации /etc/mateconf/2/path не содержит базы данных или не был найден 2) были ошибочны созданы два процесса mateconfd 3) ваша операционная система неправильно сконфигурирована, и блокировка файлов NFS не работает в домашнем каталоге или 4) ваша клиентcкая машина NFS сломалась и правильно не уведомила при перезагрузке сервер, что блокировки файлов должны быть сброшены. Если запущены два процесса mateconfd (или было два в момент запуска второго), завершите работу, убейте все копии mateconfd и войдите обратно. Если остались старые блокировки, удалите ~/.mateconf*/*lock. Возможно, проблема в попытке использовать MateConf с двух машин одновременно, и MateCORBA всё ещё в конфигурации по умолчанию, которая запрещает удалённые соединения CORBA - поместите "ORBIIOPIPv4=1" в /etc/matecorbarc. Как всегда, проверьте user.* в системном журнале об ошибках mateconfd. Может быть только один процесс mateconfd на домашний каталог, и он должен владеть блокировкой в ~/.mateconfd и блокировками в индивидуальных хранилищах как ~/.mateconf
Не стал разбираться и вернул ~/.mateconf назад
Провернул тот же финт с ~/.config. Тут опять не срослось...-голый Openbox...Вернул ~/.config назад
Кроме того заметил, что не успевает отрабатывать /etc/rc.local_shutdown, то есть машина выключается быстрее, чем должна произойти синхронизация папок /home/rl/.ramdisk/ и /home/rl/.ramdisk-archive. Пришлось прописать /etc/rc.local_shutdown в конфиге
/etc/lightdm/lightdm.conf: ПоказатьСкрыть
[SeatDefaults]
user-session = openbox
...
session-cleanup-script = /etc/rc.local_shutdown
...

Короче... фокус не удался... :-\ или что я делал не так?

Оффлайн HsH

  • Administrator
  • *****
  • Сообщений: 2983
Re: Разные обои на рабочих столах
« Ответ #5 : Декабрь 18, 2012, 22:37:28 »
фокус не удался... :-\ или что я делал не так?

1. Для какого дистрибутива написан мануал? По умолчанию файл /etc/rc.local_shutdown не существует и не выполняется.

2. У вас
tmpfs              78908          740    78168            1% /run
tmpfs              51200            0    51200            0% /home/rl/.ramdisk
используется системой скорее всего только первый. Либо закомментируйте его, но в этом случае возможны проблемы с компонентами системы, которые используют /run.

3. Вы делали симлинки действующих каталогов из созданного расположения ~/.ramdisk на их штатное расположение?

Оффлайн GO

  • Прохожий
  • *
  • Сообщений: 8
Re: Разные обои на рабочих столах
« Ответ #6 : Декабрь 19, 2012, 13:56:08 »
фокус не удался... :-\ или что я делал не так?

1. Для какого дистрибутива написан мануал? По умолчанию файл /etc/rc.local_shutdown не существует и не выполняется.

2. У вас
tmpfs              78908          740    78168            1% /run
tmpfs              51200            0    51200            0% /home/rl/.ramdisk
используется системой скорее всего только первый. Либо закомментируйте его, но в этом случае возможны проблемы с компонентами системы, которые используют /run.

3. Вы делали симлинки действующих каталогов из созданного расположения ~/.ramdisk на их штатное расположение?

1. Для какого дистрибутива - автор об этом умалчивает...  Оно и понятно, ведь он писал
Цитировать (выделенное)
Для себя на память :-)
Насчет /etc/rc.local_shutdown -мдаа. Сейчас сделал по Howto run local scripts on systemstartup and/or shutdown
/etc/init.d/rc.local: ПоказатьСкрыть
#! /bin/sh
### BEGIN INIT INFO
# Provides:          rc.local
# Required-Start:    $local_fs $bootlog
# Required-Stop:     
# Default-Start:     S
# Default-Stop:      0 6
# Short-Description: Run /etc/rc.local if it exist
# Description:       This script executes commands in /etc/rc.local
#                    at startup, if /etc/rc.local exists and
#                    executes /etc/rc.local.shutdown when the
#                    system goes down for shutdown or reboot.
### END INIT INFO


PATH=/sbin:/usr/sbin:/bin:/usr/bin

. /lib/init/vars.sh
. /lib/lsb/init-functions

do_start() {
    if [ -x /etc/rc.local.startup ]; then
            [ "$VERBOSE" != no ] && log_begin_msg "Running local boot scripts (/etc/rc.local)"
        /etc/rc.local.startup
        ES=$?
        [ "$VERBOSE" != no ] && log_end_msg $ES
        return $ES
    fi
}
do_stop() {
    if [ -x /etc/rc.local.shutdown ]; then
            [ "$VERBOSE" != no ] && log_begin_msg "Running local boot scripts (/etc/rc.local)"
        /etc/rc.local.shutdown
        ES=$?
        [ "$VERBOSE" != no ] && log_end_msg $ES
        return $ES
    fi
}

case "$1" in
    start)
    do_start
        ;;
    restart|reload|force-reload)
        echo "Error: argument '$1' not supported" >&2
        exit 3
        ;;
    stop)
    do_stop
        ;;
    *)
        echo "Usage: $0 start|stop" >&2
        exit 3
        ;;
esac
/etc/rc.local.startup: ПоказатьСкрыть
#!/bin/sh -e
#
# rc.local
#
# This script is executed at the end of each multiuser runlevel.
# Make sure that the script will "exit 0" on success or any other
# value on error.
#
# In order to enable or disable this script just change the execution
# bits.
#
# By default this script does nothing.

# восстановление ~/.ramdisk из архива ~/.ramdisk-archive/
rsync -a /home/rl/.ramdisk-archive/ /home/rl/.ramdisk

exit 0
/etc/rc.local.shutdown: ПоказатьСкрыть
#!/bin/sh -e
#
# rc.local
#
# This script is executed at shutdown (rc0) and reboot (rc6) with argument "stop".
# Make sure that the script will "exit 0" on success or any other
# value on error.
#
# In order to enable or disable this script just change the execution
# bits.
#
# By default this script does nothing.

# сохранение ~/.ramdisk в архив ~/.ramdisk-archive/
rsync -a /home/rl/.ramdisk/ /home/rl/.ramdisk-archive

exit 0
 
2. Это было до того, как в .ramdisk были помещены файлы.tmpfs              51200            0    51200            0% /home/rl/.ramdiskСейчас
/dev/sda1       20238996      2552972 16657928           14% /
udev              188960            4   188956            1% /dev
tmpfs              78908          740    78168            1% /run
none                5120            0     5120            0% /run/lock
none              197260            0   197260            0% /run/shm
tmpfs              51200         4064    47136            8% /home/rl/.ramdisk

3.Симлинки действующих каталогов из созданного расположения ~/.ramdisk на их штатное расположение делал.

      ;)  ~/.ramdisk в tmpfs  работает (читается, сохраняется, восстанавливается после перезагрузки) . Но вот чего в память положить, чтобы быстрей обои менялись? (сечас тут .config, .mateconf, .mateconfd, картинки обоев и скрипт для их смены)