diff --git a/default.nix b/default.nix
new file mode 100644
--- /dev/null
+++ b/default.nix
@@ -0,0 +1,24 @@
+{
+  mkDerivation, stdenv
+, base
+, libvrpn
+}:
+
+mkDerivation {
+  pname = "vrpn";
+  version = "0.3.0.0";
+  src = ./.;
+  isLibrary = true;
+  isExecutable = true;
+  libraryHaskellDepends = [
+    base
+  ];
+  executableHaskellDepends = [
+  ];
+  librarySystemDepends = [
+    libvrpn
+  ];
+  homepage = "https://bitbucket.org/functionally/vrpn";
+  description = "Bindings to VRPN";
+  license = stdenv.lib.licenses.mit;
+}
diff --git a/src/Main.hs b/src/Main.hs
--- a/src/Main.hs
+++ b/src/Main.hs
@@ -1,10 +1,10 @@
 {-|
-Module      :  Main
-Copyright   :  (c) 2015 Brian W Bush
+Module      :  $Header$
+Copyright   :  (c) 2015-19 Brian W Bush
 License     :  MIT
-Maintainer  :  Brian W Bush <consult@brianwbush.info>
+Maintainer  :  Brian W Bush <code@functionally.io>
 Stability   :  Stable
-Portability :  Portable
+Portability :  Linux
 
 Simple VRPN client.
 -}
diff --git a/src/Network/VRPN.hs b/src/Network/VRPN.hs
--- a/src/Network/VRPN.hs
+++ b/src/Network/VRPN.hs
@@ -1,10 +1,10 @@
 {-|
-Module      :  Network.VRPN
-Copyright   :  (c) 2015 Brian W Bush
+Module      :  $Header$
+Copyright   :  (c) 2015-19 Brian W Bush
 License     :  MIT
-Maintainer  :  Brian W Bush <consult@brianwbush.info>
+Maintainer  :  Brian W Bush <code@functionally.io>
 Stability   :  Stable
-Portability :  Portable
+Portability :  Linux
 
 Bindings to VRPN, \<<https://github.com/vrpn/vrpn/wiki>\>, and is loosely modeled on the code in \<<https://github.com/vrpn/vrpn/blob/master/client_src/vrpn_print_devices.C>\>.  This has been tested using VRPN 07.30 on Linux.  It requires the VRPN C++ header files.
 
@@ -23,7 +23,7 @@
       -- A remote button that signals completion when the left button is released.
       button :: Device Int ButtonType Double
       button =
-        Button "spacenav0@localhost"
+        Button "spacenav0\@localhost"
           $ Just
           $ \time button state ->
             do
diff --git a/vrpn.cabal b/vrpn.cabal
--- a/vrpn.cabal
+++ b/vrpn.cabal
@@ -1,52 +1,53 @@
-name:                vrpn
-version:             0.2.1.4
-synopsis:            Bindings to VRPN.
-description:         See \<<https://github.com/vrpn/vrpn/wiki>\> for information on VRPN.  This has been tested using VRPN 07.30 on Linux.
-                     .
-                     If the VRPN libraries are static and this package is used from Template Haskell, then the package needs to be configured with the QuatStatic flag.
-license:             MIT
-license-file:        LICENSE
-author:              Brian W Bush <consult@brianwbush.info>
-maintainer:          Brian W Bush <consult@brianwbush.info>
-copyright:           (c) 2015 Brian W Bush
-category:            Network
-build-type:          Simple
-cabal-version:       >= 1.10
-homepage:            https://bitbucket.org/functionally/vrpn
-bug-reports:         https://bwbush.atlassian.net/projects/HVRPN/issues/
-package-url:         https://bitbucket.org/functionally/vrpn/vrp-0.2.1.4.tar.gz
+name         : vrpn
+version      : 0.3.0.0
+synopsis     : Bindings to VRPN.
+description  : See \<<https://github.com/vrpn/vrpn/wiki>\> for information on VRPN.  This has been tested using VRPN 07.30 on Linux.
+               .
+               If the VRPN libraries are static and this package is used from Template Haskell, then the package needs to be configured with the QuatStatic flag.
+license      : MIT
+license-file : LICENSE
+author       : Brian W Bush <code@functionally.io>
+maintainer   : Brian W Bush <code@functionally.io>
+copyright    : (c) 2015-19 Brian W Bush
+category     : Network
+build-type   : Simple
+cabal-version: >= 1.10
+homepage     : https://bitbucket.org/functionally/vrpn
+bug-reports  : https://bwbush.atlassian.net/projects/HVRPN/issues/
+package-url  : https://bitbucket.org/functionally/vrpn/vrp-$version.tar.gz
 
-extra-source-files:  ReadMe.md
+extra-source-files: ReadMe.md
+                    default.nix
 
 source-repository head
-  type: git
+  type    : git
   location: https://bitbucket.org/functionally/vrpn.git
 
 flag QuatStatic
-  description:         Explicitly link with static library libquat.a, which is required when using this package with Template Haskell.
-  default:             False
+  description: Explicitly link with static library libquat.a, which is required when using this package with Template Haskell.
+  default    : True
  
 library
-  exposed-modules:     Network.VRPN
-  build-depends:       base >= 4.8 && < 5
-  hs-source-dirs:      src
-  ghc-options:         -Wall
-  default-language:    Haskell2010
-  C-sources:           src/vrpn.cpp
-  include-dirs:        /usr/local/include
-  extra-lib-dirs:      /usr/local/lib
+  exposed-modules  : Network.VRPN
+  build-depends    : base >= 4.8 && < 5
+  hs-source-dirs   : src
+  ghc-options      : -Wall
+  default-language : Haskell2010
+  C-sources        : src/vrpn.cpp
   if flag(QuatStatic)
-    extra-libraries:   vrpn quat stdc++
+    extra-libraries: vrpn quat stdc++
   else
-    extra-libraries:   vrpn stdc++
+    extra-libraries: vrpn stdc++
 
 executable test-vrpn
-  main-is:             Main.hs
-  build-depends:       base
-  hs-source-dirs:      src
-  ghc-options:         -threaded -Wall
-  default-language:    Haskell2010
-  C-sources:           src/vrpn.cpp
-  include-dirs:        /usr/local/include
-  extra-lib-dirs:      /usr/local/lib
-  extra-libraries:     vrpn stdc++
+  main-is          : Main.hs
+  other-modules    : Network.VRPN
+  build-depends    : base >= 4.8 && < 5
+  hs-source-dirs   : src
+  ghc-options      : -threaded -Wall
+  default-language : Haskell2010
+  C-sources        : src/vrpn.cpp
+  if flag(QuatStatic)
+    extra-libraries: vrpn quat stdc++
+  else
+    extra-libraries: vrpn stdc++
