LINUX.ORG.RU

Избранные сообщения raven_cler

evince

Форум — Talks

Решил закончить прерванное неделю назад обновление генты. Остался в том числе evince, который меня раньше вполне устраивал. Обновил... Лучше б не обновлял. Кто-нибудь знает как убрать этот блевотный планшетоинтерфейс и вернуть то, что было?

 ,

upcFrost
()

Годные фильмы прошлых лет. Жанр фантастика.

Форум — Talks

Давайте сделаем списочек из старых добрых фильмов, которые сейчас не стыдно посмотреть на больших экранах.

Начну:

Чужой (1979г.), чужие (1986г.) - если выкинуть некоторые сцены, то по декорациям даст фору многим современным фильмам. Сюда же можно отнести другие серии про чужого.

Хищник (1987г.) - тоже даст фору по декорациям.

Судья Дредд (1995г.) - тоже на славу постарались с декорациями.

Матрица (1999г.) - следующие части тоже хороши. Правда говорят в последней части концовку запороли.

Звездные войны: Эпизод 1 (1999г.)

Призрак в доспехах (1995г.) - Хоть и анимашка, но рисовка и сюжет годные

Vidocq (2001г.) - Год уже современнее, жанр скорее триллер с элементами фентези, но очень качественный фильм для своего времени.

З.ы.

Линукс тут при том, что линуксоиды ерунду не посоветуют.

 

Siado
()

Blender, Freestyle, Ониме!

Галерея — Скриншоты

Смирившись с неизбежностью перетащил продакшен на Blender 2.71. Снова вернулся к целшейдингу и аниме. Freestyle стал ещё няшней и удобней. Топологию модели делал под subsurf и с прицелом на корректное затенение оной. Следующей ступенью будут morph targets на шейпах чтобы можно было настраивать форму лица, ну и естественно фэйсриг.

>>> Просмотр (1920x1080, 1144 Kb)

 , freestyle

wst
()

прототип виджета хоткеев для awesome wm

Галерея — Скриншоты

«{Super,Alt,Shift,Control}+?» вызывает попап

сам виджет: https://github.com/actionless/awesome_config/blob/devel/actionless/hotkeys.lua (там дикий ужас, не было времени сделать красиво, хотелось по-скорее увидеть как оно будет работать)

пример файла с самими хоткеями: https://github.com/actionless/awesome_config/blob/devel/config/keys.lua

PNG почему-то не захотело загружаться:

Оригинал

>>> Просмотр (1600x900, 323 Kb)

 

actionless
()

Подскажите тёмные плоские иконки для кед

Форум — Talks

Сабж. Надо, чтобы более-менее вписалось в такое оформление.

 , ,

Valkeru
()

Awesome tasklist

Форум — Desktop

Долгое время изучал Wiki, но на многие вопросы так и не нашел ответов, поэтому начал изучать lua код. И в результате этого изучения, родилась эта статья(перенесена на wiki). Опытные, подскажите, может где то есть возможность оптимизировать описанный код.

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

Перед началом работы скопируйте библиотеки в домашний каталог, если до сих пор этого не сделали.

