Skip to content

Instantly share code, notes, and snippets.

@PyroLagus
Created March 5, 2015 03:10
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save PyroLagus/f78ec418d04b8c1899dd to your computer and use it in GitHub Desktop.
Save PyroLagus/f78ec418d04b8c1899dd to your computer and use it in GitHub Desktop.
configuration.nix
# Edit this configuration file to define what should be installed on
# your system. Help is available in the configuration.nix(5) man page
# and in the NixOS manual (accessible by running ‘nixos-help’).
{ config, pkgs, pkgs_i686, ... }:
{
imports =
[ # Include the results of the hardware scan.
./hardware-configuration.nix
];
# Use the gummiboot efi boot loader.
boot.loader.gummiboot.enable = true;
boot.loader.efi.canTouchEfiVariables = true;
networking.hostName = "wheatley"; # Define your hostname.
networking.wireless.enable = true; # Enables wireless support via wpa_supplicant.
# Select internationalisation properties.
i18n = {
consoleFont = "lat9w-16";
consoleKeyMap = "dvorak";
defaultLocale = "en_US.UTF-8";
};
# Set your time zone.
time.timeZone = "America/New_York";
hardware = {
pulseaudio.enable = true;
bluetooth.enable = true;
opengl.driSupport32Bit = true;
};
# Show the NixOS manual in a virtual console.
services.nixosManual.showManual = true;
nixpkgs.config.allowUnfree = true;
nixpkgs.config.packageOverrides = pkgs:
{ bluez = pkgs.bluez5;
};
# List packages installed in system profile. To search by name, run:
# $ nix-env -qaP | grep wget
environment.systemPackages = with pkgs; [
# system
bluez
zsh
# tools
htop
wget
unzip
psmisc
mc
# browsers
links2
w3m
firefox-bin
# X11 tools
xcompmgr
xfontsel
xorg.xhost
# X11 libs
# urxvt
rxvt_unicode
urxvt_perls
# development
git
stdenv
androidsdk_4_4
androidndk
# editors
emacs
haskellngPackages.yi
atom
# media
(pkgs.pulseaudio.override { ossWrapper = true; })
pavucontrol
mpc_cli
(pkgs.ncmpcpp.override { outputsSupport = true; })
deadbeef
ffmpeg
youtube-dl
mpv
pkgs.python34Packages.livestreamer
# games
steam
# office
(pkgs.texLiveAggregationFun { paths = [ pkgs.texLive pkgs.texLiveExtra pkgs.texLiveBeamer pkgs.lmodern pkgs.tipa ]; })
zathura
# hunspell
hunspell
hunspellDicts.en-us
weechat
libreoffice
haskellngPackages.xmobar
keepassx2
libnotify
dunst
blender
];
fonts = {
enableFontDir = true;
enableGhostscriptFonts = true;
fonts = with pkgs; [
fira
dejavu_fonts
corefonts
inconsolata
lmodern
];
};
# List services that you want to enable:
services.mpd = {
enable = true;
extraConfig = ''
audio_output {
type "pulse"
name "My MPD PulseAudio Output"
#server "localhost" # optional
#sink "alsa_output" # optional
}
audio_output {
type "alsa"
name "MPD alsa"
}
audio_output {
type "pulse"
name "Local Music Player Daemon"
server "127.0.0.1"
}
'';
};
# Enable the OpenSSH daemon.
# services.openssh.enable = true;
# Enable CUPS to print documents.
# services.printing.enable = true;
services.xserver = {
enable = true;
layout = "us";
xkbVariant = "dvp";
xkbOptions = "ctrl:nocaps";
vaapiDrivers = [ pkgs.vaapiIntel ];
windowManager.xmonad = {
enable = true;
enableContribAndExtras = true;
extraPackages = self: [pkgs.haskellngPackages.edit-distance];
};
displayManager.lightdm.enable = true;
displayManager.sessionCommands = ''
xmobar & # start xmobar
[[ -f ~/.Xresources ]] && xrdb -merge ~/.Xresources
eval $(cat ~/.fehbg) & # set wallpaper
xcompmgr & # for transparent terminals
urxvtd & # start urxvt-daemon
(emacs --daemon && emacsclient -c) &
'';
desktopManager.default = "none";
};
# Define a user account. Don't forget to set a password with ‘passwd’.
users.extraUsers.codehero = {
name = "codehero";
uid = 1000;
isNormalUser = true;
extraGroups = [ "wheel" "audio" ];
shell = "/run/current-system/sw/bin/zsh";
};
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment