I'm a Python, Linux, Nix/NixOS, JavaScript... basically everything open-source enthusiast.
Graphical UI for Nix/NixOS

I started this project as a web UI for Nix, but after my first blog post I had a lot of questions from you, what about the desktop application? So here it is.

What is new?

  • rewritten app from web UI to desktop UI
  • still JavaScript, more accurately NodeWebkit
  • beside package manager there is now configuration browser
  • no more services, like web server and ElasticSearch
  • and still using Polymer

Preview of 0.1.1 version

Front Page - Package Manager

Front Page - Package Manager

Front Page - Configuration Options

Front Page - Configuration Options

Package Browser

PackageBrowser

Package Info

Package Info

Manage Marked

Manage Marked

Configuration Browser

Configuration Browser

How to try it out?

There are two ways, the development version and from the nixpkgs. Both described below.

Development

To get the code you will need git:

$ git clone https://github.com/matejc/nixui
$ cd nixui

If you do NOT use

1
nix-channel
to update, then modify config file
1
./src/config.json
so that
1
NIX_PATH
entry has
1
nixpkgs=/path/to/your/nixpkgs
.

Mine looks like this:

{
    "profilePaths": ["/nix/var/nix/profiles"],
    "dataDir": "/tmp",
    "configurations": ["/etc/nixos/configuration.nix"],
    "NIX_PATH": "nixpkgs=/home/matej/workarea/nixpkgs:nixos=/home/matej/workarea/nixpkgs/nixos:nixos-config=/etc/nixos/configuration.nix:services=/etc/nixos/services"
}

Then build and run NixUI with following command, you will need

1
gnumake
and
1
nix
for this:

$ make just-run-it

Nixpkgs

Again, if you do NOT use

1
nix-channel
to update, then make sure that
1
config.nixui.NIX_PATH
entry has
1
nixpkgs=/path/to/your/nixpkgs
. In your main configuration nix file add the line
1
nixpkgs.config.nixui.NIX_PATH="nixpkgs=/path/to/your/nixpkgs";
, OR in user config add this line to
1
~/.nixpkgs/config.nix
:
1
nixui.NIX_PATH="nixpkgs=/path/to/your/nixpkgs";
.

Install it like any other package, like so:

$ nix-env -iA pkgs.nixui

Warning: at the time of writing this blog post, the

1
nixui
package was NOT yet in unstable channel, but was merged into master, therefore it is only a matter of time when it will be available.

Plans for the future

In the near future, bug fixes and after NixUI gets stable enough and I get some money from other projects, I will start on Nix configuration editing.