Thanks to visit codestin.com
Credit goes to github.com

Skip to content
/ xosd Public

Ruby wrapper for xosd - X on screen display library

License

Notifications You must be signed in to change notification settings

ynagorny/xosd

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

9 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

xosd

Ruby wrapper for xosd - X on screen display library

libxosd version

The gem was designed for libxosd version 2.2.14 but likely to work with other versions too.

Usage

Constructor

Instantiate an instance of XOSD:

require 'xosd'

xosd = XOSD.new

You may pass zero or more of the options to the constructor:

Option Description
:lines max number of lines in the on screen message
:position one of :top, :middle, :bottom
:align one of :left, :center, :right
:colour string with message color
:font string with font
:horizontal_offset horizontal message offset
:vertical_offset vertical message offset
:outline_offset message outline offset
:outline_colour message outline color
:shadow_offset message shadow offset
:shadow_colour message shadow color
:bar_length length of the percentage or slider bar
:timeout how long the message is displayed, seconds

All of the options have the corresponding setter, e.g. you can either:

xosd = XOSD.new(timeout: 5)

or

xosd = XOSD.new
xosd.timeout = 5

Example:

xosd = XOSD.new(
    position: :bottom,
    align: :center,
    vertical_offset: 100,
    font: '-*-arial-*-*-*-*-*-320-*-*-*-*-*-*',
    colour: 'black',
    outline_colour: 'orange',
    outline_offset: 1,
    shadow_colour: 'white',
    shadow_offset: 1,
    timeout: 3
)
xosd.display 'A line to display on screen'
xosd.teardown

Teardown

When done with displaying on screen messages, make sure to teardown the object by calling the teardown method:

xosd.teardown

If you don't do it, it will try to tear itself down during garbage collection, but you should not depend on it.

Displaying a string

To display a string use display method:

xosd.display 'A message to display on screen'

You may use several lines:

xosd = XOSD.new(lines: 3)
xosd.display 'First line to display', line: 0
xosd.display 'Second line to display', line: 1
xosd.display 'Third line to display', line: 2
xosd.teardown

You may use #scroll_by to scroll the messages:

xosd.scroll_by 1

Displaying a percentage bar

To display a bar similar to TV volume bar:

xosd = XOSD.new(bar_length: 100)
xosd.bar_length = 100 # same effect as above
xosd.display_bar 50

Use :bar_length constructor option or set bar_length later to define how long the bar will be.

Displaying a slider

To display a slider similar to TV brightness control:

xosd.display_slider 50

Adjust slider length similar to how it is done for the percentage bar.

On screen?

Call on_screen? method to find out if anything is being displayed on screen.

xosd.on_screen?

Wait until message is gone

You may wait for the message to disappear using xosd_wait_until_no_display:

xosd.xosd_wait_until_no_display

Hide and show

You may hide and show the last displayed message

xosd.dispaly 'A message'
xosd.hide
xosd.show

Virtual machine for gem development

If you are interested in making changes to the gem, you may want to setup a virtual machine to assist with that.

  • Install Virtual Box from https://www.virtualbox.org/

  • Install Vagrant from https://www.vagrantup.com/

  • Provision the virtual machine (it will be named xosd):

    $ vagrant up

  • Add ssh info of the virtual machine to the ssh config:

    $ vagrant ssh-config >> ~/.ssh/config

  • To open an ssh session with the virtual machine (the gem folder will be mounted under /vagrant):

    $ ssh -X xosd

About

Ruby wrapper for xosd - X on screen display library

Resources

License

Stars

Watchers

Forks

Packages

No packages published