My experiments with an XMonad setup in NixOS. This is my work box now, so it pretty much works.
probably needs:
# useradd -m iain
# passwd iain ...
# passwd root ...
My experiments with an XMonad setup in NixOS. This is my work box now, so it pretty much works.
probably needs:
# useradd -m iain
# passwd iain ...
# passwd root ...
# This is a generated file. Do not modify! | |
# Make changes to /etc/nixos/configuration.nix instead. | |
{ config, pkgs, ... }: | |
{ | |
require = [ | |
./hardware-configuration.nix | |
<nixos/modules/installer/scan/not-detected.nix> | |
<nixos/modules/programs/virtualbox.nix> | |
]; | |
boot.blacklistedKernelModules = [ "snd_pcsp" ]; | |
boot.loader.grub.device = "/dev/sdb"; # for 2-disk work machine | |
#boot.loader.grub.device = "/dev/sda"; # for single disk boxes | |
# These for Virtual box images only -- use hardware-configuration.nix for real machines | |
# boot.initrd.kernelModules = [ "ata_piix" "ohci_hcd" ]; | |
# boot.kernelModules = [ ]; | |
# boot.extraModulePackages = [ ]; | |
environment.systemPackages = with pkgs; [ | |
wget vimHugeX sudo | |
manpages | |
gitAndTools.gitFull | |
iptables nmap tcpdump | |
rxvt_unicode | |
zlib | |
bc | |
# coding junk | |
gcc | |
#gcc-wrapper | |
#gccmakedep | |
# nix package for nix-shell etc | |
binutils | |
nix | |
haskellPackages.haskellPlatform | |
#cabal2nix | |
#ubuntu-font-family | |
#vista-fonts | |
# X11 packages | |
chromium | |
firefoxWrapper | |
trayer | |
# Haskell packages for XMonad | |
haskellPackages.xmobar | |
haskellPackages.xmonad | |
haskellPackages.xmonadContrib | |
haskellPackages.xmonadExtras | |
# Font junk | |
xfontsel | |
xlsfonts | |
dmenu | |
xscreensaver | |
xclip | |
xchat | |
#virtualbox # This is done with the require reference at the top. | |
]; | |
# nix.maxJobs = 4; | |
time.timeZone = "Europe/London"; | |
services.openssh.enable = true; | |
networking.interfaceMonitor.enable = true; | |
i18n = { | |
consoleFont = "lat9w-16"; | |
consoleKeyMap = "uk"; | |
defaultLocale = "en_GB.UTF-8"; | |
}; | |
# User account | |
users.extraGroups.wheel.gid = 0; | |
users.extraUsers.iain = { | |
createHome = true; | |
home = "/home/iain"; | |
description = "Iain Ballard"; | |
extraGroups = [ "wheel" "disk" "vboxusers" "cdrom" ]; | |
isSystemUser = false; | |
useDefaultShell = true; | |
}; | |
security.sudo.enable = true; | |
services.xserver = { | |
enable = true; | |
layout = "gb"; | |
windowManager.xmonad.enable = true; | |
windowManager.default = "xmonad"; | |
desktopManager.xterm.enable = false; | |
desktopManager.default = "none"; | |
startOpenSSHAgent = true; | |
displayManager = { | |
slim = { | |
enable = true; | |
defaultUser = "iain"; | |
}; | |
}; | |
wacom.enable = true; | |
}; | |
services.printing.enable = true; | |
# Show the manual on virtual console 8 : | |
services.nixosManual.showManual = true; | |
fileSystems = [ | |
{ mountPoint = "/"; | |
label = "nixos"; | |
} | |
]; | |
swapDevices = [ | |
{ device = "/dev/disk/by-label/swap"; } | |
]; | |
} |
$ fdisk /dev/sdb
(or whatever device you want to install on)
$ mkfs.ext4 -L nixos /dev/sdb1
(idem)
$ mkswap -L swap /dev/sdb2
(idem)
$ mount LABEL=nixos /mnt
$ nixos-option --install
$ nano /mnt/etc/nixos/configuration.nix
(in particular, set the fileSystems and swapDevices options)$ wget https://gist.github.com/i-e-b/6320077/raw/ecea4e02867e563406f4238a880783a161bee9ba/configuration.nix > /mnt/etc/nixos/configuration.nix
$ nixos-install
$ reboot
#!/bin/sh | |
sudo systemctl restart display-manager & |
-- write to ~/.xmonad/xmonad.hs | |
import XMonad | |
main = xmonad defaultConfig | |
{ modMask = mod4Mask -- super instead of alt (usually Windows key) | |
, terminal = "urxvt" | |
} |