- +

Автор: ferty Тема: Хочу как в ChaletOS :)  (Прочитано 2419 раз)

Оффлайн ferty

  • Начинающий
  • *
  • Сообщений: 31
  • Репутация: +0/-0
    • Просмотр профиля
Хочу как в ChaletOS :)
« : Август 25, 2015, 19:01:57 »
Вообще, вот здесь описан сам зверь. Симпатично и практично, на мой взгляд есесснно. Если кто в курсе, то подскажите что там за часики такие стоят и как установить их? И как они перенесли  вниз кнопки "выйти" и "настройки" в меню whisker, желательно конкретные действия).
Скрины часов и меню:


Оффлайн denkin

  • Global Moderator
  • Старожил
  • *****
  • Сообщений: 932
  • Репутация: +66/-2
    • Просмотр профиля
Re: Хочу как в ChaletOS :)
« Ответ #1 : Август 25, 2015, 19:14:47 »
Часы - скорее всего реализованы средствами conky. Посмотри для начала screenlets - это аналоги виджетов, есть в репозитории.

Меню - правкой конфигов. Попробуй пообщаться с автором этой замечательной темы
« Последнее редактирование: Август 25, 2015, 20:12:16 от denkin »

Оффлайн ferty

  • Начинающий
  • *
  • Сообщений: 31
  • Репутация: +0/-0
    • Просмотр профиля
Re: Хочу как в ChaletOS :)
« Ответ #2 : Август 25, 2015, 20:54:08 »
Ага с конфигом  whisker понятно, насчёт коньков - вродн реализовано с помощью этого - http://gnome-look.org/content/show.php/Conky+lua?content=139024

Оффлайн denkin

  • Global Moderator
  • Старожил
  • *****
  • Сообщений: 932
  • Репутация: +66/-2
    • Просмотр профиля
Re: Хочу как в ChaletOS :)
« Ответ #3 : Август 26, 2015, 07:37:50 »
Ага с конфигом  whisker понятно, насчёт коньков - вродн реализовано с помощью этого - http://gnome-look.org/content/show.php/Conky+lua?content=139024
коньки - это мегасуперпуперпрога только там конфиги копать надо, скрипты сочинять. Я когда то давно (году так в 2010) поколупал немного и бросил.
Мне при случае screenlets хватает - часики на рабочий стол навесить и т.п.
http://help.ubuntu.ru/wiki/conky
http://forum.ubuntu.ru/index.php?topic=7544.0
http://forum.ubuntu.ru/?topic=63273.0
« Последнее редактирование: Август 26, 2015, 07:41:24 от denkin »

Оффлайн ferty

  • Начинающий
  • *
  • Сообщений: 31
  • Репутация: +0/-0
    • Просмотр профиля
Re: Хочу как в ChaletOS :)
« Ответ #4 : Август 26, 2015, 11:58:09 »
denkin,
Спасибо). Попробую на досуге покопаться, а пока вытащил таки конфиг часиков. Может кто подскажет как перевести на русский дни недели, которые показываются в часах или может как просто убрать их от туда, оставить просто часики?
Вот сам конфиг часов:
[spoiler]
--[[
minimal clock for conky
based upon similar android clock widget

written by easysid
Tuesday, 03 February 2015 16:20 IST
]]--


require 'cairo'


clock_table = {
        -- clock style options
        use12hourformat = false,  -- 12 hr format. Set to false for 24 hrs
        showday = true,      -- show the day of the week
        draw_background = true, -- set to false if you do not want a bg fill
        draw_seconds = true, -- draw the seconds ring
            -- options if above is true
            seconds_ring_width = 5, -- seconds ring width
            seconds_ring_base_color = {0xFFFFFF, 0}, -- base color
            seconds_ring_fill_color = {0xFFFFFF, 0.6},-- fill color
        --
        -- main settings
        --
        xc = 125, -- centre of the clock
        yc = 125,
        R  = 100, -- outer radius
        r  = 20, -- minute ring radius
        border_width = 2,
        -- color settings. {color, alpha}
        background_color = {0xFFFFFF, 0.1}, -- bgcolor id draw_background is true.
        fill_color   = {0x2E9AFE, 1},       -- fill color for minutes ring b5145c
        border_color = {0xFFFFFF, 1},       -- border color
        text_color   = {0xFFFFFF, 1},       -- color of numbers
        -- font settings
        -- specify the font as font:face, where face is bold, italic, bolditalic
        hour_font = "lato",  -- font face for hours
        min_font  = "lato",  -- font face for minutes
        day_font  = "lato",  -- font face for day and time period
        hour_font_size = 96,  -- font size for hours
        min_font_size  = 14,   -- font size for minutes
        day_font_size  = 20,   -- font size for day and period
}


