diff --git a/Program.cs b/Program.cs index e6222ba8dd5d2b0a0fdfd31798cf152cb9f903ae..807628a9737feee7fef5f22d08eebde4a9439432 100644 --- a/Program.cs +++ b/Program.cs @@ -126,10 +126,62 @@ interface ModuleParent abstract class StatusBar: ModuleParent { + static public string DefaultConfigText = +@" +refresh = 1 + +[wireless] +_type=i3status +global_cache = 1 +name = wireless _first_ +config + format_up = ""W: (%quality %essid) %ip"" + format_down = ""W: down"" + +[ethernet] +_type=i3status +name=ethernet _first_ +config + format_up = ""E: %ip (%speed)"" + format_down = ""E: down"" + +[battery] + +[load] +_type = i3status +name = load +config = format = ""%1min L"" + +[memory] +_type = i3status +name = memory +config + format = ""%available"" + threshold_degraded = ""1G"" + format_degraded = ""MEMORY %available"" + +[time] +format = yyyy-MM-dd HH:mm:ss +refresh +"; List<Module> modules = new(); - protected void parseConfigFile(FileInfo configFile) + protected void parseConfigFile(FileInfo? configFile) { - parseConfigString(File.ReadAllText(configFile.ToString())); + if(configFile == null) + { + string configText; + try + { + configText = File.ReadAllText(Environment.GetEnvironmentVariable("HOME")+"/.config/i3/i3csstatus.conf"); + } + catch(Exception e) when (e is FileNotFoundException || e is DirectoryNotFoundException) + { + configText = DefaultConfigText; + } + parseConfigString(configText); + } + else + parseConfigString(File.ReadAllText(configFile.ToString())); } protected void parseConfigString(string configString) {