Блог Александра Башкирова

ИТ и бизнес, компьютеры и ПО, фото, программирование и просто мысли…
Этот сайт в основном посвящен тому, что мне интересно вне работы. Ведется в порядке хобби.
Все изложенное на сайте - мое частное оценочное мнение и не может быть истолковано иначе.
Со всеми вытекающими из этого последствиями.

Linux

Подписаться на эту рубрику по RSS

Установка сканера в Ubuntu

Просмотров: 11215Комментарии: 8
Linux

Расскажу про свой небольшой опыт подключения сканера на Linux-систему на базе  Ubuntu (Linux Mint).

Для начала - немного теории. В Linux за сканирование отвечает sane - опенсорсная подсистема, "умеющая" работать со сканером.

Итак, для того, чтобы подключить сканер к Linux, необходимо:

  • Сходить на http://sane-project.org , а точнее - на http://sane-project.org/sane-supported-devices.html - это список поддерживаемого оборудования. Выбрать там нужный сканер. (Если сканера там нет - то вам скорее всего не повезло)
  • Установить пакеты sane, xsane (sudo apt-get install sane xsane)
  • Запустить из меню XSane Image Scanning Programm ... Всё!

Как пишут в наборах радиоэлектроникик: "равильное собранное устройство в настройке не нуждается". Так вот, правильно подобранная пара sane - сканер в настройке не нуждается. Все не просто, а... очень просто.

Ну и оффтопик: я купил HP ScanJet 3500c. Он был помечен как "Good" - и, в общем, со своей основной функцией - сканировать - справляется на отлично. Медленно правда, особенно на 1200dpi, зато CCD датчик ... в общем, доволен я :)

Про awesome: настройка и использование

Просмотров: 4230Комментарии: 0
Linux