function conky_main()
    if conky_window == nil then return end
    local cs = cairo_xlib_surface_create(conky_window.display, conky_window.drawable, conky_window.visual, conky_window.width, conky_window.height)
    cr = cairo_create(cs)
    draw_clock(cr, clock_table)
    cairo_destroy(cr)
    cairo_surface_destroy(cs)
    cr=nil
end -- end main function

function draw_clock(cr, t)
    -- The primary function to draw the clock
    local divs = 60
    local hour = tonumber(os.date("%H"))
    local minutes = tonumber(os.date("%M"))
    local m_theta = minutes*2*math.pi/divs - math.pi/2 -- calculate the angle
    local xm = t.xc + t.R*math.cos(m_theta)
    local ym = t.yc + t.R*math.sin(m_theta)
    -- get font and font face
    local dfont, dface = splitfont(t.day_font)
    local mfont, mface = splitfont(t.min_font)
    --print(mfont,mface)
    -- calculate text extents
    if t.use12hourformat or t.showday then
         hy = getheight(hour,t.hour_font, 'normal', t.hour_font_size)
    end
    -- draw the outer ring
    if t.draw_background then
        cairo_set_source_rgba(cr, rgba_to_r_g_b_a(t.background_color))
        cairo_arc(cr, t.xc, t.yc, t.R, 0, 2*math.pi)
        cairo_fill(cr)
    end
    if t.draw_seconds then
        local seconds = tonumber(os.date("%S"))
        local s_theta = seconds*2*math.pi/divs - math.pi/2 -- calculate the angle
        cairo_set_line_width(cr, t.seconds_ring_width)
        cairo_set_source_rgba(cr, rgba_to_r_g_b_a(t.seconds_ring_base_color))
        -- draw the base ring
        cairo_arc(cr, t.xc, t.yc, t.R, 0, 2*math.pi)
        cairo_stroke(cr)
        -- draw the seconds indicator circle
        cairo_set_source_rgba(cr, rgba_to_r_g_b_a(t.seconds_ring_fill_color))
        cairo_arc(cr, t.xc, t.yc, t.R, -math.pi/2, s_theta)
        cairo_stroke(cr)
    else
        cairo_set_line_width(cr, t.border_width)
        cairo_set_source_rgba(cr, rgba_to_r_g_b_a(t.border_color))
        cairo_arc(cr, t.xc, t.yc, t.R, 0, 2*math.pi)
        cairo_stroke(cr)
    end
    -- draw the minutes ring
    cairo_set_line_width(cr, t.border_width)
    cairo_set_source_rgba(cr, rgba_to_r_g_b_a(t.fill_color))
    cairo_arc(cr, xm, ym, t.r, 0, 2*math.pi)
    cairo_fill(cr)
    cairo_set_source_rgba(cr, rgba_to_r_g_b_a(t.border_color))
    cairo_arc(cr, xm, ym, t.r, 0, 2*math.pi)
    cairo_stroke(cr)
    --
    -- text drawing
    --
    -- check the time format
    if t.use12hourformat then
        hour = tonumber(os.date("%l"))
        local ampm = os.date("%p")
        out({x=t.xc,y=t.yc+hy,f=dfont,face=dface,fs=t.day_font_size,txt=ampm,hj='c',vj='n'})
    end
    if t.showday then
        local day = os.date("%a")
        out({x=t.xc,y=t.yc-hy,f=dfont,face=dface,fs=t.day_font_size,txt=day,hj='c',vj='t'})
    end
    out({x=t.xc,y=t.yc,f=t.hour_font,fs=t.hour_font_size,txt=hour,hj='c',vj='m'})
    out({x=xm,y=ym,f=mfont,face=mface,fs=t.min_font_size,txt=minutes,hj='c',vj='m'})
end -- end draw_clock

