dotfiles/nixos/configuration.nix

234 lines
4.8 KiB
Nix
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

{ config, pkgs, ... }:
let
my-python-packages = python-packages: with python-packages; [
appdirs
requests
virtualenv
ipython
ipdb
virtualenvwrapper
pip
];
python-with-my-packages = pkgs.python3.withPackages my-python-packages;
udiskie-appindicator = pkgs.udiskie.overrideAttrs (oldAttrs: rec {
version = "1.7.5";
src = pkgs.fetchFromGitHub {
owner = "coldfix";
repo = "udiskie";
rev = version;
sha256 = "1mcdn8ha5d5nsmrzk6xnnsqrmk94rdrzym9sqm38zk5r8gpyl1k4";
};
propagatedBuildInputs = oldAttrs.propagatedBuildInputs ++ [pkgs.libappindicator-gtk3];
});
# clipit-master = pkgs.clipt.overrideAttrs (oldAttrs: rec {
# src = fetchFromGitHub {
# owner = "shantzu";
# repo = "ClipIt";
# rev = "eb9adaf2b5fd65aac1e83d6544b9076aae6af5b7";
# sha256 = "01if8y93wa0mwbkzkzx2v1vqh47zlz4k1dysl6yh5rmppd1psknz";
# };
# });
in
{
nixpkgs.config.allowUnfree = true;
security.sudo.wheelNeedsPassword = false;
networking.networkmanager.enable = true;
i18n = {
consoleKeyMap = "us";
defaultLocale = "en_US.UTF-8";
};
# Set your time zone.
# TODO: this should be set dynamically
time.timeZone = "America/Los_Angeles";
fonts = {
fonts = with pkgs; [
fira-mono
dejavu_fonts
noto-fonts-emoji
emojione
twemoji-color-font
source-code-pro
roboto
source-sans-pro
source-serif-pro
];
fontconfig = {
defaultFonts = {
monospace = [ "Source Code Pro" ];
sansSerif = [ "Roboto" ];
serif = [ "Source Serif Pro" ];
};
ultimate = {
enable = false;
};
};
};
# List packages installed in system profile. To search, run:
# $ nix search wget
environment.systemPackages = with pkgs; [
# Applications
google-chrome
firefox
hexchat
kodi
vlc
xfce.thunar
spotify
termite
rxvt_unicode
emacs
# Appearance
numix-icon-theme-circle
gnome3.adwaita-icon-theme
hicolor-icon-theme
# Desktop
autorandr
clipit
compton
feh
networkmanagerapplet
pinentry
pommed_light
rofi
rofi-pass
sddm-kcm
udiskie-appindicator
volnoti
xclip
xdotool
xorg.xkbcomp
xsettingsd
# Audio
pulsemixer
pavucontrol
playerctl
# Haskell
cabal-install
cabal2nix
ghc
stack2nix
stack
# Tools
binutils
gcc
gitFull
gnumake
gnupg
htop
inotify-tools
ncdu
pass
python-with-my-packages
rcm
silver-searcher
stow
tmux
wget
zsh
# Nix
nix-prefetch-git
# Miscellaneous
android-udev-rules
librsvg
transmission-gtk
];
environment.variables = {
GDK_PIXBUF_MODULE_FILE = "${pkgs.librsvg.out}/lib/gdk-pixbuf-2.0/2.10.0/loaders.cache";
};
# Some programs need SUID wrappers, can be configured further or are
# started in user sessions.
# programs.mtr.enable = true;
programs.gnupg.agent = { enable = true; enableSSHSupport = true; };
# List services that you want to enable:
# Enable the OpenSSH daemon.
services.openssh.enable = true;
# Open ports in the firewall.
# networking.firewall.allowedTCPPorts = [ ... ];
# networking.firewall.allowedUDPPorts = [ ... ];
# Or disable the firewall altogether.
# networking.firewall.enable = false;
# Enable CUPS to print documents.
# services.printing.enable = true;
# Enable sound.
services.avahi.enable = true;
sound.enable = true;
hardware.pulseaudio.enable = true;
environment.loginShellInit = ". ~/.lib/nix_login.sh";
services.xserver = {
exportConfiguration = true;
enable = true;
layout = "us";
videoDrivers = [ "nvidia" ];
desktopManager = {
gnome3.enable = true;
default = "none";
};
windowManager = {
default = "xmonad";
i3.enable = true;
session = [{
name = "xmonad";
start = ''
/usr/bin/env imalison-xmonad &
waitPID=$!
'';
}];
};
displayManager = {
# lightdm = {
# enable = true;
# extraSeatDefaults=''
# greeter-hide-users=false
# '';
# };
sddm = {
enable = true;
};
sessionCommands = ''
systemctl --user import-environment GDK_PIXBUF_MODULE_FILE
'';
};
};
hardware.opengl.driSupport32Bit = true;
# Define a user account. Don't forget to set a password with passwd.
users.extraUsers.imalison = {
name = "imalison";
group = "users";
isNormalUser = true;
extraGroups = [
"wheel" "disk" "audio" "video"
"networkmanager" "systemd-journal"
];
createHome = true;
uid = 1000;
home = "/home/imalison";
shell = pkgs.zsh;
};
system.stateVersion = "18.03"; # Did you read the comment?
}