diff options
Diffstat (limited to 'terminal.vala')
-rw-r--r-- | terminal.vala | 73 |
1 files changed, 13 insertions, 60 deletions
diff --git a/terminal.vala b/terminal.vala index a7cfb6b..99c21ce 100644 --- a/terminal.vala +++ b/terminal.vala @@ -18,23 +18,6 @@ class Terminal : Gtk.Overlay { const double FONT_SCALE_MAX = 3.583180799999999; // 1.2 ^ 7 const double FONT_SCALE_FACTOR = 1.2; - struct PaletteEntry { - string name; - string normal; - string bright; - } - - const PaletteEntry[] DEFAULT_PALETTE = { - { "black", "black", "grey50" }, - { "red", "red3", "red" }, - { "green", "green3", "green" }, - { "yellow", "yellow3", "yellow" }, - { "blue", "blue2", "#5c5cff" }, - { "magenta", "magenta3", "magenta" }, - { "cyan", "cyan3", "cyan" }, - { "white", "grey90", "white" }, - }; - public Gtk.Window window { get; construct set; } [GtkChild] Gtk.Button search_button_down; [GtkChild] Gtk.Button search_button_up; @@ -83,10 +66,10 @@ class Terminal : Gtk.Overlay { public void load_config(bool reload) { var conf = new Config(); - Gtk.PolicyType policy = conf.boolean("misc", "scrollbar", true) ? Gtk.PolicyType.AUTOMATIC : Gtk.PolicyType.NEVER; + Gtk.PolicyType policy = conf.scrollbar ? Gtk.PolicyType.AUTOMATIC : Gtk.PolicyType.NEVER; scrolled_window.set_policy(policy, policy); - vte.set_font(Pango.FontDescription.from_string(conf.value("misc", "font", "Monospace 12"))); + vte.set_font(conf.font); var geometry = Gdk.Geometry() { // This must be kept in sync with the padding size in terminal.css base_width = 2 * 2, @@ -96,50 +79,20 @@ class Terminal : Gtk.Overlay { }; window.set_geometry_hints(null, geometry, BASE_SIZE | RESIZE_INC); - vte.set_mouse_autohide(conf.boolean("misc", "autohide-mouse", false)); - vte.set_scrollback_lines(conf.integer("misc", "scrollback", 10000)); - - var cursor = conf.value("misc", "cursor-shape", "block"); - switch (cursor) { - case "block": - vte.set_cursor_shape(BLOCK); - break; - case "beam": - vte.set_cursor_shape(IBEAM); - break; - case "underline": - vte.set_cursor_shape(UNDERLINE); - break; - default: - conf.append_warning("invalid cursor '%s'".printf(cursor)); - vte.set_cursor_shape(BLOCK); - break; - } - - var foreground = conf.colour("foreground", null); - var background = conf.colour("background", null); - - var palette = new Gdk.RGBA[16]; - for (int i = 0; i < DEFAULT_PALETTE.length; i++) { - var entry = DEFAULT_PALETTE[i]; - palette[i] = conf.colour("normal." + entry.name, entry.normal); - palette[i + 8] = conf.colour("bright." + entry.name, entry.bright); - } - - vte.set_colors(foreground, background, palette); - - vte.set_color_bold(conf.colour("bold", null)); - - vte.set_color_cursor_foreground(conf.colour("cursor.foreground", null)); - vte.set_color_cursor(conf.colour("cursor.background", null)); + vte.set_mouse_autohide(conf.autohide_mouse); + vte.set_scrollback_lines(conf.scrollback); + vte.set_cursor_shape(conf.cursor_shape); - vte.set_color_highlight_foreground(conf.colour("selection.foreground", null)); - vte.set_color_highlight(conf.colour("selection.background", null)); + vte.set_colors(conf.foreground, conf.background, conf.palette); + vte.set_color_bold(conf.bold); + vte.set_color_cursor_foreground(conf.cursor_foreground); + vte.set_color_cursor(conf.cursor_background); + vte.set_color_highlight_foreground(conf.selection_foreground); + vte.set_color_highlight(conf.selection_background); - var warnings = conf.done(); - if (warnings.length > 0) { + if (conf.get_warnings().length > 0) { string header = "<b>Configuration loaded with warnings:</b>\n"; - infobar_show(header + string.joinv("\n", warnings), Gtk.MessageType.WARNING); + infobar_show(header + string.joinv("\n", conf.get_warnings()), Gtk.MessageType.WARNING); } else if (reload) { infobar_show("Configuration loaded successfully.", Gtk.MessageType.INFO, 3); } |