function out(txj)--c,a,f,fs,face,x,y,txt,hj,vj,ro,sxo,syo,sfs,sface,sc,sa #
   -- Taken from mrpeachy's wun.lua
    local extents=cairo_text_extents_t:create()
    tolua.takeownership(extents)
    local function justify(jtxt,x,hj,y,vj,f,face,fs)
        if face=="normal" then
            face={f,CAIRO_FONT_SLANT_NORMAL,CAIRO_FONT_WEIGHT_NORMAL}
        elseif face=="bold" then
            face={f,CAIRO_FONT_SLANT_NORMAL,CAIRO_FONT_WEIGHT_BOLD}
        elseif face=="italic" then
            face={f,CAIRO_FONT_SLANT_ITALIC,CAIRO_FONT_WEIGHT_NORMAL}
        elseif face=="bolditalic" then
            face={f,CAIRO_FONT_SLANT_ITALIC,CAIRO_FONT_WEIGHT_BOLD}
        else
            print ('face not set correctly - "normal","bold","italic","bolditalic"')
        end
        cairo_select_font_face (cr,face[1],face[2],face[3])
        cairo_set_font_size(cr,fs)
        cairo_text_extents(cr,jtxt,extents)
        local wx=extents.x_advance
        local wd=extents.width
        local hy=extents.height
        local bx=extents.x_bearing
        local by=extents.y_bearing+hy
        local tx=x
        local ty=y
        --set horizontal alignment - l, c, r
        if hj=="l" then
            x=x-bx
        elseif hj=="c" then
            x=x-((wx-bx)/2)-bx
        elseif hj=="r" then
            x=x-wx
        else
            print ("hj not set correctly - l, c, r")
        end
        --vj. n=normal, nb=normal-ybearing, m=middle, mb=middle-ybearing, t=top
        if vj=="n" then
            y=y
        elseif vj=="nb" then
            y=y-by
        elseif vj=="m" then
            y=y+((hy-by)/2)
        elseif vj=="mb" then
            y=y+(hy/2)-by
        elseif vj=="t" then
            y=y+hy-by
        else
            print ("vj not set correctly - n, nb, m, mb, t")
        end
        return face,fs,x,y,rad,rad2,tx,ty
    end--justify local function #########################################################
    --set variables
    local c=txj.c or {0xffffff, 1}
    local a=txj.a or 1
    local f=txj.f or "monospace"
    local fs=txj.fs     or 12
    local x=txj.x     or 100
    local y=txj.y or 100
    local txt=txj.txt or "text"
    local hj=txj.hj or "l"
    local vj=txj.vj or "n"
    local face=txj.face or "normal"
    --print text ##################################################################
    local face,fs,x,y=justify(txt,x,hj,y,vj,f,face,fs)
    cairo_select_font_face (cr,face[1],face[2],face[3])
    cairo_set_font_size(cr,fs)
    cairo_move_to (cr,x,y)
    cairo_set_source_rgba (cr,rgba_to_r_g_b_a(c))
    cairo_show_text (cr,txt)
    cairo_stroke (cr)
    return nx
end--function ou

function rgba_to_r_g_b_a(tcolor)
local color,alpha=tcolor[1],tcolor[2]
return ((color / 0x10000) % 0x100) / 255.,
((color / 0x100) % 0x100) / 255., (color % 0x100) / 255., alpha
end --end rgba

function getheight(txt,f,face,fs)
    -- Return the height of text. Needed for proper placement
    local extents=cairo_text_extents_t:create()
    tolua.takeownership(extents)
    if face=="normal" then
        face={f,CAIRO_FONT_SLANT_NORMAL,CAIRO_FONT_WEIGHT_NORMAL}
    elseif face=="bold" then
        face={f,CAIRO_FONT_SLANT_NORMAL,CAIRO_FONT_WEIGHT_BOLD}
    elseif face=="italic" then
        face={f,CAIRO_FONT_SLANT_ITALIC,CAIRO_FONT_WEIGHT_NORMAL}
    elseif face=="bolditalic" then
        face={f,CAIRO_FONT_SLANT_ITALIC,CAIRO_FONT_WEIGHT_BOLD}
    else
        print ('face not set correctly - "normal","bold","italic","bolditalic"')
    end
    cairo_select_font_face (cr,face[1],face[2],face[3])
    cairo_set_font_size(cr,fs)
    cairo_text_extents(cr,txt,extents)
    return extents.height
end -- end getheight

function splitfont(s)
    -- Return font and face
    if s:find(':') then
       return s:match("([^:]+):([^:]+)")
    else
        return s, nil
    end
end -- end splitfont
[/spoiler]

