ion3 (работящий карлик ;))
Модератор: Модераторы разделов
-
- Сообщения: 17
Re: ion3
Кстати, вот хинт.
Я перенастроил прямо в cfg_ion.lua клавиши так:
META="Mod4+"
ALTMETA="Mod1+"
Теперь все что было на Alt+клавиша, стало win+клавиша, а все хоткеи, которые были просто так стали alt+стрый_хоткей. То есть вместо F2 для вызова терминала жмем alt+f2. И мне этого хватило, что бы мои биндинги в vim и остальных прогах заработали без проблем.
Я перенастроил прямо в cfg_ion.lua клавиши так:
META="Mod4+"
ALTMETA="Mod1+"
Теперь все что было на Alt+клавиша, стало win+клавиша, а все хоткеи, которые были просто так стали alt+стрый_хоткей. То есть вместо F2 для вызова терминала жмем alt+f2. И мне этого хватило, что бы мои биндинги в vim и остальных прогах заработали без проблем.
Тело это только одежда
-
- Сообщения: 82
- ОС: SlackWare
Re: ion3
DiKeert
Вы забавный человечек, уважаемый.
Сначала ответить на сообщение от 2006 года, а потом подарить совет, который без сомнения полезен (сам также сделал давным давно), но который напрашивается уже на первый же день пользования ионом.
И раз уж ты
а вот область...
All
Ладно, стеб это, но вопрос в силе: можно ли из скрипта определить область статусбара куда кликнули?
Вы забавный человечек, уважаемый.

