Compare commits
6 Commits
b34a43897a
...
70da3a582d
Author | SHA1 | Date | |
---|---|---|---|
70da3a582d | |||
6d4dfbe029 | |||
a8f7448245 | |||
b04c91c897 | |||
ff4d5e1414 | |||
b43dc345d3 |
125
rc.fnl
125
rc.fnl
@ -17,6 +17,37 @@
|
|||||||
(when (string.find (output:name) "^WL-")
|
(when (string.find (output:name) "^WL-")
|
||||||
(output:set_mode 360 720 0)))
|
(output:set_mode 360 720 0)))
|
||||||
|
|
||||||
|
(kiwmi:on
|
||||||
|
"output"
|
||||||
|
(fn [output]
|
||||||
|
(resize-wayland-backend output)
|
||||||
|
(let [[width height] (output:size)
|
||||||
|
r (output:renderer)
|
||||||
|
kill (texture.from-file r "close-window.png")
|
||||||
|
launch (texture.from-file r "launcher.png")
|
||||||
|
spinner (texture.from-file r "carousel.png")]
|
||||||
|
(output:on "render"
|
||||||
|
(fn [{: output : renderer}]
|
||||||
|
(let [bar-height (/ height 15)]
|
||||||
|
(renderer:draw_rect :#00000077
|
||||||
|
0 (- height bar-height)
|
||||||
|
width bar-height)
|
||||||
|
(renderer:draw_texture
|
||||||
|
kill
|
||||||
|
matrix.identity
|
||||||
|
30 (- height bar-height)
|
||||||
|
0.7)
|
||||||
|
(renderer:draw_texture
|
||||||
|
launch
|
||||||
|
matrix.identity
|
||||||
|
(- (/ width 2) (/ bar-height 2)) (- height bar-height)
|
||||||
|
0.7)
|
||||||
|
(renderer:draw_texture
|
||||||
|
spinner
|
||||||
|
matrix.identity
|
||||||
|
(- width 30 bar-height) (- height bar-height)
|
||||||
|
0.7)))))))
|
||||||
|
|
||||||
(fn kill-window []
|
(fn kill-window []
|
||||||
(print "DIE")
|
(print "DIE")
|
||||||
true)
|
true)
|
||||||
@ -29,95 +60,25 @@
|
|||||||
(print "spin spin sugar")
|
(print "spin spin sugar")
|
||||||
true)
|
true)
|
||||||
|
|
||||||
(fn placements [output]
|
|
||||||
(let [(width height) (output:size)
|
|
||||||
bar-height (/ height 15)]
|
|
||||||
{
|
|
||||||
|
|
||||||
:application {
|
|
||||||
:x 0
|
|
||||||
:y 0
|
|
||||||
:w width
|
|
||||||
:h (- height (* bar-height 1.1))
|
|
||||||
}
|
|
||||||
:bar {
|
|
||||||
:x 0
|
|
||||||
:y (- height (* bar-height 1.1))
|
|
||||||
:w width
|
|
||||||
:h (* bar-height 1.1)
|
|
||||||
}
|
|
||||||
:kill {
|
|
||||||
:x (- (* width 0.25) (/ bar-height 2))
|
|
||||||
:y (- height bar-height)
|
|
||||||
:w bar-height
|
|
||||||
:h bar-height
|
|
||||||
:on-press kill-window
|
|
||||||
}
|
|
||||||
:launch {
|
|
||||||
:x (- (* width 0.5) (/ bar-height 2))
|
|
||||||
:y (- height bar-height)
|
|
||||||
:w bar-height
|
|
||||||
:h bar-height
|
|
||||||
:on-press launch
|
|
||||||
}
|
|
||||||
:overview {
|
|
||||||
:x (- (* width 0.75) (/ bar-height 2))
|
|
||||||
:y (- height bar-height)
|
|
||||||
:w bar-height
|
|
||||||
:h bar-height
|
|
||||||
:on-press carousel
|
|
||||||
}
|
|
||||||
}))
|
|
||||||
|
|
||||||
(kiwmi:on
|
|
||||||
"output"
|
|
||||||
(fn [output]
|
|
||||||
(resize-wayland-backend output)
|
|
||||||
(let [(width height) (output:size)
|
|
||||||
r (output:renderer)
|
|
||||||
kill (texture.from-file r "close-window.png")
|
|
||||||
launch (texture.from-file r "launcher.png")
|
|
||||||
spinner (texture.from-file r "carousel.png")]
|
|
||||||
(output:on "render"
|
|
||||||
(fn [{: output : renderer}]
|
|
||||||
(let [buttons (placements output)]
|
|
||||||
(renderer:draw_rect :#77000077
|
|
||||||
buttons.bar.x buttons.bar.y
|
|
||||||
buttons.bar.w buttons.bar.h)
|
|
||||||
(renderer:draw_texture
|
|
||||||
kill
|
|
||||||
matrix.identity
|
|
||||||
buttons.kill.x buttons.kill.y
|
|
||||||
0.7)
|
|
||||||
(renderer:draw_texture
|
|
||||||
launch
|
|
||||||
matrix.identity
|
|
||||||
buttons.launch.x buttons.launch.y
|
|
||||||
0.7)
|
|
||||||
(renderer:draw_texture
|
|
||||||
spinner
|
|
||||||
matrix.identity
|
|
||||||
buttons.overview.x buttons.overview.y
|
|
||||||
0.7)))))))
|
|
||||||
|
|
||||||
|
|
||||||
(let [cursor (kiwmi:cursor)]
|
(let [cursor (kiwmi:cursor)]
|
||||||
(cursor:on "button_down"
|
(cursor:on "button_down"
|
||||||
(fn [button]
|
(fn [button]
|
||||||
(let [(x y) (cursor:pos)]
|
(let [(x y) (cursor:pos)]
|
||||||
(each [name attribs (pairs (placements (kiwmi:active_output)))]
|
(if (> y 680)
|
||||||
(if (and
|
(if (< x 70)
|
||||||
(<= attribs.x x)
|
(kill-window)
|
||||||
(< x (+ attribs.x attribs.w))
|
(and (< 150 x) (< x 190))
|
||||||
(<= attribs.y y)
|
(launch)
|
||||||
(< y (+ attribs.y attribs.h)))
|
(and (< 285 x) (< x 330))
|
||||||
(if attribs.on-press (attribs.on-press))))))))
|
(carousel)
|
||||||
|
false))))))
|
||||||
|
|
||||||
|
|
||||||
(kiwmi:on "view"
|
(kiwmi:on "view"
|
||||||
(fn [view]
|
(fn [view]
|
||||||
(let [geom (placements (kiwmi:active_output))]
|
(let [(w h) (: (kiwmi:active_output) :size)]
|
||||||
(view:resize geom.application.w geom.application.h)
|
(view:resize w h)
|
||||||
(view:move geom.application.x geom.application.y))
|
(view:move 0 0))
|
||||||
(view:focus)
|
(view:focus)
|
||||||
(view:show)
|
(view:show)
|
||||||
(view:on "request_move" #(view:imove))
|
(view:on "request_move" #(view:imove))
|
||||||
|
14
texture.fnl
14
texture.fnl
@ -1,14 +0,0 @@
|
|||||||
(local { : GdkPixbuf } (require :lgi))
|
|
||||||
|
|
||||||
(fn from-file [renderer filename]
|
|
||||||
(let [pixels
|
|
||||||
(let [(buf err) (GdkPixbuf.Pixbuf.new_from_file filename)]
|
|
||||||
(if (not buf) (print :err err))
|
|
||||||
buf)]
|
|
||||||
(renderer:texture_from_pixels
|
|
||||||
pixels.rowstride
|
|
||||||
pixels.width
|
|
||||||
pixels.height
|
|
||||||
(pixels:get_pixels))))
|
|
||||||
|
|
||||||
{ : from-file }
|
|
Loading…
Reference in New Issue
Block a user