41 lines
1.1 KiB
Ruby
41 lines
1.1 KiB
Ruby
require 'tempfile'
|
|
require 'cucumber/rake/task'
|
|
require 'rspec/core/rake_task'
|
|
|
|
XEPHYR_DISPLAY = ':42'
|
|
XEPHYR_CMD = "$(command -v Xephyr) #{XEPHYR_DISPLAY} -ac -br -noreset".freeze
|
|
XEPHYR_SCREENS = '-screen 1436x400'.freeze
|
|
XEPHYR_SCREENS_XINERAMA =
|
|
'+xinerama -origin 0,0 -screen 1920x400 -origin 1920,0 -screen 1920x400'.freeze
|
|
|
|
task default: %i[features spec]
|
|
|
|
Cucumber::Rake::Task.new(:features)
|
|
|
|
RSpec::Core::RakeTask.new
|
|
|
|
desc 'Run uhwm in a Xephyr X server'
|
|
task :run do
|
|
uhwm_args = ARGV.include?('--') ?
|
|
ARGV.slice_after('--').to_a.last :
|
|
%w[-d]
|
|
Tempfile.create('uhwm_xinitrc') do |xinitrc|
|
|
xinitrc.write <<-eoh
|
|
[ -f $HOME/.Xdefaults ] && xrdb $HOME/.Xdefaults
|
|
#xkbcomp #{ENV['DISPLAY']} #{XEPHYR_DISPLAY}
|
|
xmodmap -display #{ENV['DISPLAY']} -pke | xmodmap -
|
|
xsetroot -solid SpringGreen
|
|
echo "######## UHWM START ########"
|
|
./bin/uhwm #{uhwm_args.join ' '}
|
|
echo "######## UHWM END ##########"
|
|
eoh
|
|
xinitrc.flush
|
|
sh "xinit #{xinitrc.path} -- %s" % [
|
|
XEPHYR_CMD,
|
|
ENV.key?('UHWM_XINERAMA') ?
|
|
XEPHYR_SCREENS_XINERAMA :
|
|
XEPHYR_SCREENS
|
|
].join(' ')
|
|
end
|
|
end
|