И раз уж ты
, то подскажи мне плиз, каким макаром определит область на статус-баре, куда кликнули мышью. Само нажатие понятно:ходячий грамнотный ресурс по Ion
Код: Выделить всё
ioncore.defbindings("WStatusBar", {
mpress("Button1", "cmd"),
})
All
Ладно, стеб это, но вопрос в силе: можно ли из скрипта определить область статусбара куда кликнули?
-
- Сообщения: 82
- ОС: SlackWare
Re: ion3
Если вам, также как и мне надоело держать по пять-десять воркспейсов, для разных прог, то попробуйте этот скриптик для управления воркспейсами (десктопами).
Использовать его очень просто:
1. Перешли на уже разбитый воркспейс (или создали новый, назвали фреймы, подрулили размеры).
2. На ALTMETA.."D" забиндена менюшка (в конце скрипта). Вызвали её.
3. Выбрали пункт "Save this workspace", ввели имя под которым в-спейс будет храниться, ентер.
Теперь можно его закрыть пунктом меню "Close this workspace".
Снова вызываем менюшку, подменю "Load workspace->" выбираем сохранённый стол. В-спейс будет загружен с теми же именами фремов и размерами, с которыми он был сохранён.
Загрузка одного и того же стола два и более раз - блокирована, т.к. фреймы стола-копии будут поименованы с добавлением префикса (LazMain<1> например).
Загрузка скрипта dopath-ом.
deskman.lua:
Использовать его очень просто:
1. Перешли на уже разбитый воркспейс (или создали новый, назвали фреймы, подрулили размеры).
2. На ALTMETA.."D" забиндена менюшка (в конце скрипта). Вызвали её.
3. Выбрали пункт "Save this workspace", ввели имя под которым в-спейс будет храниться, ентер.
Теперь можно его закрыть пунктом меню "Close this workspace".
Снова вызываем менюшку, подменю "Load workspace->" выбираем сохранённый стол. В-спейс будет загружен с теми же именами фремов и размерами, с которыми он был сохранён.
Загрузка одного и того же стола два и более раз - блокирована, т.к. фреймы стола-копии будут поименованы с добавлением префикса (LazMain<1> например).
Загрузка скрипта dopath-ом.
deskman.lua:
Код:
-- FILE: deskman.lua
-- AUTHOR: Dmitry Kolomiets <B4rr4cuda at rambler dot ru>
-- DESCRIPTION: Workspace manager. Allow to save, load and close workspaces. Press ALTMETA.."D" to show menu.
--------------------------------------------------------------------------------
local settings={
--savedir="", --desks and config will be saved in ~/.ion3/default-session--x/
savedir="../", --save desks and config in ~/.ion3/ directory
--savedir="../Desks/", --need manual creation of "Desks" directory in ~/.ion3
}
local desklist={};
local function getsavepath()
return ioncore.get_paths().sessiondir;
end
local function load_list()
desklist={};
for line in io.lines(getsavepath()..'/'..settings.savedir..'.settings') do
table.insert(desklist,line);
end
end
local function save_list()
local f=io.open(getsavepath()..'/'..settings.savedir..'.settings','w');
for i,k in pairs(desklist) do
f:write(k.."\n");
end
f:close()
end
load_list();
DeskMan={}
---this cut based on collapse.lua code
--------------------------------------
function DeskMan.take_frame_to_here (region, current)
if region ~= current then
region:managed_i(function (cwin)
ioncore.defer(function ()
current:attach(cwin)
end)
return true
end)
ioncore.defer(function ()
region:rqclose()
end)
end
return true
end
function DeskMan.close_workspace(ws)
local current = ws:current()
ws:managed_i (function (region)
return DeskMan.take_frame_to_here(region, current)
end)
current:rqclose()
end
--------------------------------------
---this cut based on collapse.lua code
function DeskMan.load_desk(bname)
local t=ioncore.read_savefile(settings.savedir..bname)
if (t==nil) then return end
if ioncore.lookup_region(t['name'],t['type'])~=nil then
ioncore.warn('One copy of '..bname..' desktop is already loaded');
return;
end
ioncore.create_ws(ioncore.find_screen_id(0),t);
WRegion.goto(ioncore.lookup_region(t['name'],t['type']));
end
function DeskMan.save_desk(wt,bname) --use _:manager() for wt on manual call
if (wt==nil) then
ioncore.warn("wt param is nil");
return;
end;
local t=WRegion.get_configuration(wt);
ioncore.write_savefile(settings.savedir..bname,t);
table.insert(desklist,bname);
save_list();
end
function DeskMan.save_query(frm) -- use _ for manual call
local sss="";
local function getval(mp,str)
if string.len(str)==0 then
return
end
DeskMan.save_desk(frm:manager(),str);
end
mod_query.query(frm,'Enter the name for this desktop:','',getval)
end
local function nop()
end
function DeskMan.show_menu(frm)
load_list();
local amenu={};
local subm={};
local ent;
for i,k in pairs(desklist) do
ent=menuentry(k,"DeskMan.load_desk('"..k.."')");
table.insert(subm,ent);
end
table.insert(amenu,submenu('Load workspace->',subm));
ent=menuentry('Save this workspace',"DeskMan.save_query(_)");
table.insert(amenu,ent);
ent=menuentry('-------------------',"nop()");
table.insert(amenu,ent);
ent=menuentry('Close this workspace',"DeskMan.close_workspace(_:manager())");
table.insert(amenu,ent);
mod_menu.menu(frm,frm,amenu);
end
defbindings("WFrame", {
kpress(ALTMETA.."D", "DeskMan.show_menu(_)"),
--kpress(ALTMETA.."Q", "DeskMan.close_workspace(_:manager())"),
})
-
- Сообщения: 17
Re: ion3
B4rr4cuda писал(а): ↑17.07.2008 01:33DiKeert
Вы забавный человечек, уважаемый.Сначала ответить на сообщение от 2006 года, а потом подарить совет, который без сомнения полезен (сам также сделал давным давно), но который напрашивается уже на первый же день пользования ионом.
И раз уж ты, то подскажи мне плиз, каким макаром определит область на статус-баре, куда кликнули мышью. Само нажатие понятно:ходячий грамнотный ресурс по Ion
а вот область...Код: Выделить всё
ioncore.defbindings("WStatusBar", { mpress("Button1", "cmd"), })
All
Ладно, стеб это, но вопрос в силе: можно ли из скрипта определить область статусбара куда кликнули?
Ой, да ладно, пошутить нельзя? Просто оно-то напрашиватеся, но не всегда приходит в голову это решение. Я, например, когда начинал пользоваться ion3 (а было это давно), перебивал все биндинги на свои. Сейчас пользую этот хинт.