mkdir -p ~/.config/awesome/themes
cp /etc/xdg/awesome/rc.lua ~/.config/awesome/rc.lua
cp -R /usr/share/awesome/lib/* ~/.config/awesome/
cp -R /usr/share/awesome/themes/* ~/.config/awesome/themes/

Вообще, за обработку панели задач отвечает файл awful/widget/tasklist.lua

Так что если возникнет желание ознакомится со всеми возможностями панели задач, изучите этот файл. Также для работы этого файла потребуются другие библиотеки lua (вызываемые оттуда функции и т.д.), они прописаны в начале файла, это те самые require. Имейте в виду, что код для 3.4 и 3.5 в библиотеке tasklist, как и названия функций в них довольно существенно отличается.

==Управление списком задач==

Для управления открытми клиентами существуют следующие клавиши:

Mod4 + Shift + r	- Перерисовать активное окно.
Mod4 + m		- Развернуть на весь экран.
Mod4 + n		- Свернуть.
Mod4 + Control + n	- Восстановить.
Mod4 + f		- Полноэкранный режим.
Mod4 + Shift + c	- Убить выбранный клиент.
Mod4 + t		- Прикрепить поверх всех.
Кстати, если эти клавиши вас не устравивают, вы в любой момент можете их переопределить, для этого в rc.lua найдите функцию awful.key отвечающую за нужные вам клавиши и измените их.

==Разбираем rc.lua==

Разбирая rc.lua можно обнаружить следующий код, связанный с панелью задач

mytasklist = {}			--создаем таблицу панели задач
mytasklist.buttons = awful.util.table.join(						--прикрепляем клавиши мыши к панели задач
                     awful.button({ }, 1, function (c)				--нажатие левой кнопки
                                              if c == client.focus then		--свернуть/развернуть приложение
                                                  c.minimized = true
                                              else
                                                  -- Without this, the following
                                                  -- :isvisible() makes no sense
                                                  c.minimized = false
                                                  if not c:isvisible() then
                                                      awful.tag.viewonly(c:tags()[1])
                                                  end
                                                  -- This will also un-minimize
                                                  -- the client, if needed
                                                  client.focus = c
                                                  c:raise()
                                              end
                                          end),
                     awful.button({ }, 3, function ()			--нажатие правой клавиши
                                              if instance then		--отображает список всех клиентов/приложений
                                                  instance:hide()
                                                  instance = nil
                                              else
                                                  instance = awful.menu.clients({
                                                      theme = { width = 250 }
                                                  })
                                              end
                                          end),
                     awful.button({ }, 4, function ()				--колесо прокрутки
                                              awful.client.focus.byidx(1)  --перейти на следующий клиент
                                              if client.focus then client.focus:raise() end
                                          end),
                     awful.button({ }, 5, function ()				--колесо прокрутки
                                              awful.client.focus.byidx(-1)	--перейти на предыдущий клиент
                                              if client.focus then client.focus:raise() end
                                          end))
....
    -- Create a tasklist widget  - создание виджета tasklist
    mytasklist[s] = awful.widget.tasklist(s, awful.widget.tasklist.filter.currenttags, mytasklist.buttons)
.... 
    layout:set_middle(mytasklist[s])				--Располагаем список задач в центре панели
Если вам не нужна прокрутка на панели задач, то закоментируйте/удалите код отвечающий за нее:
--awful.button({ }, 4, function ()				--колесо прокрутки
--                                 awful.client.focus.byidx(1)								--перейти на следующий клиент
--                                 if client.focus then client.focus:raise() end
--                                 end),
--awful.button({ }, 5, function ()				--колесо прокрутки
--                                   awful.client.focus.byidx(-1)	--перейти на предыдущий клиент
--                                   if client.focus then client.focus:raise() end
--                                  end))
И добавьте завершающую скобку после закомментированного кода, иначе выдаст ошибку
)

===Варианты для правой кнопки мыши===

====Закрыть приложение====

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

awful.button({ }, 3, function ()
                      if instance then
                       instance:hide()
                       instance = nil
                      else
                       instance = awful.menu.clients({
                      theme = { width = 250 }
                     })
                     end
                    end),
На следующий
awful.button({ }, 3, function (c)
    c:kill()
end ),

====Альтернативное меню====

Если вас не устраивает стандартное контекстное меню в панели задач, то вы можете его заменить, на то, которое нужно именно вам, далее приводится лишь один из возможных вариантов. Для начала заменим стандартный вызов awful.button на следующий:

awful.button({ }, 3, function (c)
          if instance then
              instance:hide()
              instance = nil
           else
              instance = context_menu(c)
           end
         end ),
Затем где нибудь в начале файла rc.lua добавьте функцию context_menu:
function context_menu(c)
    if c.minimized then      --меняем текст элемента меню в зависимости от состояния
         cli_min = "Развернуть"
    else
         cli_min = "Свернуть"
    end
    if c.ontop then
         cli_top = "★ Поверх всех"
     else
         cli_top = "  Поверх всех"
    end
    if awful.client.floating.get(c) then
         cli_float = "★ Floating"
     else
         cli_float = "  Floating"
     end
     --создаем список тегов(в виде подменю), для перемещения клиента на другой тег
     tag_menu = { }
     for i,t in pairs(tags.names) do
          if not tags[c.screen][i].selected then			--удаляем из списка выбранный тег/теги
              table.insert(tag_menu, { tostring(t), function() awful.client.movetotag(tags[c.screen][i]) end } )
          end
     end
     taskmenu = awful.menu({ items = { { "Переместить на", tag_menu },
                                       { cli_min, function() c.minimized = not c.minimized end },
                                       { "Fullscreen", function() c.fullscreen = not c.fullscreen end, beautiful.layout_fullscreen },
                                       { cli_float,  function() awful.client.floating.toggle(c) end },
                                       { cli_top, function() c.ontop = not c.ontop end },
                                       { "Закрыть", function() c:kill() end },
                                      width = 150
                                     } )
     taskmenu:show()
     return taskmenu
end

==Отобразить только иконки или текст==

Если вас не устраивает отображение текста и иконок одновременно (например вы большой любитель Unity или Win7), то можно настроить Awesome для отображения только иконок или только текста у приложений. Есть один недостаток, если для приложения не назначено иконки, то соответсвенно и отображать будет нечего (у меня такая ситуация наблюдалась с терминалом xterm, если у вас похожая ситуация, то назначьте иконку по умолчанию для приложений не имеющих собственных иконок(описано ниже).

Откройте ~/.config/awesome/awful/widget/tasklist.lua и в функции widget_tasklist_label_common() (для 3.4) или tasklist_label (для 3.5) замените return text, bg.... на следующий код:

return not theme.tasklist_only_icon and text or '', bg, status_image, not tasklist_disable_icon and c.icon or nil

Затем, создайте переменную в вашем theme.lua со следующим содержанием:

--для отображения только иконок
theme.tasklist_only_icon = true
--для отображения только текста
tasklist_disable_icon = true

Примечание: Не определяйте как одновременно обе этих переменных, иначе вы вообще не увидите своих задач.

Есть еще один способ убрать текст в Awesome 3.4 (к сожалению в 3.5 код вызываемой функции был изменен и поэтому этот способ в нем не работает), но здесь все манипуляции мы будем производить только с файлом rc.lua. Найдите следующий код:

mytasklist[s] = awful.widget.tasklist(function(c)
                                              return awful.widget.tasklist.label.currenttags(c, s)
                                          end, mytasklist.buttons)
И замените его на :
 mytasklist[s] = awful.widget.tasklist(function(c)
                              local task = { awful.widget.tasklist.label.currenttags(c, s) }
                              return '', task[2], task[3], task[4]
                          end, mytasklist.buttons)
В принципе данный код аналогичен первому, только здесь мы производим дополнительное действие.

Аналогичным способом можно удалить и иконки в Awesome 3.4. Откройте ваш rc.lua, найдите

mytasklist[s] = awful.widget.tasklist(function(c)
                                              return awful.widget.tasklist.label.currenttags(c, s)
                                          end, mytasklist.buttons)
И замените его на :
 mytasklist[s] = awful.widget.tasklist(function(c)
                              local task = { awful.widget.tasklist.label.currenttags(c, s) }
                              return task[1], task[2], task[3], nil
                          end, mytasklist.buttons)

==Иконка по умолчанию==

Для некоторых приложений не установлены иконки по умочанию (обычно это терминалы), и если вы, например, используете только иконки в панели задач, или используете отображение приложений в тегах, то приложения без иконок вы просто не увидите. Для решения этой проблемы отредактируйте функцию "tasklist_update" в файле ~/.config/awesome/awful/widget/tasklist.lua. В функции tasklist_update перед строкой table.insert вставьте следующий код:

if not c.icon then
    c.icon = capi.image("path/to/icon/default_icon.png")
end

==Настройка внешнего вида==

Для настройки панели задач, в theme.lua вы можете определить следующие переменные:

===Awesome 3.5===

theme.tasklist_fg_normal - цвет текста панели задач, если значение не определено, то используется значение theme.fg_normal

theme.tasklist_bg_normal - цвет фона панели задач, если значение не определено, то используется значение theme.bg_normal

theme.tasklist_fg_focus - цвет текста активного приложения, если значение не определено, используется значение theme.fg_focus

theme.tasklist_bg_focus - цвет фона активного приложения, если значение не определено, то используется значение theme.bg_focus

theme.tasklist_fg_urgent - цвет текста «срочного» приложения, если не определено, то будет использоваться значение из theme.fg_urgent

theme.tasklist_bg_urgent цвет фона «срочного» приложения, если не определено, то будет использоваться значение theme.bg_urgent

theme.tasklist_fg_minimize - цвет текста свернутого приложения, если не определено, то будет использоваться значение из theme.fg_minimize

theme.tasklist_bg_minimize - цвет фона свернутого приложения, если не определено, то будет использоваться значение из theme.bg_minimize

theme.bg_image_normal - позволяет установить изображение для неактивных в данный момент клиентов

theme.bg_image_focus - позволяет установить фоновое изображение для активного клиента

theme.bg_image_urgent - позволяет установить фоновое изображения для «срочного» клиента

theme.bg_image_minimize - позволяет установить фоновое изображение для свернутого клиента

theme.tasklist_disable_icon - позволяет отключить отображение иконок, если значение равно true

theme.tasklist_font - шрифт для панели задач, если не определено, то будет испльзоватся шрифт из theme.font

theme.tasklist_sticky - позволяет установить текст для «липкого» клиента, если значение не установлено, то используется «▪»

theme.tasklist_ontop - позволяет установить текст/символ для приложения «поверх всех», если значение не установлено, то используется '⌃'

theme.tasklist_floating - текст для приложения в «плавающем» режиме, если значение не установлено, то используется '✈'

theme.tasklist_maximized_horizontal - текст для развернутого по горизонтали приложения, если на установлено, то используется '⬌'

theme.tasklist_maximized_vertical - текст для приложения развернутого по вертикали, если на установлено, то используется '⬍'

===Awesome 3.4===

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

theme.tasklist_fg_focus - цвет текста активного приложения, если значение не определено, используется значение theme.fg_focus
theme.tasklist_bg_focus - цвет фона активного приложения, если значение не определено, то используется значение theme.bg_focus
theme.tasklist_fg_urgent - цвет текста "срочного" приложения, если не определено, то будет использоваться значение из theme.fg_urgent
theme.tasklist_bg_urgent цвет фона "срочного" приложения, если не определено, то будет использоваться значение theme.bg_urgent
theme.tasklist_fg_minimize - цвет текста свернутого приложения, если не определено, то будет использоваться значение из  theme.fg_minimize
theme.tasklist_bg_minimize - цвет фона свернутого приложения, если не определено, то будет использоваться значение из  theme.bg_minimize
theme.tasklist_floating_icon -  иконка для приложения в "плавающем" режиме
theme.tasklist_font - шрифт для панели задач, если не определено, то будет испльзоватся шрифт из theme.font

===Высота панели ===

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

mywibox[s] = awful.wibox({ position = "top", height = 24, screen = s })
Здесь вы можете изменить ее расположение, top - сверху, bottom - снизу. height - это высота панели. Или даже можете создать себе вторую панель, переместив панель задач сверху вниз(на примере 3.4):
bottomwibox = {}
bottomwibox[s] =  awful.wibox({ position = "bottom", height = 27, screen = s })
bottomwibox[s].widget = {
              {
                  mylauncher,
                  layout = awful.widget.layout.horizontal.leftright
              },
          mytasklist[s],
          layout = awful.widget.layout.horizontal.rightleft
      }

==Порядок открытых приложений==

По умолчанию новое приложение отображается слева от открытых ранее. Но если вы привыкли к другому, например в Gnome или KDE, то можно настроить, чтобы вновь открываемые приложения открывались справа, т.е. список задач был отсортирован по запуску, где первым в списке будет первое открытое приложение, а последним соответственно последнее. Для этого необходимо открыть файл ~/.config/awesome/awful/widget/tasklist.lua. Все манипуляции с этими файлами лучше всего делать когда они находится в домашнем каталоге, чтобы если вы что-то испортите, можно было их легко восстановить. Итак, найдите в этом файле функцию "function tasklist_update" в ней есть следующая строка:

"'Awesome 3.4"'

table.insert(shownclients,c)
Замените ее на:
table.insert(shownclients, 1, c)
"'Awesome 3.5"'
table.insert(clients, c)
Замените ее на:
table.insert(clients, 1, c)
Перезапустите Awesome.

==Ширина приложений в списке задач ==

Если вас не устраивает, то, что одно запущенное приложение можент занимать все доступное пространоство, на панели задач, то это поведение можно немного изменить. Для этого потребуется отредактировать файл ~/.config/awesome/awful/widget/tasklist.lua

===Awesome 3.4===

Найдите функцию new, в ней необхоидмо изменить

layout = layout.horizontal.flex
На тот вариант расположения виджетов, который вас устраивает. Их полный список находится в файлах awful/widget/layout horizontal.lua и vertical.lua
layout = layout.horizontal.leftright
===Awesome 3.5===

Найдите функцию tasklist.new затем замените

local w = base_widget or flex.horizontal()
Например следующим кодом:
local w = base_widget or fixed.horizontal()
А в начало файла добавьте
local fixed = require("wibox.layout.fixed")
Если предоженный вариант вас не устраивает, можете поэкспериментировать с layout'ами, они находятся в каталоге ~/.config/awesome/wibox/layout

Правда ширина каждого клиента будет зависеть от названия, в принципе это тоже можно поправить если вам требуется фиксированная ширина клиентов, для этого нужно изменить в файле tasklist.lua функцию widget_tasklist_label_common (3.4) или tasklist_label (в 3.5): В начало файла поместите

local string = string
Затем перед строкой "if capi.client.focus == c then" поместите следующий код:
if #name >20 then
    name = string.sub(name,1,20)
end
Здесь мы ограничиваем название 20-ю символами, если вам требуется другое значение, измените его.

Есть еще один ньюанс, при изменении испльзуемой схемы(layout), приложения теперь перестают масштабироваться, и в результате их теперь на панель входит штук 5, конечно это можно изменить, но изменений потребуется достаточно много и они уже выходят за рамки данной статьи.

==Список клиентов ==

По умолчанию в файле rc.lua для обработки списка клиентов для tasklist используется следующий код:

Awesome 3.5
mytasklist[s] = awful.widget.tasklist(s, awful.widget.tasklist.filter.currenttags, mytasklist.buttons)

Awesome 3.4
mytasklist[s] = awful.widget.tasklist(function(c) 
                               return awful.widget.tasklist.label.currenttags(c,s)
                          end, mytasklist.button)
Т.е. изучив данный код, можно понять, что на панели задач, будут отображены клиенты для текущего тега. Если данное положение дел вас не устаривает, то вы можете например отобразить все клиенты со всех тегов, для этого нужно заменить соотвествующую функцию на одну из следующий:
Awesome 3.4
awful.widget.tasklist.label.allscreen		- для отображения клиентов со всех экранов
awful.widget.tasklist.label.alltags		- для отображения клиентов со всех тегов текущего экрана
awful.widget.tasklist.label.currenttags		- для отображения клиентов с текущего тега
awful.widget.tasklist.label.focused		- для оторажения только клиентов в фокусе

Awesome 3.5
awful.widget.tasklist.filter.allscreen		- для отображения клиентов со всех экранов
awful.widget.tasklist.filter.alltags		- для отображения клиентов со всех тегов текущего экрана
awful.widget.tasklist.filter.currenttags	- для отображения клиентов с текущего тега
awful.widget.tasklist.filter.minimizedcurrenttags	- для отображения свернутых клиентов на текущем теге
awful.widget.tasklist.filter.focused		- для оторажения только клиентов в фокусе
Помимо этого, есть еще ряд приложений, которые не будут отображаться в списке клиентов, эта функция прописана в следующем коде:
Awesome 3.5 - tasklist.lua - function tasklist_update
if not (c.skip_taskbar or c.hidden
            or c.type == "splash" or c.type == "dock" or c.type == "desktop")
            and filter(c, s) then
            table.insert(clients, c)
        end
Похожий код используется и в 3.4, но без строки "and filter(c, s)". Т.е. здесь мы пропускаем часть клиентов, если какие то из них вам все же нужны, удалите код отвечающий за них.

==Сигналы==

Сигналы - это система сообщений которую рассылает ядро Awesome для управления виджетами, клиентами, тегами и т.д. Подробне ознакомится с системой сигналов вы можете [Signals/ru|здесь]. Итак, поддерживаются следующие сигналы:

    tag.attached_connect_signal(screen, "property::selected", u) 
    tag.attached_connect_signal(screen, "property::activated", u)
    capi.client.connect_signal("property::urgent", u)
    capi.client.connect_signal("property::sticky", u)
    capi.client.connect_signal("property::ontop", u)
    capi.client.connect_signal("property::floating", u)
    capi.client.connect_signal("property::maximized_horizontal", u)	
    capi.client.connect_signal("property::maximized_vertical", u)
    capi.client.connect_signal("property::minimized", u)
    capi.client.connect_signal("property::name", u)
    capi.client.connect_signal("property::icon_name", u)
    capi.client.connect_signal("property::icon", u)
    capi.client.connect_signal("property::skip_taskbar", u)
    capi.client.connect_signal("property::screen", u)
    capi.client.connect_signal("property::hidden", u)
    capi.client.connect_signal("tagged", u)
    capi.client.connect_signal("untagged", u)
    capi.client.connect_signal("unmanage", u)
    capi.client.connect_signal("list", u)
    capi.client.connect_signal("focus", u)
    capi.client.connect_signal("unfocus", u)
Названия сигналов говорят сами за себя, единственное, первые 2 улавливают события от тегов, для того, чтобы при смене тега отобразить актуальный список клиентов на нем. После того, как будет принято данное событие будет вызвана функция u:
u = function () tasklist_update(screen, w, buttons, filter, data, style, uf) end
Т.е. панель задач будет обновлена. Так что если вы где то будете менять какое то свойство для клиента, можете не беспокоиться, оно будет отловлено и корректно обработано. Если же нужного вам сигнала здесь нет, то вы всегда можете создать свой.

 

Faiver
()

Хороший DAW на этих ваших линуксах

Форум — Multimedia

Господа музыканты, какие хорошие DAW'ы есть на Linux? Есть ли что-то кроме Rosegarden? Желательно, чтобы этот DAW был относительно стабилен, поддерживал VST и вообще был удобен.

Или всё же использовать Rosegarden? На моей памяти он слишком уж часто вылетал.

И вообще, насколько целесообразно использовать Linux для создания музыки? Какие могут возникнуть проблемы?

 , ,

brotheroftux
()

почти максимально гламурный осом

Галерея — Скриншоты

ШГ: PT Sans, monoOne, патчи из убунты

GTK: «numix color changer» — маленький скриптик который перекрашивает тему вместе с svg-шками в заданные цвета, ну и в самой темке табы поменял на более приятные глазу. Цвета поставил как в любимой Shiki Nouveau Noble

В осоме цвета стоят те же.

переписал asyncshell (cast unlog1c) — теперь больше нет необходимости хранить временные файлы

так же наконец-таки нашел время распихать огромный конфиг осома по модулям, жить стало гораздо приятнее после этого :)

всё еще продолжаю рефакторить виджеты, теперь, имхо, у них чуть более интуитивные интерфейсы и разумные дефолты

добавил виджет для netctl/netctl-auto, добавил возможность выбрать бэкенд для музыкального виджета (т.к. на разных машинах стоят разные плеера)

кстати, такие огромные рамки — не столько для украшения, но помогают мне быстрее найти активное окно, когда используется несколько дисплеев

сам конфиг здесь: https://github.com/actionless/awesome_config но там еще много чистить надо

так пока и не дошли руки сделать попап с хоткеями.

>>> Просмотр (1440x900, 585 Kb)

 

actionless
()

VIM как IDE для ______

Форум — Development

Какие плагины вы используете, чтобы превратить vim в IDE для ________ (вписать язык)?

Интересует:

  1. Автодополнение. В частности, умное семантическое.
  2. Форматирование. В частности, автоматическое при сохранении буфера.
  3. Проверка компилируемости кода для компилируемых ЯП, проверка корректности для интерпретируемых ЯП.
  4. Статический анализ кода (lint). Предупреждения о неиспользуемых переменных. Предупреждения о неканоничном форматировании кода. И т. д.
  5. Просмотр документации к функции, методу и т. д. под курсором.
  6. Переход к определению функции (метода, класса и т. д.) под курсором.
  7. Рефакторинг (переименование функций, методов, классов и т. д.).
  8. Сниппеты.
  9. Компиляция/запуск. Точки останова. Запуск тестов.
  10. Заливка кусков кода на сайты для обмена, вроде gist.github.com или play.golang.org.

И общее для всех языков:

  • Вывод списка / переход к меткам TODO, XXX, FIXME и т. д.
  • Go anywhere (CtrlP, Command-T или FuzzyFinder?)

Ссылки:

VIM как python IDE.

 

meskalin
()

Emcas и автоматические кодировки файлов. enca. не работает.

Форум — Development

Пытаюсь заюзать http://lists.gnu.org/archive/html/gnu-emacs-sources/2007-06/msg00037.html

Все сделал по рецепту вверху сообщения, еще добавил -L russian к параметру -m, уже в дебагере сижу, вызывается у меня (call-process ...), и возвращает 2, я так понимаю, что это возврат команды enca. И тут я вообще не понимаю, что происходит. Вызов из шелла «enca -m -L russian /home/user/header.h» работает.

Данный call-process в дебаге имеет вид:

(call-process "/usr/bin/enca" target enca-buffer nil "-m" "-L russian")

step >>> 

call-process("/usr/bin/enca" "/home/user/header.h" #<buffer  *enca*> nil "-m" "-L russian")

Вместо буфера enca-buffer подставлял '(:file «/tmp/123») - создается пустой файл. Явно ошибка запуска самой enca.

Подскажите, куда копать, пожалуйста

 , , ,

Deleted
()

Каталог пакетов TeX Live (итоговый update)

Новости — Документация
Группа Документация

Вышли окончательные шесть статей каталога. На своей страничке я разместил постоянные ссылки.

Добавлены части, охватывают следующие разделы: Хобби или работа (литература, музыка, рецепты, шахматы, игры и финансы), Графика (вставка и создание), Таблицы и Плавающие объекты, Вёрстка, Справочно-поисковый аппарат издания (оглавление, колонтитулы, сноски, библиография и алфавитный указатель) и Программирование в среде LaTeX.

( читать дальше... )

>>> Ссылки на каталог

 

Evgueni
()

Gentoo-cтудия

Галерея — Скриншоты


Вот так и живу.
Монтаж, графика, цветокоррекция, 3д, сведение, и многое другое)))
http://wstaw.org/m/2014/03/20/screen1.jpeg
http://wstaw.org/m/2014/03/20/screen3.jpeg
http://wstaw.org/m/2014/03/20/screen6.jpeg
http://wstaw.org/m/2014/03/20/screen4.jpeg
http://wstaw.org/m/2014/03/20/screen5.jpeg


Значки - https://github.com/megabaks/stuff/tree/master/x11-themes/compass
Цвет - Krita-Blender.colors http://bpaste.net/show/191141/
Плазма - Tibana
Обои, заставки - Excalibur
Шрифты - Droid Sans

>>> Просмотр (1600x900, 96 Kb)

 ,

brothermechanic
()

Вот такой теперь мой темный Awesome

Галерея — Скриншоты

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

Итак.

  • OpenSUSE 13.1
  • Awesome 3.5 (вроде так)
    > awesome -v
    awesome devel (The Fox)
     • Build: for x86_64 by gcc version 4.8.2 (abuild@build33)
     • Compiled against Lua 5.2.2 (running with Lua 5.2)
     • D-Bus support: ✔
    
  • Terminator в качестве клиента консоли (оно же так зовется?)
  • Конфиг осома:
    • Powerarrow Darker copycatted from romockee [custom porting from v3.4] отсюда
    • ШГ: «Droid Sans 7». Ибо с авторским шрифтом слишком уж Г.
    • Конфиг брал не чисто тот, что у автора. Брал дефолтный и вставлял куски кода, пилил под себя.
    • У автора нет пиктограммы для кнопки меню Осома, а код был. Да и на скрине есть. Нашел и добавил из дефолтной темы.
    • Кнопка запуска приложений - Mod4+R, как в i3wm, ибо мне удобно.
    • С любимым ЛОРом сочетается великолепно (да, куда без ЛОРа? :) )
    • В конфиге предусмотрено использование плагина для проверки почты (код закомментирован, иконка есть)
    • В конфиге предусмотрена работа с MPD. Но я его не использую, оставил как есть.

В планах:

1) возможно, заюзать плагин почты, но хочется сделать это так, чтобы в отдельном файле, чтобы его в gitignore положить. Если подскажете, как - буду рад;

2) допилить менюшку Осома, чтобы были самые пользуемые приложения;

3) есть трабла с индикатором раскладки клавиатуры. sbxkb, который я юзаю, падает при рестартах Осома (когда нужно их сделать). А может, и не только при рестартах. В общем, как видите - на скрине нет индикатора: я уже забил. Хочется найти какой-нибудь виджет для этих целей, чтобы не зависеть от падающих поделок;

4) да вроде все.

Я пока доволен.

Ах, да! Мой конфиг базируется здесь: https://bitbucket.org/bvn13/awesome/overview

>>> Просмотр (1366x768, 126 Kb)

 ,

bvn13
()

Где GUI?

Форум — Desktop

Вот уже почти месяц наслаждаюсь использованием Генты. Сегодня обнаружилась непонятка. Скомпилился virtualbox, а меню kde его нет, в чем дело, товарищи?! :\

 , , ,

Twissel
()

Есть ли альтернатива SICP?

Форум — Development

Некоторое время назад взялся за сабж. Я выбрал его именно потому, что слышал очень много отзывов о том, что это «только о программировании» и «ничего лишнего». Я несколько разочарован.

Первое, не самое важное, но тем не менее. Авторы взяли в качестве ЯП scheme, мотивируя это тем, что синтаксис очень прост для освоения новичком. Синтаксис то да, прост, но семантика не так уж и проста, и совершенно непонятно, почему было не взять любое другое подмножество лиспа, или даже бейсика, ведь для демонстрации принципов о которых там рассказывается вовсе не требуется сомнительное «волшебство» замыканий и продолжений. На одном синтаксисе далеко не уедешь, а семантику scheme (до глав о метаяз. абстракции) там не рассматривают вообще, и при этом заявляется, что низкий порог вхождения гарантирован. Это, мягко говоря, неправда.

Но самое главное — там слишком много воды. Для рассмотрения достаточно простых вещей, там берутся сложные, избыточные примеры. Например, главы о банковских счетах. Ведь основная мысль там — проблема разделения ресурса. Нахрена спрашивается было городить левые процедуры, вроде withdraw, get-money, put-money и проч. (названия там другие, но не суть), если для демонстрации идеи достаточно было change-balance и check-balance. Ведь основная проблема - в том чтобы посмотреть, а потом снять, чтобы другой объект не изменил в промежутке между двумя операциями. Вместо того, чтобы концентрироваться на основной вычислительной проблеме, на нас выливают тонны воды, в которой расмотреть основную мысль не очень то и просто.

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

В связи с этим, хочу спросить, существует ли другая, возможно, более старая даже, книжка о программировании (и только о нем — не о типах, не об особенностях той или иной парадигмы и пр.), но только без демагогии?

UPD Забыл сказать, что я в корне не принимаю такие подходы, как «Структурное программирование», что-то в стиле «Something considered harmful» «не отстрели себе яйца», и языки заточенные под компиляцию. Поэтому подобные вещи не предлагать:)

 ,

phill
()

org-mode и экспорт русского текста в pdf

Форум — General

Привет.

Подскажите, как заставить org-mode + texlive «печатать» кириллицу?

дистрибутив linuxmint, «extra», «кириллические» и «ru» пакеты для texlive установлены.

 , ,

kvitaliy
()

Отступ в 2 пробела вместо 4, вопреки записям в .emacs

Форум — General

.emacs

(require 'color-theme)
(setq tab-width 4)
(setq indent-tabs-mode nil)
(custom-set-variables
 ;; custom-set-variables was added by Custom.
 ;; If you edit it by hand, you could mess it up, so be careful.
 ;; Your init file should contain only one such instance.
 ;; If there is more than one, they won't work right.
 '(inhibit-startup-screen t))
(custom-set-faces
 ;; custom-set-faces was added by Custom.
 ;; If you edit it by hand, you could mess it up, so be careful.
 ;; Your init file should contain only one such instance.
 ;; If there is more than one, they won't work right.
 '(default ((t (:family "DejaVu Sans Mono" :foundry "unknown" :slant normal :weight normal :height 99 :width normal)))))
(progn (color-theme-initialize)
        (color-theme-xemacs))
Несмотря на это, при редактировании С и С++ файлов отступ в 2 пробела. В Python все как надо

 

netcat
()

Отключить переключение раскладки для единственного приложения

Форум — General

Которое называется emacs. Как? Любые методы, кроме установки систем ввода типа scim приветствуются (X11/KDE)

 ,

pashazz
()

Корявое отображение декораций консоли Gentoo

Форум — Desktop

Выбрана тема natural_gentoo, фреймбуффер uvesafb, использую splashutils.

Grub.cfg: video=uvesafb:1600x1200-32,mtrr:3,ywrap splash=verbose,theme:natural_gentoo

Когда во время загрузки взлетает fbcondecor, всё нормально. Потом запускается KDM, если переключусь на tty, выглядит вот так: http://i.imgur.com/IPs1gX5.png. Если заново задам декорацию командой (видна на втором скрине), выглядит вот так (как надо): http://i.imgur.com/g4spLQU.png. После переключения туда-сюда на иксы и обратно - все опять сбрасывается к кривому виду. Драйвера Nvidia. Что делать, господа?

 ,

Valdor
()

Декорации консоли (fbcondecor) в Gentoo без initramfs

Форум — Desktop

http://wiki.gentoo.org/wiki/Fbsplash

За декорации консоли отвечает splashutils, а в мануале по настройке сказано, что для использования всего этого необходим initramfs. Мне не нужен splash, хотелось бы только декорации консоли во фреймбуффере, и без initramfs. Есть ли способы достичь желаемого?

 ,

Valdor
()