Оффлайн denkin

  • Global Moderator
  • Старожил
  • *****
  • Сообщений: 932
  • Репутация: +66/-2
    • Просмотр профиля
Re: Хочу как в ChaletOS :)
« Ответ #5 : Август 28, 2015, 21:11:09 »
потрогал сегодня оську на флешке - годная сборка, для неподготовленного пользователя, ИМХО, удобней чем Xubuntu с нуля настроена.

прикольные инструменты по настройке добавлены.

Оффлайн ferty

  • Начинающий
  • *
  • Сообщений: 31
  • Репутация: +0/-0
    • Просмотр профиля
Re: Хочу как в ChaletOS :)
« Ответ #6 : Август 29, 2015, 12:00:46 »
потрогал сегодня оську на флешке - годная сборка, для неподготовленного пользователя, ИМХО, удобней чем Xubuntu с нуля настроена.
Вот именно, :).
Хочу сделать русифицированный вариант и выложить в открытый доступ...проблема для меня  в старом ядре "ШалетОС" (3.13) при том что на дворе давно 3.19 юзается (по крайней мере для моего железа это имеет значение).
В итоге планирую сделать сборку на стандартной xubuntu 14.04.3 плюс фишки от Шалет).
« Последнее редактирование: Август 29, 2015, 12:20:20 от ferty »

Оффлайн denkin

  • Global Moderator
  • Старожил
  • *****
  • Сообщений: 932
  • Репутация: +66/-2
    • Просмотр профиля
Re: Хочу как в ChaletOS :)
« Ответ #7 : Август 29, 2015, 12:22:20 »
там же репозитории убунту используются:
1. Подключается backports
2. Ставится lts-vivid ядро - подробнее тут
3. Перезагрузится

Если все в порядке, то можно даже через синаптик вычистить "родное" ядро. У меня ядро 3.19 в 14.04 еще с мая стоит - как только в бекпорте выложили.

Оффлайн ferty

  • Начинающий
  • *
  • Сообщений: 31
  • Репутация: +0/-0
    • Просмотр профиля
Re: Хочу как в ChaletOS :)
« Ответ #8 : Август 29, 2015, 18:21:13 »
там же репозитории убунту используются:
1. Подключается backports
2. Ставится lts-vivid ядро - подробнее тут
3. Перезагрузится

Если все в порядке, то можно даже через синаптик вычистить "родное" ядро...
В том-то и дело что не всё в порядке - при сборке дистра, (именно при обновлении ядра, вышеприведённым способом включительно терминал сыпится ошибками((...легче ИМХО новую сборку сделать и прикрутить все фишки от ShaletOS.

Оффлайн denkin

  • Global Moderator
  • Старожил
  • *****
  • Сообщений: 932
  • Репутация: +66/-2
    • Просмотр профиля
Re: Хочу как в ChaletOS :)
« Ответ #9 : Август 29, 2015, 18:59:15 »
ошибки могут быть разве что с обновлением xorg связаны, так его можно не ставить:
sudo apt-get install linux-generic-lts-vivid

Оффлайн ferty

  • Начинающий
  • *
  • Сообщений: 31
  • Репутация: +0/-0
    • Просмотр профиля
Re: Хочу как в ChaletOS :)
« Ответ #10 : Сентябрь 04, 2015, 12:23:33 »
Вообщем пока нет времени на это дело)). к тому же разработчик вроде обещал подумать чтобы в октябре запилить сборку с ядром 4.2 ...живы, здоровы будем там и поглядим, что можно будет сделать..

Оффлайн denkin

  • Global Moderator
  • Старожил
  • *****
  • Сообщений: 932
  • Репутация: +66/-2
    • Просмотр профиля
Re: Хочу как в ChaletOS :)
« Ответ #11 : Сентябрь 04, 2015, 19:16:56 »
ну да! установит в своей Убунту ядро 4.2, запишет с remastersys исошник - и все, готова сборка готов дистр :)

Оффлайн ferty

  • Начинающий
  • *
  • Сообщений: 31
  • Репутация: +0/-0
    • Просмотр профиля
Re: Хочу как в ChaletOS :)
« Ответ #12 : Сентябрь 05, 2015, 18:02:39 »
ну да! установит в своей Убунту ядро 4.2, запишет с remastersys исошник - и все, готова сборка готов дистр :)
Да пофиг как он там будет собирать, лишь бы "пахало" )))... а так то да - с remastersys гораздо проще сварганить дистр, чем собирать с нуля.