Тело это только одежда
-
- Сообщения: 82
- ОС: SlackWare
Re: ion3
Ты пошутил - я постебался...

Фигня это фсе. Вываливай ещё хинты, вдруг что-то новенькое-интересненькое проскользнет. А то темка подзаглохла... Я тоже отсебятины кину:
Код: Выделить всё
--вин+(вверх/вниз/вправо/влево) переключается на фрейм расположенный
--в своответвующем направлении (на разбитом деске)
kpress(ALTMETA.."Up", "ioncore.goto_next(_chld, 'up')", "_chld:non-nil"),
kpress(ALTMETA.."Down", "ioncore.goto_next(_chld, 'down')", "_chld:non-nil"),
kpress(ALTMETA.."Right", "ioncore.goto_next(_chld, 'right')", "_chld:non-nil"),
kpress(ALTMETA.."Left", "ioncore.goto_next(_chld, 'left')", "_chld:non-nil"),
--цикличное переключение фремов на разбитом деске
kpress(META.."Tab", "ioncore.goto_next(_chld, 'next')","_chld:non-nil"),
-
- Сообщения: 17
Re: ion3
Что там больно-то вываливать? Ну скратчпады с именами, ну приложения к ним прикручены.
Вот бы найти как автозапуск организовать - это было бы интереснее. При чем не просто автозапуск, а автозапуск при старте из gdm.
Хотя, вот еще хинт.
Код: Выделить всё
--[[
min_tabs.lua
lua code to auto show/hide tabs as the number of windows in an ion frame
changes from/to 1
this affects windows on WIonWS and WPaneWS workspaces but leave
windows on WFloatWS's alone
one way to enable this is by adding
dopath("min_tabs")
to cfg_ion.lua
]]
function show_only_necessary_tabs_in_frame(fp)
if WFrame.mode(fp) == 'floating' then
-- Escape: floatws thing should not be handled
return
end
-- First the logic, then the propagation back to ion
-- It should *not* be shown if there is only one app
-- However, this (single) app should not be tagged,
-- because then we would want to show it.
-- Assume the tabbar should be shown.
local show_bar = true
if WMPlex.mx_count(fp) == 1 then
local rg = fp:mx_nth(0)
if not rg:is_tagged() then
show_bar = false
end
end
-- Propagate choice
ioncore.defer(function()
-- don't touch transient frames
if fp:mode() ~= "transient" then
if show_bar then
fp:set_mode("tiled")
else
fp:set_mode("tiled-alt")
end
end
end)
end
function show_only_necessary_tabs_in_frame_wrapper(ftable)
show_only_necessary_tabs_in_frame(ftable.reg)
end
function min_tabs_setup_hook()
local hk=ioncore.get_hook("frame_managed_changed_hook")
hk:add(show_only_necessary_tabs_in_frame_wrapper)
end
function min_tabs_tag_wrapper(fr,reg)
-- Note the ugly code: this actually caters for two versions of ion3
-- I am only including this because I like Ubuntu [CC]
local oldversion = (reg["toggle_tag"] ~= nil)
if oldversion then
-- old version (for Ubuntu, can be removed later on)
reg:toggle_tag()
else
-- new version
reg:set_tagged("toggle")
end
-- recompute tabbar state
show_only_necessary_tabs_in_frame(fr)
end
--[[
Special keybinding override for this extension
]]
defbindings("WMPlex.toplevel", {
bdoc("Tag current object within the frame."),
kpress(META.."T", "min_tabs_tag_wrapper(_,_sub)", "_sub:non-nil"),
})
min_tabs_setup_hook()
кладем скриптик в .ion3/min_tabs и подключаем его. В результате фреймы не имеют заголовков. Если использовать прозрачные фреймы с обоями и прозрачные терминалы (как я urxvt например) то выглядит намного эстетичнее. Включается и выключается META + T, как это собсна видно из кода. А вообще, могу еще поделиться своей настройкой цветов и фреймов и также конфигом urxvt к нему.