В общем, я посмотрел на DWM, мне стало печально (ну не дело "настраивать" любое ПО через правки исходных кодов... не дело), стал смотреть в сторону альтернатив. Нашел awesome. Это вроде как  тот же DWM, только более гибкий и настраиваемый. Правда, не без странностей: конфиги его написаны на малораспространенном языке программирования lua. Зато - их великое множество. Хорошая документация, и (о чудо после dwm'a) - для конфигурирования не надо лезть в исходный код и перекомпилировать приложение!

Ну, что же... проверим.

Ставим awesone:

alexander@alexander-VPCP11S1R:~$ sudo apt-get intall awesome awesome-extra

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

Создаем папку настроек:

alexander@alexander-VPCP11S1R:~$ mkdir ~/.config/awesome
alexander@alexander-VPCP11S1R:~$ ls ~/.config/ | grep awesome
awesome

Копируем в нее файл автостарта openbox (он уже есть - чего по новой-то городить?)

alexander@alexander-VPCP11S1R:~$ cp ~/.config/openbox/autostart ~/.config/awesome/autostart

Смотрим, что в нем:

alexander@alexander-VPCP11S1R:~$ cat ~/.config/awesome/autostart
/home/alexander/My-Scripts/xrandr.sh
if which tint2 >/dev/null 2>&1; then
  (sleep 1 && xcompmgr) &
  (sleep 2 && tint2) &
  (sleep 5 && xxkb) &
  (sleep 5 && volumeicon ) &
fi
pcmanfm --desktop &
(sleep 2 && setxkbmap -layout "us,ru" -option "grp:alt_shift_toggle") &

Малость редактируем:

alexander@alexander-VPCP11S1R:~$ gedit ~/.config/awesome/autostart

Привоим к виду:

/home/alexander/My-Scripts/xrandr.sh
xxkb
setxkbmap -layout "us,ru" -option "grp:alt_shift_toggle"
volumeicon

Смотрим, что у нас в xrandr.sh (это только для sony vaio):

alexander@alexander-VPCP11S1R:~$ cat ~/My-Scripts/xrandr.sh 
#!/bin/bash
xrandr --newmode "1280x600_60.00"   61.00  1280 1328 1456 1632  600 603 613 624 -hsync +vsync
xrandr --newmode "1600x768_60.00"  100.25  1600 1688 1848 2096  768 771 781 798 -hsync +vsync
xrandr --addmode LVDS-0 1280x600_60.00
xrandr --addmode LVDS-0 1600x768_60.00
xrandr --output LVDS-0 --mode 1280x600_60.00

Во всех руководствах по awesome пишут, что работать надо с локальным конфигом, так что делаем его:

alexander@alexander-VPCP11S1R:~$ cp /etc/xdg/awesome/rc.lua ~/.config/awesome/rc.lua

Теперь можно приступать непосрественно к автостарту

В начало rc.lua вписываем:

-------------------------------------------------------------------------------
--    Формируем список автозапуска
-------------------------------------------------------------------------------
local autostart_list = {}
-- Открываем файл списка для чтения
local f = io.open("/home/alexander/.config/awesome/autostart", "r")
-- Число прочитанных команд
local num_cmd = 0
-- Читаем команды в список и считаем их
for line in f:lines() do
  autostart_list[num_cmd] = line
  num_cmd = num_cmd + 1
end
-------------------------------------------------------------------------------
-- Конец списка автозапуска
-------------------------------------------------------------------------------

И в конец rc.lua

------------------------------------------------------------------------------
--    Автозапуск (этот код ставим в конце rc.lua)
------------------------------------------------------------------------------
-- Перебираем список автозапуска и стратуем всё с паузой в три секунды
for i = 0, num_cmd - 1 do
  awful.util.spawn_with_shell(autostart_list[i] .. " && sleep 3")
end
------------------------------------------------------------------------------
--    Конец: Автозапуск (этот код ставим в конце rc.lua)
------------------------------------------------------------------------------

(решение отсюда: http://archlinux.org.ru/forum/topic/11748/?page=4)

Вообще много способов описано тут: https://awesome.naquadah.org/wiki/Autostart/ru - я взял самый удобный мне, чтобы все приложения автозапуска были бы в отдельном файле.

Раз уж мы работаем с rc.lua, то заодно и обои поправим.

Копируем к себе файл темы:

alexander@alexander-VPCP11S1R:~$ cp /usr/share/awesome/themes/default/theme.lua ~/.config/awesome/theme.lua

Открываем его

Ищем строку

theme.wallpaper_cmd = { "awsetbg /usr/share/awesome/themes/default/background.png" }

Закомментируем ее:

--theme.wallpaper_cmd = { "awsetbg /usr/share/awesome/themes/default/background.png" }

И вместо нее пишем:

theme.wallpaper_cmd = { "awsetbg /home/alexander/Изображения/Wallpapers/1372644-wp-1253020795739.jpg" }

Затем в rc.lua нахоим и меняем строчку темы:

beautiful.init("/usr/share/awesome/themes/default/theme.lua")

на

beautiful.init("/home/alexander/.config/awesome/theme.lua")

Еще немного украшательств: календарь при наведении на часы

В ~/.config/awesome кладем calendar2.lua со следующим содержанием:

    -- original code made by Bzed and published on <a href="http://awesome.naquadah.org/wiki/Calendar_widget" target="_blank" >http://awesome.naquadah.org/wiki/Calendar_widget</a>
    -- modified by Marc Dequ?nes (Duck) <Duck@DuckCorp.org> (2009-12-29), under the same licence,
    -- and with the following changes:
    --   + transformed to module
    --   + the current day formating is customizable
     
    local string = string
    --local print = print
    local tostring = tostring
    local os = os
    local capi = {
        mouse = mouse,
        screen = screen
    }
    local awful = require("awful")
    local naughty = require("naughty")
    module("calendar2")
     
    local calendar = {}
    local current_day_format = "<u>%s</u>"
     
    function displayMonth(month,year,weekStart)
            local t,wkSt=os.time{year=year, month=month+1, day=0},weekStart or 1
            local d=os.date("*t",t)
            local mthDays,stDay=d.day,(d.wday-d.day-wkSt+1)%7
     
            --print(mthDays .."\n" .. stDay)
            local lines = "  " --интервал перед днями неделями
            os.setlocale("ru_RU.utf8")
            for x=0,6 do
                    lines = lines .. os.date("%a ",os.time{year=2006,month=1,day=x+wkSt})
            end
           lines = lines .. "\n"-- .. os.date(" %V",os.time{year=year,month=month,day=1}) --Убираем номер недели
     
            local writeLine = 1
            while writeLine < (stDay + 1) do
                    lines = lines .. "    " --интервал перед первым числом, если оно не в начале недели
                    writeLine = writeLine + 1
            end
     
            for d=1,mthDays do
                    local x = d
                    local t = os.time{year=year,month=month,day=d}
                    if writeLine == 8 then
                            writeLine = 1
                            lines = lines .. "\n"-- .. os.date(" %V",t) --убираем номер недели
                    end
                    if os.date("%Y-%m-%d") == os.date("%Y-%m-%d", t) then
                            x = string.format(current_day_format, d)
                    end
                    if (#(tostring(d)) == 1) then
                            x = " " .. x --выравнивание между одно и двухзначными цифрами
                    end
                    lines = lines .. "  " .. x --интервал между числами
                    writeLine = writeLine + 1
            end
            local header = os.date("%B %Y\n",os.time{year=year,month=month,day=1})
            header = "          " .. header --выравниваем месяц и год по центру
            return header .. "\n" .. lines
    end
     
    function switchNaughtyMonth(switchMonths)
            if (#calendar < 3) then return end
            local swMonths = switchMonths or 1
            calendar[1] = calendar[1] + swMonths
            calendar[3].box.widgets[2].text = string.format('<span font_desc="%s">%s</span>', "monospace", displayMonth(calendar[1], calendar[2], 2))
    end
     
    function switchNaughtyGoToToday()
            if (#calendar < 3) then return end
            local swMonths = switchMonths or 1
            calendar[1] = os.date("*t").month
            calendar[2] = os.date("*t").year
           switchNaughtyMonth(0)
    end
     
    function addCalendarToWidget(mywidget, custom_current_day_format)
      if custom_current_day_format then current_day_format = custom_current_day_format end
     
      mywidget:add_signal('mouse::enter', function ()
            local month, year = os.date('%m'), os.date('%Y')
            calendar = { month, year,
            naughty.notify({
                    text = string.format('<span font_desc="%s">%s</span>', "monospace", displayMonth(month, year, 2)),
                    timeout = 0,
                    hover_timeout = 0.5,
                    screen = capi.mouse.screen
            })
      }
      end)
      mywidget:add_signal('mouse::leave', function () naughty.destroy(calendar[3]) end)
     
      mywidget:buttons(awful.util.table.join(
        awful.button({ }, 1, function()
            switchNaughtyMonth(-1)
        end),
        awful.button({ }, 2, switchNaughtyGoToToday),
        awful.button({ }, 3, function()
            switchNaughtyMonth(1)
        end),
        awful.button({ }, 4, function()
            switchNaughtyMonth(-1)
        end),
        awful.button({ }, 5, function()
            switchNaughtyMonth(1)
        end),
        awful.button({ 'Shift' }, 1, function()
            switchNaughtyMonth(-12)
        end),
        awful.button({ 'Shift' }, 3, function()
            switchNaughtyMonth(12)
        end),
        awful.button({ 'Shift' }, 4, function()
            switchNaughtyMonth(-12)
        end),
        awful.button({ 'Shift' }, 5, function()
            switchNaughtyMonth(12)
        end)
      ))
    end

Далее, в верх rc.lua добавляем

require("calendar2")

И после строки

mytextclock = awful.widget.textclock({ align = "right" })

вставялем

calendar2.addCalendarToWidget(mytextclock, "<span color='green'>%s</span>")

проверяем, всё работает!

Проблема: некоторые процессы запускаются по несколько раз.

Нашел функцию (http://www.linux.org.ru/forum/general/8424382)

-- {{{ Autoruns
function run_once(prg)
    if not prg then
        do return nil end
    end
    awful.util.spawn_with_shell('ps ux | grep -v grep | grep -F ' .. prg .. ' || ' .. prg .. ' &')
end

Еще одна очень интересная возможность awesome - теги.

Во-первых, их можно переименовать "под себя". Достаточно найти tags { names - и там исправить имена тегов.

Например:

 tags[s] = awful.tag({ "Main", "WWW", "IM", "Ed", "CMD", 6, 7, 8, 9 }, s, layouts[1])

Во-вторых, можно запускать приложения в тегах, для этого надо внести корректировки в секцию awful.rules.rules.

Например, чтобы firefox запускался во втором теге, надо написать:

  { rule = { class = "Firefox" },  properties = {tag = tags[1][2]}},

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

теперь очень важная на sony vaio функция: переключение разрешения. Для этого ищем globalkeys, и вносим туда:

awful.key({}, "#146", function () awful.util.spawn("~/My-Scripts/xrandr-change.sh") end)

проверяем. Работает!

Продолжение видимо следует...)))

Осваиваем DWM: проблемы и решения (настройка трея, запуск dwm через систему альтернатив)

Просмотров: 5837Комментарии: 0
Linux

Ссылка на аепрый пост, посвященный DWM: клиц

Итак, как мы помним, в DWM нет плагинов, но есть патчи. Таким образом, чтобы эХсперементировать над DWM с патчами, не трогая основной DWM из пакета, появляется задача: скомпилировать чистый DWM в папке пользователя и настроить его запуск, не трогая dwm из пакета.

Решение:

Скачиваем исходные коды по ссылке http://dl.suckless.org/dwm/

Распаковываем в ~/dwm, переходим в него, делаем make, получаем ошибку:

alexander@alexander-ThinkPad-X201 ~ $ cd ~/dwm
alexander@alexander-ThinkPad-X201 ~/dwm $ make
dwm build options:
CFLAGS   = -std=c99 -pedantic -Wall -Wno-deprecated-declarations -Os -I/usr/X11R6/include -I/usr/X11R6/include/freetype2 -D_BSD_SOURCE -D_POSIX_C_SOURCE=2 -DVERSION="6.1" -DXINERAMA
LDFLAGS  = -s -L/usr/X11R6/lib -lX11 -lXinerama -lfontconfig -lXft
CC       = cc
CC drw.c
drw.c:5:22: fatal error: X11/Xlib.h: Нет такого файла или каталога
 #include <x11 xlib.h="">
                      ^
compilation terminated.
make: *** [drw.o] Ошибка 1

Лечим:

sudo apt-get install libx11-dev

Опять получаем ошибку, но уже другую:

drw.c:6:25: fatal error: X11/Xft/Xft.h: Нет такого файла или каталога

лечим:

sudo apt-get install libxft-dev

получаем:

/usr/include/X11/Xft/Xft.h:39:22: fatal error: ft2build.h: Нет такого файла или 
каталога

пробуем: make

получаем:

/usr/include/X11/Xft/Xft.h:39:22: fatal error: ft2build.h: Нет такого файла или каталога

лечим:

sudo apt-get install libfreetype6-dev

Этот файл лежит в /usr/include/freetype2

Правим config.mk

Находим строчку: INCS = -I${X11INC} -I${FREETYPEINC}

Правим: INCS = -I${X11INC} -I${FREETYPEINC} -I/usr/include/freetype2

Пробуем make

получаем:

X11/extensions/Xinerama.h: Нет такого файла или каталога

Но в config.mk говорится, что Xinerama, comment if you don't want it - так что ищем строки

# Xinerama, comment if you don't want it
XINERAMALIBS  = -lXinerama
XINERAMAFLAGS = -DXINERAMA

и комментируем их

пробуем: make

Ура! Все скомпилировалось :)

Теперь патч,который выводит системный трей

Скачиваем его: http://dwm.suckless.org/patches/dwm-6.1-systray.diff (для версии 6.1)

Патчим:

patch < dwm-6.1-systray.diff

Получаем ошибку:

1 out of 33 hunks FAILED -- saving rejects to file dwm.c.rej

Ручками правим в пропатченном dwm.c строку 663: с XMoveResizeWindow(dpy, m->barwin, m->wx, m->by, m->ww, bh); на resizebarwin(m);

Компилируем: make

Все ок.

Теперь задача номер два: запустить наш DWM при входе. Для этого нам поможет

встроенная в ubuntu система альтернатив

.

Добавляем в систему альтернативу. Смотрим, где располагается текущий dwm:

alexander@alexander-ThinkPad-X201 ~ $ which dwm

/usr/bin/dwm

Добавляем альтернативу при помощи ключа --install утилиты update-alternatives (для памяти:   --install <ссылка> <имя> <путь> <приоритет>)

alexander@alexander-ThinkPad-X201 ~ $ sudo update-alternatives --install /usr/bin/dwm dwm /home/alexander/dwm/dwm 1065
[sudo] password for alexander: 
update-alternatives: используется /home/alexander/dwm/dwm для предоставления /usr/bin/dwm (dwm) в автоматический режим

Собственно, смотрим, что получилось... (выходим из текущего WM, и запускаем DWM)

Трей есть!

Далее, если надо вдруг удалить альтернативу, то используем ключ   --remove

  --remove <имя> <путь>

В данном случае:

alexander@alexander-ThinkPad-X201 ~ $ sudo update-alternatives --remove dwm /home/alexander/dwm/dwm
[sudo] password for alexander: 
update-alternatives: используется /usr/bin/dwm.default для предоставления /usr/bin/dwm (dwm) в автоматический режим

Для истории:

--config - настраивает альтернативу. Например, sudo update-alternatives --config x-www-browser - может сменить браузер по умолчанию.

ls -al /etc/alternatives/ - посмотреть список файлов-ссылок на альтернативы

Основные ссылки:

editor — редактор текста (типа nano, vi, vim, emacs)

ftp — ftp-клиент

x-cursor-theme — тема курсора

x-session-manager — графическая сессия (kde, gnome, openbox)

x-terminal-emulator — эмулятор терминала

x-window-manager — оконный менеджер (kwin, metacity, openbox)

x-www-browser — веб-браузер

Ну и напоследок, так сказать - выводы про dwm.

А выводы немного неутешительны. Несмотря на то, что эксперимент достаточно удачен, рано или поздно - патчи войдут в конфликт друг с другом, и будет "весело" - в том смысле, что разгребать вручную кучу diff-файлов удовольствие, с моей точки зрения ниже среднего. Так что посмотрим в сторону других тайлинговых альтернатив dwm...

Осваиваем DWM: проблемы и решения (как выйти из сеанса пользователя через консоль, автозапуск в DWM и т.д.)

Просмотров: 4440Комментарии: 0
Linux

Меня что-то торкнуло в сторону тайлинговых WM (windows manager, менеджер окон). Идея понравилась :) особенно на широкоформатном дисплее ноутбука... правда, есть одно "но": как правило, настройке эти DM подвергаются достаточно сложно. Начать "смотреть" решил с "самого простого" - DWM.

Оказалось, правда, что он самый сложный. Потому что настройка его сводится к измнению заголовочного C-файла, и перекомпиляции. Афигеть! Но "just for fun" попробовать стоит.

В общем, я буду потихоньку описывать тут - что сделано, что как решил...

Итак, первое. Вы установили DWM (ставится из репозиториев Убунты) и зашли в него. Посмотрели. Захотели что-нибудь запустить... а как - непонятно: меню нет, значков нет, ничего нет! Мышка есть - но зачем она, непонятно.

Да, DWM управляется с клавиатуры. И самое первое, что надо запомнить - это Shift-Alt-Enter. Запуск терминала. Кроме того, DWM поддерживает Dmenu - удобная вещь для запуска разных приложений. Вызывается через Alt-P. Alt-Num - переходы по "тегам" (9 областей). Alt-Shift-c - закрыть активное окно.

Второе. Вы захотели выйти из DWM.

Решается двумя путями:

1) Alt-Shift-q - закрыть dwm (штатная возможность DWM, ни за что бы не догадался).

2) Воспользоваться странным, но универсальным способом: killall -u `whoami` (я вообще себе в .bashrc прописал alias logoff='killall -u `whoami`' и использую logoff из консоли).

Пояснение: для Linux Mint (и подозреваю Убунты) - эта команда закрывает все процессы текущего пользователя, то есть выкидывает в окно логина. Потенциально это опасно, т.к. может быть фоном что-то запущено... и не отработано... в общем, на свой страх и риск. Тем не менее - это хороший работающий способ выйти из сеанса пользователя из консоли, для WM, которые этого не поддерждивают явно.

Третье. Обоев тоже нет, а среда графическая.

Ну, тут вроде должно быть просто: есть feh, есть nitrogen (я лично предпочитаю его)... но вот засада: нет в DWM startup скриптов. Никаких. Вообще!

Что в таком случае делают тру-линуксодиды? Правильно, используют .xinitrc (лично я давно не использовал этот как мне казалось - рудимнет, на чём и погорел, но об этом ниже). Так вот, раньше как было: в папке пользователя создаешь .xinitrc - пишешь туда, что нужно, и вуаля, оп! всё работает! Но, как выяснилось .xinitrc - "не работает". Теперь автостарт при старте иксов подхватывает ~/.xsessionrc - беда не велика, будем работать с ним.

Дальше - больше и интереснее. Если просто прописать в .xsessionrc - nitrogen --restore, то обои "из нитрогена" будут "переписывать" обои используемых WM. Для обоев может и не критично, а вот разнести запуск каких-то специфических для WM вещей хотелось бы... В итоге родилось такое вот извращенское решение:

(sleep 5

if [ `ps -aux | grep '0:00 dwm' | wc -l` -eq 2 ] ;

then

  nitrogen --restore

fi;) &

Тут, кстати, надо сделать пару пояснений. Идея в том, чтобы после того, как загрузится DWM (или другой WM) - убедиться что загружен именно DWM, и, если это так - провести нужные нам запуски (в данном примере - только нитроген). Задержка в 5 секунд нужна, чтобы DWM загрузился (на самом деле, это очень быстрая и легкая среда - грузится намного быстрее, секунды за 3. Остальные 2 - страховка).

Ну и для памяти: ps -aux | grep xfce-session - позволяет узнать, запущен ли xfce в данный момент (может, кому пригодится).

Продолжение наверное следует :)

Вышел Linuux Mint 18

Просмотров: 2795Комментарии: 0
Linux

30/06/2016 вышла очередная (18ая) версия моего любимого inux-дистрибутива - Linux Mint.

Для начала - напомню, что Linux Mint это в общем и целом - очень, очень хорошо допиленная Ubuntu. И хотя Ubuntu вполне пригодна к использованию "из коробки", Mint требует намного меньше телодвижений и в целом производит более благоприятное впечатление. (Хотя бы отсутствием Unity и присутствием практически всех возможных кодеков). В данном случае - Linux Mint 18 построена на базе Ununtu 16.04.

Linux Mint поддерживается до 2021 года - что приятно, LTS дистрибутивы вообще приятная вещь))

