diff --git a/CHANGELOG.md b/CHANGELOG.md
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,3 +1,8 @@
+0.10.1.0
+---
+* set default xaxis types
+* move reset axis range buttons higher
+
 0.10.0.0
 ---
 * Better error messages when the "impossible" happens :b
diff --git a/Plot-ho-matic.cabal b/Plot-ho-matic.cabal
--- a/Plot-ho-matic.cabal
+++ b/Plot-ho-matic.cabal
@@ -1,5 +1,5 @@
 name:                Plot-ho-matic
-version:             0.10.0.0
+version:             0.10.1.0
 synopsis:            Real-time line plotter for generic data
 license:             BSD3
 license-file:        LICENSE
diff --git a/src/PlotHo.hs b/src/PlotHo.hs
--- a/src/PlotHo.hs
+++ b/src/PlotHo.hs
@@ -13,6 +13,7 @@
          runPlotter
        , PlotterOptions(..)
        , Channel
+       , AxisType(..)
        , XAxisType(..)
        , newHistoryChannel
        , Meta
@@ -29,7 +30,7 @@
 import PlotHo.Channel ( newChannel )
 import PlotHo.HistoryChannel ( Meta, XAxisType(..), newHistoryChannel, newHistoryChannel' )
 import PlotHo.Plotter ( runPlotter )
-import PlotHo.PlotTypes ( Channel, PlotterOptions(..) )
+import PlotHo.PlotTypes ( AxisType(..), Channel, PlotterOptions(..) )
 
 -- $simple
 --
diff --git a/src/PlotHo/GraphWidget.hs b/src/PlotHo/GraphWidget.hs
--- a/src/PlotHo/GraphWidget.hs
+++ b/src/PlotHo/GraphWidget.hs
@@ -89,7 +89,7 @@
   signalSelector <- newSignalSelectorArea elements redraw
 
   largestRangeMVar <- CC.newMVar (XY defaultHistoryRange defaultHistoryRange)
-  optionsWidget <- makeOptionsWidget largestRangeMVar redraw
+  optionsWidget <- makeOptionsWidget options largestRangeMVar redraw
 
   let handleDraw :: Render ()
       handleDraw = do
diff --git a/src/PlotHo/OptionsWidget.hs b/src/PlotHo/OptionsWidget.hs
--- a/src/PlotHo/OptionsWidget.hs
+++ b/src/PlotHo/OptionsWidget.hs
@@ -24,8 +24,8 @@
     , owGetAxes :: IO (Axes Double)
     }
 
-makeOptionsWidget :: CC.MVar (XY (Double, Double)) -> IO () -> IO OptionsWidget
-makeOptionsWidget largestRangeMVar redraw = do
+makeOptionsWidget :: PlotterOptions -> CC.MVar (XY (Double, Double)) -> IO () -> IO OptionsWidget
+makeOptionsWidget plotterOptions largestRangeMVar redraw = do
   -- user selectable range
   xRangeEntry <- Gtk.entryNew
   yRangeEntry <- Gtk.entryNew
@@ -69,12 +69,7 @@
   -- linear or log scaling on the x and y axis?
   let updateScaling scalingSelector scalingRef = do
         k <- Gtk.comboBoxGetActive scalingSelector
-        _ <- case k of
-          0 -> writeIORef scalingRef LinearScalingAutoRange
-          1 -> writeIORef scalingRef LinearScalingHistoryRange
-          2 -> writeIORef scalingRef LinearScalingManualRange
-          3 -> writeIORef scalingRef LogScaling
-          _ -> error "the \"impossible\" happened: scaling comboBox index should be < 4"
+        writeIORef scalingRef (toEnum k)
         redraw
 
   xScalingSelector <- Gtk.comboBoxNewText
@@ -83,13 +78,16 @@
         ["linear (auto)", "linear (history)", "linear (manual)", "logarithmic (auto)"]
   mapM_ (Gtk.comboBoxAppendText xScalingSelector . T.pack) scalingOptions
   mapM_ (Gtk.comboBoxAppendText yScalingSelector . T.pack) scalingOptions
-  Gtk.comboBoxSetActive xScalingSelector 0
-  Gtk.comboBoxSetActive yScalingSelector 0
+
+  Gtk.comboBoxSetActive xScalingSelector (fromEnum (defaultXAxis plotterOptions))
+  Gtk.comboBoxSetActive yScalingSelector (fromEnum (defaultYAxis plotterOptions))
+
   xScalingBox <- labeledWidget "x scaling:" xScalingSelector
   yScalingBox <- labeledWidget "y scaling:" yScalingSelector
 
-  xScalingRef <- newIORef LinearScalingAutoRange
-  yScalingRef <- newIORef LinearScalingAutoRange
+  xScalingRef <- newIORef (defaultXAxis plotterOptions)
+  yScalingRef <- newIORef (defaultYAxis plotterOptions)
+
   updateScaling xScalingSelector xScalingRef
   updateScaling yScalingSelector yScalingRef
   void $ on xScalingSelector Gtk.changed (updateScaling xScalingSelector xScalingRef)
@@ -107,18 +105,18 @@
   vbox <- Gtk.vBoxNew False 4
 
   Gtk.set vbox
-    [ Gtk.containerChild := xScalingBox
+    [ Gtk.containerChild := resetXHistoryButton
+    , Gtk.boxChildPacking   resetXHistoryButton := Gtk.PackNatural
+    , Gtk.containerChild := xScalingBox
     , Gtk.boxChildPacking   xScalingBox := Gtk.PackNatural
     , Gtk.containerChild := xRangeBox
     , Gtk.boxChildPacking   xRangeBox := Gtk.PackNatural
-    , Gtk.containerChild := resetXHistoryButton
-    , Gtk.boxChildPacking   resetXHistoryButton := Gtk.PackNatural
+    , Gtk.containerChild := resetYHistoryButton
+    , Gtk.boxChildPacking   resetYHistoryButton := Gtk.PackNatural
     , Gtk.containerChild := yScalingBox
     , Gtk.boxChildPacking   yScalingBox := Gtk.PackNatural
     , Gtk.containerChild := yRangeBox
     , Gtk.boxChildPacking   yRangeBox := Gtk.PackNatural
-    , Gtk.containerChild := resetYHistoryButton
-    , Gtk.boxChildPacking   resetYHistoryButton := Gtk.PackNatural
     ]
 
   return
diff --git a/src/PlotHo/PlotTypes.hs b/src/PlotHo/PlotTypes.hs
--- a/src/PlotHo/PlotTypes.hs
+++ b/src/PlotHo/PlotTypes.hs
@@ -63,10 +63,11 @@
        )
 
 data AxisType
-  = LogScaling
-  | LinearScalingAutoRange
+  = LinearScalingAutoRange
   | LinearScalingHistoryRange
   | LinearScalingManualRange
+  | LogScaling
+  deriving (Enum)
 
 defaultHistoryRange :: (Double, Double)
 defaultHistoryRange = (read "Infinity", - read "Infinity")
@@ -109,10 +110,14 @@
 data PlotterOptions
   = PlotterOptions
     { maxDrawRate :: Double -- ^ limit the draw frequency to this number in Hz
+    , defaultXAxis :: AxisType
+    , defaultYAxis :: AxisType
     }
 
 instance Default PlotterOptions where
   def =
     PlotterOptions
     { maxDrawRate = 40
+    , defaultXAxis = LinearScalingAutoRange
+    , defaultYAxis = LinearScalingAutoRange
     }
