dotfiles/nixos/configuration.nix

274 lines
5.5 KiB
Nix
Raw Normal View History

{ 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];
});
2018-06-17 04:01:41 -06:00
clipit-master = pkgs.clipit.overrideAttrs (oldAttrs: rec {
version = "9741c39382a3f6e4c03eac6905a49794d07c465a";
preConfigure = "./autogen.sh";
configureFlags = ["--with-gtk3" "--enable-appindicator"];
src = pkgs.fetchFromGitHub {
owner = "IvanMalison";
repo = "ClipIt";
sha256 = "13lddvbsp16nir9ibllr403qxhwyh4h2bh6774icbb250pghykjx";
rev = version;
};
buildInputs = with pkgs; [
autoconf automake intltool gtk3 xdotool hicolor-icon-theme
libappindicator-gtk3
];
});
2018-06-17 04:27:04 -06:00
git-sync = with pkgs; stdenv.mkDerivation rec {
name = "git-sync-${version}";
version = "20151024";
src = fetchFromGitHub {
owner = "simonthum";
repo = "git-sync";
rev = "eb9adaf2b5fd65aac1e83d6544b9076aae6af5b7";
sha256 = "01if8y93wa0mwbkzkzx2v1vqh47zlz4k1dysl6yh5rmppd1psknz";
};
buildInputs = [ makeWrapper ];
dontBuild = true;
installPhase = ''
mkdir -p $out/bin
cp -a git-sync $out/bin/git-sync
'';
wrapperPath = with stdenv.lib; makeBinPath [
coreutils
git
gnugrep
gnused
];
fixupPhase = ''
patchShebangs $out/bin
wrapProgram $out/bin/git-sync \
--prefix PATH : "${wrapperPath}"
'';
};
in
{
nixpkgs.config.allowUnfree = true;
security.sudo.wheelNeedsPassword = false;
networking.networkmanager.enable = true;
2018-06-18 15:41:28 -06:00
networking.firewall.enable = false;
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
2018-06-18 14:24:26 -06:00
calibre
2018-06-17 04:16:49 -06:00
emacs
firefox
2018-06-17 04:16:49 -06:00
google-chrome
hexchat
2018-06-17 04:16:49 -06:00
keybase-gui
kodi
2018-06-17 04:16:49 -06:00
rxvt_unicode
spotify
2018-06-17 04:02:10 -06:00
steam
termite
2018-06-17 04:16:49 -06:00
vlc
xfce.thunar
# Appearance
numix-icon-theme-circle
gnome3.adwaita-icon-theme
hicolor-icon-theme
2018-06-17 05:36:38 -06:00
plasma5.breeze-gtk
plasma5.breeze-qt5
# Desktop
autorandr
2018-06-17 04:01:41 -06:00
clipit-master
compton
feh
2018-06-17 04:02:10 -06:00
gnome3.gpaste
networkmanagerapplet
pinentry
pommed_light
rofi
rofi-pass
2018-06-18 15:09:15 -06:00
synergy
udiskie-appindicator
volnoti
xclip
xdotool
2018-06-17 04:02:10 -06:00
# haskellPackages.status-notifier-item
xorg.xkbcomp
xsettingsd
# Audio
pulsemixer
pavucontrol
playerctl
# Haskell
cabal-install
cabal2nix
ghc
stack2nix
stack
# Tools
binutils
gcc
gitFull
2018-06-17 04:27:04 -06:00
git-sync
gnumake
gnupg
htop
inotify-tools
ncdu
pass
python-with-my-packages
2018-06-17 05:36:38 -06:00
qt5.qttools
rcm
silver-searcher
stow
tmux
wget
2018-06-16 20:17:57 -06:00
wmctrl
zsh
# Nix
nix-prefetch-git
# Miscellaneous
android-udev-rules
librsvg
2018-06-14 17:04:36 -06:00
transmission-gtk
];
environment.variables = {
GDK_PIXBUF_MODULE_FILE = "${pkgs.librsvg.out}/lib/gdk-pixbuf-2.0/2.10.0/loaders.cache";
};
programs.gnupg.agent = { enable = true; enableSSHSupport = true; };
2018-06-18 15:33:41 -06:00
programs.zsh.enable = true;
services.openssh.enable = true;
services.avahi = {
enable = true;
nssmdns = true;
publish = {
enable = true;
domain = true;
userServices = true;
};
};
sound.enable = true;
hardware.pulseaudio.enable = true;
services.xserver = {
exportConfiguration = true;
enable = true;
layout = "us";
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;
};
2018-06-16 20:17:57 -06:00
system.stateVersion = "18.03";
}