На мой взгляд, в дистрибутиве следует выделить 2 ключевых момента:

1) Возможность в менеджере программ (mintinstall, он же менеджер обновлений) выбрать версию ядра, на которой работает система. Раньше я менял ядро - но было сие нетривиально... Ну, не в "два клика".

2) Использование X-apps. Это , насколько я понял из релиза, такая тема... Есть набор приложений, который работает и выглядит в любом поддерживаемом окружении абсолютно одинаково.

С точки зрения разработчиков, основные идеи X-apps выглядят так:

- Использование современных технологий (GTK3 для поддержки HiDPI, gsettings и т.д.)

- Использование традиционных интерфейсов пользователя

- Работоспособность в любой среде

- Быть обратно совместимым, иметь возможность работать на как можно большем числе дистрибутивов

Понятное дело, что есть и другие улучшения - например, новая тема Mint-Y. Но они на мой взгляд, менее значимы, чем перечисленные выше.

Кроме того, в дистрибутиве обновилось всё, что могло быть обновлено по объективным показателям (имеются в виду версии компонент системы). Обеспечили поддержку exFAT, обновили коллекцию обоемв :)

Ну и - на форумах вовбсю обсуждают, что через месяц где-то можно будет перейти с 17.3 на 18. Но на оффсайте ничего такого пока не написано.