Тело это только одежда
-
- Сообщения: 82
- ОС: SlackWare
Re: ion3
Мин табс я тоже использую, а вот на конф urxvt под него было бы интересно глянуть.
-
- Сообщения: 17
Re: ion3
Лови:
Код: Выделить всё
URxvt*font: -*-terminus-medium-r-normal-*-14-*-*-*-*-*-iso10646-1
URxvt*boldfint: -*-terminus-medium-r-normal-*-14-*-*-*-*-*-iso10646-1
URxvt*background: #2E3436
URxvt*cursorColor: #ABABAB
URxvt*foreground: #D3D3D3
URxvt*scrollBar: false
URxvt*color0: #000000
URxvt*color1: #AA0000
URxvt*color2: #00AA00
URxvt*color3: #AA5500
URxvt*color4: #0000AA
URxvt*color5: #AA00AA
URxvt*color6: #00AAAA
URxvt*color7: #AAAAAA
URxvt*color8: #555555
URxvt*color9: #FF5555
URxvt*color10: #55FF55
URxvt*color11: #FFFF55
URxvt*color12: #5555FF
URxvt*color13: #FF55FF
URxvt*color14: #55FFFF
URxvt*color15: #FFFFFF
URxvt*saveLines: 5000
URxvt*geometry: 75x40
URxvt*internalborder: 0
URxvt*externalborder: 0
URxvt*scrollBar_right: on
URxvt*sсrollBar: False
URxvt.scrollTtyOutput: true
URxvt*inheritPixmap: True
URxvt*shading: 0
Тело это только одежда
-
- Сообщения: 82
- ОС: SlackWare
Re: ion3
Thanks, мило смотрится. Только добавляем к этому для табов...
Чего-то мы не в ту степь полетели...
Код: Выделить всё
URxvt*perl-ext: tabbed
Чего-то мы не в ту степь полетели...

