quick_start 0.2.5 → 0.3.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/.gitignore +1 -0
- data/README.rdoc +15 -16
- data/Rakefile +15 -0
- data/VERSION +1 -0
- data/bin/quick_start +3 -7
- data/lib/quick_start/config.rb +48 -0
- data/lib/quick_start/core.rb +49 -0
- data/lib/quick_start/executable.rb +28 -0
- data/lib/quick_start/runner.rb +16 -0
- data/lib/quick_start/templates/quick_start +4 -0
- data/lib/quick_start/{quick_start.glade → ui/quick_start.glade} +0 -0
- data/lib/quick_start/{quick_start_2_glade.rb → ui/quick_start_2_glade.rb} +18 -18
- data/lib/quick_start.rb +5 -2
- data/quick_start.gemspec +53 -0
- metadata +17 -10
- data/lib/quick_start/program.rb +0 -29
data/.gitignore
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
pkg
|
data/README.rdoc
CHANGED
@@ -1,28 +1,27 @@
|
|
1
|
-
= QuickStart
|
1
|
+
= QuickStart
|
2
2
|
|
3
|
-
|
4
|
-
|
5
|
-
|
6
|
-
* evolution
|
7
|
-
* skype
|
8
|
-
* gnome-terminal
|
3
|
+
GTK application used to quickly choose startup programs for current session.
|
4
|
+
Define set of applications and than check or uncheck the ones needed just
|
5
|
+
after window manager loaded.
|
9
6
|
|
10
|
-
|
7
|
+
== Installation
|
8
|
+
|
9
|
+
sudo gem sources -a http://gemcutter.org
|
10
|
+
sudo gem install quick_start
|
11
|
+
|
12
|
+
GNOME panel:
|
13
|
+
System -> Preferences -> Startup Applications, add new item and put /usr/bin/quick_start as command.
|
11
14
|
|
12
|
-
|
15
|
+
== Configuration
|
16
|
+
|
17
|
+
Configuration is provided in ~/.quick_start
|
18
|
+
Just go there and see the examples
|
13
19
|
|
14
20
|
== Dependencies
|
15
21
|
|
16
22
|
* ruby
|
17
23
|
* libglade2-ruby
|
18
24
|
|
19
|
-
== Installation
|
20
|
-
|
21
|
-
sudo gem install mlomnicki-quick_start
|
22
|
-
|
23
|
-
At GNOME panel:
|
24
|
-
System -> Preferences -> Startup Applications, add new item and put /usr/bin/quick_start as command.
|
25
|
-
|
26
25
|
== About
|
27
26
|
|
28
27
|
Author:: Michał Łomnicki <michal@lomnicki.com.pl>
|
data/Rakefile
ADDED
@@ -0,0 +1,15 @@
|
|
1
|
+
begin
|
2
|
+
require 'jeweler'
|
3
|
+
Jeweler::Tasks.new do |gemspec|
|
4
|
+
gemspec.name = "quick_start"
|
5
|
+
gemspec.summary = 'GTK application used to quickly choose startup programs for current session'
|
6
|
+
gemspec.description = 'GTK application used to quickly choose startup programs for current session'
|
7
|
+
gemspec.email = "michal@lomnicki.com.pl"
|
8
|
+
gemspec.homepage = "http://github.com/mlomnicki/quick_start"
|
9
|
+
gemspec.authors = ["Michał Łomnicki"]
|
10
|
+
end
|
11
|
+
Jeweler::GemcutterTasks.new
|
12
|
+
rescue LoadError
|
13
|
+
puts "Jeweler not available. Install it with: sudo gem install jeweler -s http://gemcutter.org"
|
14
|
+
end
|
15
|
+
|
data/VERSION
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
0.3.0
|
data/bin/quick_start
CHANGED
@@ -1,10 +1,6 @@
|
|
1
1
|
#!/usr/bin/env ruby
|
2
2
|
|
3
|
-
|
4
|
-
|
3
|
+
require File.join( File.dirname(__FILE__), '..', 'lib', 'quick_start' )
|
4
|
+
|
5
|
+
QuickStart::Core.load!
|
5
6
|
|
6
|
-
PROG_PATH = File.join( LIBDIR, 'quick_start', 'quick_start.glade' )
|
7
|
-
PROG_NAME = "QuickStart"
|
8
|
-
qs = QuickStart::QuickStart2Glade.new(PROG_PATH, nil, PROG_NAME)
|
9
|
-
qs.show
|
10
|
-
Gtk.main
|
@@ -0,0 +1,48 @@
|
|
1
|
+
require 'pathname'
|
2
|
+
require 'fileutils'
|
3
|
+
|
4
|
+
module QuickStart
|
5
|
+
|
6
|
+
class Config
|
7
|
+
|
8
|
+
attr_reader :file
|
9
|
+
|
10
|
+
TEMPLATE_PATH = Pathname.new(File.join(File.dirname(__FILE__), 'templates', 'quick_start'))
|
11
|
+
|
12
|
+
def initialize(file)
|
13
|
+
@file = file
|
14
|
+
end
|
15
|
+
|
16
|
+
# firefox = /usr/bin/firefox
|
17
|
+
# gnome-terminal = /usr/bin/gnome-terminal, checked
|
18
|
+
# thunderbird = /usr/bin/mozilla-thunderbird, unchecked
|
19
|
+
def parse
|
20
|
+
readlines.each do |line|
|
21
|
+
next if line =~ /\s*#/
|
22
|
+
name, path_with_options = line.split('=', 2).map! { |arg| arg.strip }
|
23
|
+
path, comma_separated_options = path_with_options.split(',', 2).map! { |arg| arg.strip }
|
24
|
+
options = {}
|
25
|
+
comma_separated_options.split(',').each do |option|
|
26
|
+
options[option.to_sym] = true
|
27
|
+
end if comma_separated_options
|
28
|
+
executables << Executable.new(name, path, options)
|
29
|
+
end
|
30
|
+
end
|
31
|
+
|
32
|
+
def executables
|
33
|
+
@executables ||= []
|
34
|
+
end
|
35
|
+
|
36
|
+
def readlines
|
37
|
+
config = File.readable?(@file) ? @file : create_config!
|
38
|
+
return File.readlines(config)
|
39
|
+
end
|
40
|
+
|
41
|
+
def create_config!
|
42
|
+
FileUtils.cp(TEMPLATE_PATH, Core.config_path)
|
43
|
+
return Core.config_path
|
44
|
+
end
|
45
|
+
|
46
|
+
end
|
47
|
+
|
48
|
+
end
|
@@ -0,0 +1,49 @@
|
|
1
|
+
module QuickStart
|
2
|
+
|
3
|
+
class QuickStartError < StandardError; end
|
4
|
+
|
5
|
+
class Core
|
6
|
+
class << self
|
7
|
+
|
8
|
+
def config_path
|
9
|
+
@config_path ||= File.join(root_config_path, config_filename)
|
10
|
+
end
|
11
|
+
|
12
|
+
def root_config_path
|
13
|
+
@root_config_path ||= ENV['HOME'] || raise(QuickStartError.new('$HOME environment variable must be set'))
|
14
|
+
end
|
15
|
+
|
16
|
+
def config_filename
|
17
|
+
@config_filename ||= ".quick_start".freeze
|
18
|
+
end
|
19
|
+
|
20
|
+
def glade_path
|
21
|
+
@glade_path ||= File.join(File.dirname( __FILE__ ), 'ui', 'quick_start.glade')
|
22
|
+
end
|
23
|
+
|
24
|
+
def title
|
25
|
+
@title ||= "QuickStart".freeze
|
26
|
+
end
|
27
|
+
|
28
|
+
def load!
|
29
|
+
gui = QuickStart2Glade.new(glade_path, nil, title)
|
30
|
+
gui.show
|
31
|
+
Gtk.main
|
32
|
+
end
|
33
|
+
|
34
|
+
def config
|
35
|
+
@config ||= load_config
|
36
|
+
end
|
37
|
+
|
38
|
+
protected
|
39
|
+
def load_config
|
40
|
+
config = Config.new(config_path)
|
41
|
+
config.parse
|
42
|
+
config
|
43
|
+
end
|
44
|
+
|
45
|
+
end
|
46
|
+
|
47
|
+
end
|
48
|
+
|
49
|
+
end
|
@@ -0,0 +1,28 @@
|
|
1
|
+
module QuickStart
|
2
|
+
class Executable
|
3
|
+
|
4
|
+
attr_reader :name, :path, :options
|
5
|
+
|
6
|
+
def initialize(name, path, options = {})
|
7
|
+
@name = name
|
8
|
+
@path = path
|
9
|
+
@options = options
|
10
|
+
end
|
11
|
+
|
12
|
+
def checked
|
13
|
+
# FIXME
|
14
|
+
!options[:unchecked]
|
15
|
+
end
|
16
|
+
|
17
|
+
alias :checked? :checked
|
18
|
+
|
19
|
+
def checked=(value)
|
20
|
+
options[:checked] = value
|
21
|
+
end
|
22
|
+
|
23
|
+
def run
|
24
|
+
Runner.run(self)
|
25
|
+
end
|
26
|
+
|
27
|
+
end
|
28
|
+
end
|
File without changes
|
@@ -1,5 +1,3 @@
|
|
1
|
-
require 'quick_start/program'
|
2
|
-
|
3
1
|
module QuickStart
|
4
2
|
|
5
3
|
class QuickStart2Glade
|
@@ -17,10 +15,10 @@ module QuickStart
|
|
17
15
|
@window = glade['main_window']
|
18
16
|
|
19
17
|
main_vbutton_box = Gtk::VButtonBox.new
|
20
|
-
|
21
|
-
main_vbutton_box.add( create_check_button(
|
22
|
-
glade['box_config_programs_labels'].add( Gtk::Label.new( name.to_s ) )
|
23
|
-
glade['box_config_programs_paths'].add( Gtk::Label.new( path ) )
|
18
|
+
Core.config.executables.each do |e|
|
19
|
+
main_vbutton_box.add( create_check_button( e ) )
|
20
|
+
glade['box_config_programs_labels'].add( Gtk::Label.new( e.name.to_s ) )
|
21
|
+
glade['box_config_programs_paths'].add( Gtk::Label.new( e.path ) )
|
24
22
|
glade['box_config_programs_remove'].add( Gtk::Button.new( "Remove" ) )
|
25
23
|
end
|
26
24
|
glade['box_programs'].add( main_vbutton_box )
|
@@ -37,35 +35,37 @@ module QuickStart
|
|
37
35
|
end
|
38
36
|
|
39
37
|
def on_btn_run_clicked(widget)
|
40
|
-
|
41
|
-
|
42
|
-
|
43
|
-
|
44
|
-
|
45
|
-
end
|
46
|
-
end
|
38
|
+
Core.config.executables.each do |e|
|
39
|
+
next unless e.checked?
|
40
|
+
show_status( "Running #{e.name}", e.name ) do
|
41
|
+
e.run
|
42
|
+
end
|
47
43
|
end
|
48
44
|
Gtk.main_quit
|
49
45
|
end
|
50
46
|
|
51
47
|
protected
|
52
48
|
def show_status( text, context, &block )
|
53
|
-
status_bar=glade['status_bar']
|
49
|
+
status_bar = glade['status_bar']
|
54
50
|
context = status_bar.get_context_id(context)
|
55
51
|
status_bar.push( context, text )
|
56
52
|
block.call
|
57
53
|
status_bar.pop( context )
|
58
54
|
end
|
59
55
|
|
60
|
-
def create_check_button(
|
61
|
-
button = Gtk::CheckButton.new( name.capitalize ).set_active(
|
62
|
-
@selected_map[button.name] = { :name => name, :active => true }
|
56
|
+
def create_check_button( executable )
|
57
|
+
button = Gtk::CheckButton.new( executable.name.capitalize ).set_active( executable.checked? ).set_name( "chb_#{executable.name}" )
|
63
58
|
button.signal_connect('toggled') do |widget|
|
64
|
-
|
59
|
+
executable = Core.config.executables.detect { |e| e.name == widget_to_executable(widget) }
|
60
|
+
executable.checked = widget.active? if executable
|
65
61
|
end
|
66
62
|
button
|
67
63
|
end
|
68
64
|
|
65
|
+
def widget_to_executable(widget)
|
66
|
+
widget.name.sub(/^chb_/, '')
|
67
|
+
end
|
68
|
+
|
69
69
|
end
|
70
70
|
|
71
71
|
end
|
data/lib/quick_start.rb
CHANGED
@@ -1,5 +1,8 @@
|
|
1
1
|
$:.unshift File.dirname(__FILE__)
|
2
2
|
|
3
3
|
require 'libglade2'
|
4
|
-
require 'quick_start/quick_start_2_glade'
|
5
|
-
|
4
|
+
require 'quick_start/ui/quick_start_2_glade'
|
5
|
+
require 'quick_start/core'
|
6
|
+
require 'quick_start/runner'
|
7
|
+
require 'quick_start/executable'
|
8
|
+
require 'quick_start/config'
|
data/quick_start.gemspec
ADDED
@@ -0,0 +1,53 @@
|
|
1
|
+
# Generated by jeweler
|
2
|
+
# DO NOT EDIT THIS FILE DIRECTLY
|
3
|
+
# Instead, edit Jeweler::Tasks in Rakefile, and run the gemspec command
|
4
|
+
# -*- encoding: utf-8 -*-
|
5
|
+
|
6
|
+
Gem::Specification.new do |s|
|
7
|
+
s.name = %q{quick_start}
|
8
|
+
s.version = "0.3.0"
|
9
|
+
|
10
|
+
s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
|
11
|
+
s.authors = ["Micha\305\202 \305\201omnicki"]
|
12
|
+
s.date = %q{2010-02-19}
|
13
|
+
s.default_executable = %q{quick_start}
|
14
|
+
s.description = %q{GTK application used to quickly choose startup programs for current session}
|
15
|
+
s.email = %q{michal@lomnicki.com.pl}
|
16
|
+
s.executables = ["quick_start"]
|
17
|
+
s.extra_rdoc_files = [
|
18
|
+
"README.rdoc"
|
19
|
+
]
|
20
|
+
s.files = [
|
21
|
+
".gitignore",
|
22
|
+
"MIT-LICENSE",
|
23
|
+
"README.rdoc",
|
24
|
+
"Rakefile",
|
25
|
+
"VERSION",
|
26
|
+
"bin/quick_start",
|
27
|
+
"lib/quick_start.rb",
|
28
|
+
"lib/quick_start/config.rb",
|
29
|
+
"lib/quick_start/core.rb",
|
30
|
+
"lib/quick_start/executable.rb",
|
31
|
+
"lib/quick_start/runner.rb",
|
32
|
+
"lib/quick_start/templates/quick_start",
|
33
|
+
"lib/quick_start/ui/quick_start.glade",
|
34
|
+
"lib/quick_start/ui/quick_start_2_glade.rb",
|
35
|
+
"quick_start.gemspec"
|
36
|
+
]
|
37
|
+
s.homepage = %q{http://github.com/mlomnicki/quick_start}
|
38
|
+
s.rdoc_options = ["--charset=UTF-8"]
|
39
|
+
s.require_paths = ["lib"]
|
40
|
+
s.rubygems_version = %q{1.3.5}
|
41
|
+
s.summary = %q{GTK application used to quickly choose startup programs for current session}
|
42
|
+
|
43
|
+
if s.respond_to? :specification_version then
|
44
|
+
current_version = Gem::Specification::CURRENT_SPECIFICATION_VERSION
|
45
|
+
s.specification_version = 3
|
46
|
+
|
47
|
+
if Gem::Version.new(Gem::RubyGemsVersion) >= Gem::Version.new('1.2.0') then
|
48
|
+
else
|
49
|
+
end
|
50
|
+
else
|
51
|
+
end
|
52
|
+
end
|
53
|
+
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: quick_start
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.3.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- "Micha\xC5\x82 \xC5\x81omnicki"
|
@@ -9,27 +9,34 @@ autorequire:
|
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
11
|
|
12
|
-
date:
|
12
|
+
date: 2010-02-19 00:00:00 +01:00
|
13
13
|
default_executable: quick_start
|
14
14
|
dependencies: []
|
15
15
|
|
16
|
-
description:
|
16
|
+
description: GTK application used to quickly choose startup programs for current session
|
17
17
|
email: michal@lomnicki.com.pl
|
18
18
|
executables:
|
19
19
|
- quick_start
|
20
20
|
extensions: []
|
21
21
|
|
22
22
|
extra_rdoc_files:
|
23
|
-
- MIT-LICENSE
|
24
23
|
- README.rdoc
|
25
24
|
files:
|
26
|
-
-
|
25
|
+
- .gitignore
|
27
26
|
- MIT-LICENSE
|
27
|
+
- README.rdoc
|
28
|
+
- Rakefile
|
29
|
+
- VERSION
|
28
30
|
- bin/quick_start
|
29
|
-
- lib/quick_start/quick_start_2_glade.rb
|
30
|
-
- lib/quick_start/quick_start.glade
|
31
|
-
- lib/quick_start/program.rb
|
32
31
|
- lib/quick_start.rb
|
32
|
+
- lib/quick_start/config.rb
|
33
|
+
- lib/quick_start/core.rb
|
34
|
+
- lib/quick_start/executable.rb
|
35
|
+
- lib/quick_start/runner.rb
|
36
|
+
- lib/quick_start/templates/quick_start
|
37
|
+
- lib/quick_start/ui/quick_start.glade
|
38
|
+
- lib/quick_start/ui/quick_start_2_glade.rb
|
39
|
+
- quick_start.gemspec
|
33
40
|
has_rdoc: true
|
34
41
|
homepage: http://github.com/mlomnicki/quick_start
|
35
42
|
licenses: []
|
@@ -56,7 +63,7 @@ requirements: []
|
|
56
63
|
rubyforge_project:
|
57
64
|
rubygems_version: 1.3.5
|
58
65
|
signing_key:
|
59
|
-
specification_version:
|
60
|
-
summary:
|
66
|
+
specification_version: 3
|
67
|
+
summary: GTK application used to quickly choose startup programs for current session
|
61
68
|
test_files: []
|
62
69
|
|
data/lib/quick_start/program.rb
DELETED
@@ -1,29 +0,0 @@
|
|
1
|
-
module QuickStart
|
2
|
-
|
3
|
-
class Program
|
4
|
-
@@map = {
|
5
|
-
:firefox => '/usr/bin/firefox',
|
6
|
-
:evolution => '/usr/bin/evolution',
|
7
|
-
:skype => '/usr/bin/skype',
|
8
|
-
:terminal => '/usr/bin/gnome-terminal'
|
9
|
-
}
|
10
|
-
|
11
|
-
class << self
|
12
|
-
|
13
|
-
def map
|
14
|
-
@@map
|
15
|
-
end
|
16
|
-
|
17
|
-
def run( name )
|
18
|
-
puts "running #{name} #{@@map[name.to_sym]}"
|
19
|
-
pid = Kernel.fork do
|
20
|
-
exec( @@map[name.to_sym] )
|
21
|
-
end
|
22
|
-
Process.detach(pid)
|
23
|
-
end
|
24
|
-
|
25
|
-
end
|
26
|
-
|
27
|
-
end
|
28
|
-
|
29
|
-
end
|