Move initial ruby code out of line

This commit is contained in:
2026-09-10 18:32:17 +01:00
parent 945ff0a6d3
commit 838773e153
2 changed files with 182 additions and 51 deletions
+5 -51
View File
@@ -1,62 +1,16 @@
let () =
let startup_script =
if Array.length Sys.argv <> 2 then (
Printf.eprintf "usage: kutu <startup.rb>\n";
exit 1)
else Sys.argv.(1)
if Array.length Sys.argv <> 2 then None else Some Sys.argv.(1)
in
let state = Kutu.State.new_state in
print_endline "Started Kutu WM";
Bindings.Core.register_callbacks state;
Mruby.Core.mrb_load_string state.mrb
{|#ruby
MOD_MAP = {
none: 0,
alt: 8,
super: 64
}
KEY_MAP = {
"tab" => 23,
"q" => 24,
"w" => 25,
"e" => 26,
"r" => 27,
"f" => 41,
"n" => 57,
"b" => 56,
"m" => 58,
"v" => 55,
"]" => 35,
"[" => 34,
"1" => 10,
"2" => 11,
"3" => 12,
"4" => 13,
"5" => 14,
"6" => 15,
"7" => 16,
"8" => 17,
"9" => 18,
"0" => 19
}
def bind(key, mod = :alt, &block)
key_ = key.is_a?(String) ? KEY_MAP[key] : key
mod = MOD_MAP[mod]
raise "unknown key #{key.to_s}" unless key_
raise "unknown modifier" unless mod
_bind key_, mod, &block
end
def unbind(key, mod = :alt)
key_ = key.is_a?(String) ? KEY_MAP[key] : key
mod = MOD_MAP[mod]
raise "unknown key #{key.to_s}" unless key_
raise "unknown modifier" unless mod
_unbind key_, mod
end
|};
Mruby.Core.mrb_load_file state.mrb startup_script;
Mruby.Core.mrb_load_string state.mrb Mruby.Initial.initial_code;
(match startup_script with
| None -> ()
| Some s -> Mruby.Core.mrb_load_file state.mrb s);
Mruby.Core.error_check state.mrb;
if Xcb.Connection.flush state.conn <= 0 then exit 1;