На момент написания поста, кстати, дистрибутив доступен в версии Mate и Chinnamon. Остальные обещают выпутить чуть позже, где-то в течение месяца.

ПС. Что касается меня - то я пока поживу на 17.3, до конца срока поддержки, то есть до 2019 года. А там посмотрим.

И да, как-то невежливо наверное говорить, что Linux Mint - это бесплатное абсолютно легальное ПО, распространяемое под одной из свободных лицензий :)

Ссылка на оф.сайт: https://linuxmint.com/

Ссылка на новости: http://blog.linuxmint.com/?p=3051 и http://blog.linuxmint.com/?p=3052

Чем проиграть .vob в Linux или кое-что об mpeg

Просмотров: 3308Комментарии: 0
Linux

Нашел тут очень старый клон диска с мультиками (клон делал сам, уже не помню чем, но формат там .vob). И решил, что надо бы посмотреть. Ну и - детям "скормить"...

В общем, каково же было моё удивление узнать, что ничего из установленного у меня (MPlayer, Баньши, VLC) не проигрывает файлы с таким расширением. Реально - первый случай, когда минт чего-то не смог проиграть.

В общем, поискал, выяснил, что можно проблему решить, установив ffmpeg:

sudo add-apt-repository ppa:mc3man/trusty-media && sudo apt-get update
sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 8E51A6D660CD88D67D65221D90BD7EACED8E640A
sudo apt-get install ffmpeg