-
- Администратор
- Сообщения: 5413
- ОС: Gentoo
Re: ion3
B4rr4cuda писал(а): ↑22.07.2008 20:52Thanks, мило смотрится. Только добавляем к этомудля табов...Код: Выделить всё
URxvt*perl-ext: tabbed
Чего-то мы не в ту степь полетели...
ИМХО, табы удобнее реализовывать через screen
-
- Сообщения: 17
Re: ion3
ИМХО, табы не нужны.
Я ion пользую по причине нетерпимости к перекрывающимся окнам.
Поэтому и табы не терплю. Мне хвататет воркспейсов.
На 1 у меня - три фрейма. Один для Vim, другой для консольных команд, в третьем висит ncmpc.(он совсем маленький)
на 2 - только firefox.
на 3 - два фрейма один 3/4 экрана - mc и к нему на всякий случай на 1/4 экрана консоль.
И 4 - один фрейм для mutt
Иногда еще на 4 запускаю всяке графически проги. Хотя чаще всего они запускаются из mc, путем открытия каких либо файлов.
А потом переводятся в полноэкранный режим, таким образом оказываясь на 5 ворспейсе.
А, еще finch в scratchpad'е.
Тело это только одежда
-
- Сообщения: 82
- ОС: SlackWare
Re: ion3
Пробовал - не нравится. Нет наглядности.
Я, вообще-то, большей частью Konsole использую, никак не могу найти что-то полегче, удовлетворяющее мой не самый изощренный вкус. Urxvt понравился, но его подержка цветов меня убивает.
ИМХО табы просто неоходимы. У меня один основной воркспейс, на котором проходит большая часть моего времени. Он по мере необходимости разбивается и собирается. Активно используется 4 скретчпада. Обычно в них висит по консоле с 5-10 вкладками и десяток доков и сорцев в браузере\gvim-e\Scite.
Остальные воркспейсы для лазаруса\dia\mseide и прочих тулзов, я, по мере необходимости, создаю своим скриптиком deskman.
Поэтому вкладки мне необходимы, ввиду большой "плотности" набивки окнами.
-
- Сообщения: 1104
- ОС: ArchLinux
Re: ion3
А кто-нибудь случайно не знает, как работает режим embedded для дока? В cfg_dock.lua ставлю mode="embedded", перезапускаю ion, получаю ругань:
Дока нет. 6-я строка в cfg_dock.lua - это mod_dock.create{<...>. Кроме строки mode="embedded" в нём всё дефолтное. Строка 58 в cfg_ion.lua - это dopath("mod_dock"). С mode="floating" работает, показывается и прячется по META.."D".
Код: Выделить всё
Ion startup error log:
>> Screen 0 already has an stdisp. Refusing to add embedded dock.
>> Stack trace:
0 [C]: in 'create'
1 /home/pasha/.ion3/cfg_dock.lua:6
[Skipping unnamed C functions.]
5 [C]: in 'load_module'
6 stdin:1
[Skipping unnamed C functions.]
9 [C]: in 'dopath'
10 /home/pasha/.ion3/cfg_ion.lua:58
[Skipping unnamed C functions.]
Дока нет. 6-я строка в cfg_dock.lua - это mod_dock.create{<...>. Кроме строки mode="embedded" в нём всё дефолтное. Строка 58 в cfg_ion.lua - это dopath("mod_dock"). С mode="floating" работает, показывается и прячется по META.."D".
Компьютер служит для решения тех проблем, которых до изобретения компьютера не существовало
-
- Сообщения: 82
- ОС: SlackWare
-
- Сообщения: 1104
- ОС: ArchLinux
Re: ion3
Печально 

Компьютер служит для решения тех проблем, которых до изобретения компьютера не существовало
-
- Сообщения: 82
- ОС: SlackWare
Re: ion3
Небольшое дополнение для mpd.lua - удаляет текущую песню из списка и перемещает файл в указанную директорию:
Файл целиком, для тех кому лениво.
Код: Выделить всё
...
local settings = {
hostname = "localhost",
password = nil,
port = 6600,
volume_delta = 10,
----------------------------------
musicpath= "/home/b4rr4/Music/",
deldir= "/tmp/___music_to_delete/",
----------------------------------
}
....
----------------------------------
function MusicPD.delete_current()
local songinfo= MusicPD.call_command("currentsong")
if not io.open(settings.deldir,"r") then
local h=io.popen('mkdir '..settings.deldir,'r')
h:close()
end
if songinfo.id then
MusicPD.call_command("deleteid "..songinfo.id);
local h=io.popen('mv "'..settings.musicpath..songinfo.file..'" "'..settings.deldir..'"')
h:close()
end
end
----------------------------------
Файл целиком, для тех кому лениво.

Код:
-- Small interface to MusicPD
--
-- Author: Steve Jothen <sjothen at gmail dot com>
--
-- Requires netcat
--
-- Change your path/settings according to your setup
--
-- defbindings("WScreen", {
-- kpress("KP_6", "MusicPD.next()"), -- next song
-- kpress("KP_4", "MusicPD.previous()"), -- previous song
-- kpress("KP_2", "MusicPD.volume_down()"), -- volume down settings.volume_delta units
-- kpress("KP_8", "MusicPD.volume_up()"), -- volume up ....
-- kpress("KP_5", "MusicPD.toggle_play()") -- toggle play/pause/stop
-- })
local netcat = "/usr/bin/netcat"
local settings = {
hostname = "localhost",
password = nil,
port = 6600,
volume_delta = 10,
musicpath= "/home/b4rr4/Music/",
deldir= "/tmp/___music_to_delete/",
}
MusicPD = {}
function MusicPD.file_exists()
if io.open(netcat, "r") then -- check to see if file exists
return true
else
return false
end
end
-- creates the appropriate string to call with io.popen
--
function MusicPD.create_command(command)
local arguments = nil
if settings.password then
arguments = string.format(
"echo -n \"password %s\n%s\nclose\n\" | %s %s %d",
settings.password, command, netcat, settings.hostname, settings.port)
else
arguments = string.format(
"echo -n \"%s\nclose\n\" | %s %s %d",
command, netcat, settings.hostname, settings.port)
end
return arguments
end
-- calls the command and returns table of key, value pairs
--
function MusicPD.call_command(command)
local arg_cmd = MusicPD.create_command(command)
local values = {}
if MusicPD.file_exists() then
local handle = io.popen(arg_cmd, "r")
local line = handle:read("*l")
while line do
local _, _, key, value = string.find(line, "(.+):%s(.+)")
if key then
values[string.lower(key)] = value
end
line = handle:read("*l")
end
handle:close()
end
return values
end
function MusicPD.next()
MusicPD.call_command("next")
end
function MusicPD.previous()
MusicPD.call_command("previous")
end
function MusicPD.pause()
MusicPD.call_command("pause")
end
function MusicPD.stop()
MusicPD.call_command("stop")
end
function MusicPD.volume_up()
local stats = MusicPD.call_command("status")
local cur_volume = tonumber(stats.volume)
local new_volume
if cur_volume == 100 then
return nil
elseif cur_volume + settings.volume_delta > 100 then
new_volume = string.format("setvol %d", 100)
else
new_volume = string.format("setvol %d", settings.volume_delta + cur_volume)
end
MusicPD.call_command(new_volume)
end
function MusicPD.volume_down()
local stats = MusicPD.call_command("status")
local cur_volume = tonumber(stats.volume)
local new_volume
if cur_volume == 0 then
return nil
elseif cur_volume - settings.volume_delta < 0 then
new_volume = string.format("setvol %d", 0)
else
new_volume = string.format("setvol %d", cur_volume - settings.volume_delta)
end
MusicPD.call_command(new_volume)
end
function MusicPD.toggle_random()
local stats = MusicPD.call_command("status")
local random = tonumber(stats.random)
if random == 0 then
MusicPD.call_command("random 1")
elseif random == 1 then
MusicPD.call_command("random 0")
end
end
function MusicPD.toggle_repeat()
local stats = MusicPD.call_command("status")
local rpt = tonumber(stats["repeat"])
if rpt == 0 then
MusicPD.call_command("repeat 1")
else
MusicPD.call_command("repeat 0")
end
end
function MusicPD.toggle_play()
local stats = MusicPD.call_command("status")
if stats.state == "play" then
MusicPD.call_command("pause")
elseif stats.state == "pause" then
MusicPD.call_command("pause")
elseif stats.state == "stop" then
MusicPD.call_command("play")
end
end
function MusicPD.delete_current()
local songinfo= MusicPD.call_command("currentsong")
if not io.open(settings.deldir,"r") then
local h=io.popen('mkdir '..settings.deldir,'r')
h:close()
end
if songinfo.id then
MusicPD.call_command("deleteid "..songinfo.id);
local h=io.popen('mv "'..settings.musicpath..songinfo.file..'" "'..settings.deldir..'"')
h:close()
end
end
defbindings("WScreen", {
kpress("KP_6", "MusicPD.next()"),
kpress("KP_4", "MusicPD.previous()"),
kpress("KP_2", "MusicPD.volume_down()"),
kpress("KP_8", "MusicPD.volume_up()"),
kpress("KP_5", "MusicPD.toggle_play()"),
kpress("KP_7", "MusicPD.toggle_repeat()"),
kpress("KP_9", "MusicPD.toggle_random()")
})
-
- Администратор
- Сообщения: 5413
- ОС: Gentoo
Re: ion3
Вообще-то опасно. Можно промахнуться мимо клавиши, и слишком поздно понять, что
(bor #55946) писал(а):* evghoul только что понял, что листал фотки с флешки клавишей delete
-
- Сообщения: 82
- ОС: SlackWare
Re: ion3
/dev/random писал(а): ↑08.08.2008 22:55Вообще-то опасно. Можно промахнуться мимо клавиши, и слишком поздно понять, что
Потому и использую перемещение файла в указанную директорию (карантин

А насчет "промахнуться": как думаешь, легко промахнуться по сочетанию ктрл+альт+вин+D ?

-
- Сообщения: 9
- ОС: ArchLinux
Re: ion3
люди, подскажите:
где мне взять mod_xkb ? погуглил, не нашёл :/
насколько я понял, мне он нужен для того что бы xkbion.lua работал
а xkbion.lua мне нужен для того чтоб в моём статусбаре отображалась текущая раскладка клавы )
подскажите, пожалуйста..
а я в свою очередь могу от себя дать вот что: я тут позадирал автора ion3, слегка, и он сделал официальный патч на уникод, чтоб русские заголовки в firefox, например, отображались корректно.
прилагаю скриншот того как выглядит заголовок с Terminus шрифтом:
если кому нибудь нужен этот патч (он для ion-3-20080707) пишете, я дам.
где мне взять mod_xkb ? погуглил, не нашёл :/
насколько я понял, мне он нужен для того что бы xkbion.lua работал
а xkbion.lua мне нужен для того чтоб в моём статусбаре отображалась текущая раскладка клавы )
подскажите, пожалуйста..
а я в свою очередь могу от себя дать вот что: я тут позадирал автора ion3, слегка, и он сделал официальный патч на уникод, чтоб русские заголовки в firefox, например, отображались корректно.
прилагаю скриншот того как выглядит заголовок с Terminus шрифтом:
если кому нибудь нужен этот патч (он для ion-3-20080707) пишете, я дам.
У вас нет необходимых прав для просмотра вложений в этом сообщении.
-
- Сообщения: 82
- ОС: SlackWare
Re: ion3
Хм, у меня и без патча на утф-8 все красиво - тоже терминус, тоже все отображает.
Или я чего-то не догоняю?
Или я чего-то не догоняю?
-
- Сообщения: 9
- ОС: ArchLinux
Re: ion3
когда я собрал ion3 из исходников, русские шрифты в заголовках были жирными/расплывчатыми, и просто выглядели так как будто были вытащены из задницы..

может быть у тебя какие то неофициальные/неподдержаные патчи прописаны (типа xft/fontconfig) ?
-
- Сообщения: 323
- ОС: Debian Lenny
Re: ion3
valpolyakov писал(а): ↑10.08.2008 23:16если кому нибудь нужен этот патч (он для ion-3-20080707) пишете, я дам.
можете поделится? я думаю он будет полезен, не только мне.
-
- Сообщения: 9
- ОС: ArchLinux
Re: ion3
wzrd писал(а): ↑11.08.2008 02:45valpolyakov писал(а): ↑10.08.2008 23:16если кому нибудь нужен этот патч (он для ion-3-20080707) пишете, я дам.
можете поделится? я думаю он будет полезен, не только мне.
да пожалуйста: http://www.polyakov.me/unihack.diff
кладёте этот патч в исходники, и делаете patch -p1 < unihack.diff
со мной кто нибудь поделится тем о чём я попросил?

-
- Сообщения: 1104
- ОС: ArchLinux
Re: ion3
mod_xkb раньше лежал в darcs. Я его с полгода назад пытался прикручивать, но не осилил. Так и остался на xxkb. Потом, начитамшись вот этого сделал переключение левым и правым ctrl, а xxkb выкинул.
Собирать так: создать в исходниках ion'а каталог mod_xkb, положить туда mod_xkb.c и Makefile (по аналогии с другими модулями). Потом добавить в modulelist.mk в конец строки MODULE_LIST mod_xkb и пересобрать ion. С этим у меня никаких проблем не было, а вот дальше никак. Прописываю в cfg_ion пример из xkbion'а, он ругается не понятно на что и никакой xkbion не работает. Не знаю, может сейчас что-нибудь и исправили, но мне уже не надо
.
PS: насчёт патча: как пишет автор, ion тут не при чём, патчить надо иксы, см. предыдущую страницу.
http://modeemi.cs.tut.fi/~tuomov/ion/faq/e...y_problems.html
Собирать так: создать в исходниках ion'а каталог mod_xkb, положить туда mod_xkb.c и Makefile (по аналогии с другими модулями). Потом добавить в modulelist.mk в конец строки MODULE_LIST mod_xkb и пересобрать ion. С этим у меня никаких проблем не было, а вот дальше никак. Прописываю в cfg_ion пример из xkbion'а, он ругается не понятно на что и никакой xkbion не работает. Не знаю, может сейчас что-нибудь и исправили, но мне уже не надо

PS: насчёт патча: как пишет автор, ion тут не при чём, патчить надо иксы, см. предыдущую страницу.
http://modeemi.cs.tut.fi/~tuomov/ion/faq/e...y_problems.html
Компьютер служит для решения тех проблем, которых до изобретения компьютера не существовало
-
- Сообщения: 82
- ОС: SlackWare
-
- Администратор
- Сообщения: 5413
- ОС: Gentoo
Re: ion3
8 августа автор изменил способ вывода текста (пока только в darcs), так, что исправление XLC_LOCALE больше не требуется.
По-видимому, приведённый valpolyakov патч - это он и есть.
-
- Сообщения: 9
- ОС: ArchLinux
Re: ion3
мне всё ещё никто не объяснил как я могу получить индикатор текущей раскладки клавиатуры в ion3 statusbar.
кто нибудь может объяснить каким образом получить этот индикатор?
я не хочу использовать чего нибудь типа KDE-евского kkbswitch, ибо мне кажется устанавливать kdebase и иметь кучу зависимостей для чего то настолько тривиального просто глупо.
что мне нужно сделать чтоб просто получить либо "US" либо "RU" на statusbar?
кто нибудь может объяснить каким образом получить этот индикатор?
я не хочу использовать чего нибудь типа KDE-евского kkbswitch, ибо мне кажется устанавливать kdebase и иметь кучу зависимостей для чего то настолько тривиального просто глупо.
что мне нужно сделать чтоб просто получить либо "US" либо "RU" на statusbar?
-
- Бывший модератор
- Сообщения: 2199
- Статус: главный форумный маргинал
- ОС: gnu/linux
Re: ion3
что мне нужно сделать чтоб просто получить либо "US" либо "RU" на statusbar?
ну если на этот статусбар можно получать stdout, то проще всего юзать http://www.rootshell.be/~polachok/code/skb.tar.gz
И немедленно выпил.
-
- Администратор
- Сообщения: 5413
- ОС: Gentoo
Re: ion3
valpolyakov писал(а): ↑17.08.2008 02:19мне всё ещё никто не объяснил как я могу получить индикатор текущей раскладки клавиатуры в ion3 statusbar.
кто нибудь может объяснить каким образом получить этот индикатор?
я не хочу использовать чего нибудь типа KDE-евского kkbswitch, ибо мне кажется устанавливать kdebase и иметь кучу зависимостей для чего то настолько тривиального просто глупо.
что мне нужно сделать чтоб просто получить либо "US" либо "RU" на statusbar?
Да всё объяснили. xkbion.lua с этим прекрасно справляется (см. параметр statusname). Если есть проблемы с компиляцией mod_xkb - решение описали несколько постов назад. А если непонятно, где его взять, чтобы скомпилировать по инструкции выше, то он в пакете scripts лежит.
-
- Сообщения: 9
- ОС: ArchLinux
Re: ion3
/dev/random писал(а): ↑17.08.2008 02:36Да всё объяснили. xkbion.lua с этим прекрасно справляется (см. параметр statusname). Если есть проблемы с компиляцией mod_xkb - решение описали несколько постов назад. А если непонятно, где его взять, чтобы скомпилировать по инструкции выше, то он в пакете scripts лежит.
в каком пакете scripts?
я вот здесь смотрел: http://modeemi.fi/~tuomov/repos/ion-scripts-3/
там нету.
в darcs смотрел (darcs get --lazy http://modeemi.fi/~tuomov/repos/ion-3plus/ )
там тоже нет.
что за пакет? где его взять?