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)
 	{