Очень подробно об ffmpeg написано тут: http://help.ubuntu.ru/wiki/ffmpeg

В общем, всё путем. Но. Если вдруг захочется внезапно сохранить мультики в чем-то более удобоваримом, нам на помощь приходит куча конверторов. Они описаны здесь: http://softhelp.org.ua/?p=1825

Я использую только FF Multi Convertor, как наиболее универсальное решение. По крайней мере, на то, чтобы перегнать .vob и .mp4 в .avi в Linux его более чем достаточно.

sudo add-apt-repository ppa:ffmulticonverter/stable
sudo apt-get update
sudo apt-get install ffmulticonverter

В общем, "счастье есть" :)

Установка PhotoME на Linux

Просмотров: 2626Комментарии: 0
Linux

Ситуация: надо мне поставить PhotoME (http://www.photome.de/home_en.html) на Linux. Естественно, PhotoME только под Windows, и естественно, используем Wine.

Скачиваем отсюда: http://www.photome.de/download_en.html инсталлятор и MS GDI+ библиотеку, устанавливаем... запускаем:

wine /home/alexander/.wine/drive_c/Program\ Files\ \(x86\)/PhotoME/photome.exe

Получаем ошибку:

err:module:import_dll Library MSVBVM60.DLL (which is needed by L"C:\\Program Files (x86)\\PhotoME\\photome.exe") not found

Устанавливаем недостающее:

1) sudo apt-get install winetricks

Примечание: winetricks - полезная программа, которая умеет доставлять всего нужного

2) winetricks vb6run

Устанавливает VBrun - содержащий MSVBVM60.DLL

После этого запуск проходит нормально.