diff options
author | pboutill <pboutill@85f007b7-540e-0410-9357-904b9bb8a0f7> | 2011-11-21 16:58:35 +0000 |
---|---|---|
committer | pboutill <pboutill@85f007b7-540e-0410-9357-904b9bb8a0f7> | 2011-11-21 16:58:35 +0000 |
commit | 5e62a6a476c925e58e169e43468ed0cee422bb1a (patch) | |
tree | c1df85d0afa81d1f06d0a142cf4210ccc928d65b /ide | |
parent | 885bddb65bd236d2e1e9e8c5a44cec688036213b (diff) |
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
Diffstat (limited to 'ide')
-rw-r--r-- | ide/coqide_main.ml4 | 14 | ||||
-rw-r--r-- | ide/minilib.ml | 10 | ||||
-rw-r--r-- | ide/minilib.mli | 1 | ||||
-rw-r--r-- | ide/preferences.ml | 7 |
4 files changed, 23 insertions, 9 deletions
diff --git a/ide/coqide_main.ml4 b/ide/coqide_main.ml4 index 36257e8db..650cf9274 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 65ff4378e..4896cbd4b 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 749180756..60a5eed48 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 14608f984..103c24848 100644 --- a/ide/preferences.ml +++ b/ide/preferences.ml @@ -1,4 +1,3 @@ - (************************************************************************) (* v * The Coq Proof Assistant / The Coq Development Team *) (* <O___,, * INRIA - CNRS - LIX - LRI - PPS - Copyright 1999-2010 *) @@ -224,8 +223,10 @@ let save_pref () = Config_lexer.print_file pref_file let load_pref () = - GtkData.AccelMap.load (Filename.concat !Minilib.coqlib "ide/default_accel_map"); - GtkData.AccelMap.load accel_file; + let accel_dir = List.find + (fun x -> 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 |