From 5e62a6a476c925e58e169e43468ed0cee422bb1a Mon Sep 17 00:00:00 2001 From: pboutill Date: Mon, 21 Nov 2011 16:58:35 +0000 Subject: coqide default pref files are by default in /etc/xdg/coq/ git-svn-id: svn+ssh://scm.gforge.inria.fr/svn/coq/trunk@14715 85f007b7-540e-0410-9357-904b9bb8a0f7 --- ide/coqide_main.ml4 | 14 ++++++++------ ide/minilib.ml | 10 ++++++++++ ide/minilib.mli | 1 + ide/preferences.ml | 7 ++++--- 4 files changed, 23 insertions(+), 9 deletions(-) (limited to 'ide') diff --git a/ide/coqide_main.ml4 b/ide/coqide_main.ml4 index 36257e8db1..650cf9274d 100644 --- a/ide/coqide_main.ml4 +++ b/ide/coqide_main.ml4 @@ -73,12 +73,14 @@ let () = Minilib.coqlib := Coq.check_coqlib args; Coqide.sup_args := args; Coqide.ignore_break (); - GtkMain.Rc.add_default_file (Ideutils.lib_ide_file "coqide-gtk2rc"); - (try - GtkMain.Rc.add_default_file (Filename.concat Minilib.xdg_config_home "coqide-gtk2rc"); - with Not_found -> ()); - ignore (GtkMain.Main.init ()); - initmac () ; + (try + let gtkrcdir = List.find + (fun x -> Sys.file_exists (Filename.concat x "coqide-gtk2rc")) + Minilib.xdg_config_dirs in + GtkMain.Rc.add_default_file (Filename.concat gtkrcdir "coqide-gtk2rc"); + with Not_found -> ()); + ignore (GtkMain.Main.init ()); + initmac () ; (* GtkData.AccelGroup.set_default_mod_mask (Some [`CONTROL;`SHIFT;`MOD1;`MOD3;`MOD4]);*) ignore ( diff --git a/ide/minilib.ml b/ide/minilib.ml index 65ff4378e9..4896cbd4bb 100644 --- a/ide/minilib.ml +++ b/ide/minilib.ml @@ -64,6 +64,10 @@ let string_map f s = let subst_command_placeholder s t = Str.global_replace (Str.regexp_string "%s") t s +let path_to_list p = + let sep = Str.regexp (if Sys.os_type = "Win32" then ";" else ":") in + Str.split sep p + (* On win32, the home directory is probably not in $HOME, but in some other environment variable *) @@ -78,6 +82,12 @@ let xdg_config_home = with Not_found -> Filename.concat home "/.config/coq" +let xdg_config_dirs = + xdg_config_home :: (try + List.map (fun dir -> Filename.concat dir "coq") (path_to_list (Sys.getenv "XDG_CONFIG_DIRS")) + with Not_found -> "/etc/xdg/coq"::(match Coq_config.configdir with |None -> [] |Some d -> [d])) + + let coqlib = ref "" let coqtop_path = ref "" diff --git a/ide/minilib.mli b/ide/minilib.mli index 7491807562..60a5eed487 100644 --- a/ide/minilib.mli +++ b/ide/minilib.mli @@ -23,6 +23,7 @@ val subst_command_placeholder : string -> string -> string val home : string val xdg_config_home : string +val xdg_config_dirs : string list val coqlib : string ref val coqtop_path : string ref diff --git a/ide/preferences.ml b/ide/preferences.ml index 14608f9840..103c24848e 100644 --- a/ide/preferences.ml +++ b/ide/preferences.ml @@ -1,4 +1,3 @@ - (************************************************************************) (* v * The Coq Proof Assistant / The Coq Development Team *) (* Sys.file_exists (Filename.concat x "coqide.keys")) + Minilib.xdg_config_dirs in + GtkData.AccelMap.load (Filename.concat accel_dir "coqide.keys"); let p = !current in let m = Config_lexer.load_file pref_file in -- cgit v1.2.3