dotfiles/nixos/configuration.nix

337 lines
5.8 KiB
Nix
Raw Normal View History

{ config, pkgs, options, ... }:
let
my-python-packages = python-packages: with python-packages; [
appdirs
ipdb
2019-02-12 21:43:50 -08:00
ipython
numpy
2019-05-11 12:36:06 -07:00
openpyxl
pip
2019-02-12 21:43:50 -08:00
requests
tox
virtualenv
virtualenvwrapper
];
python-with-my-packages = pkgs.python3.withPackages my-python-packages;
2019-06-10 08:11:50 -07:00
all-hies = import (fetchTarball "https://github.com/infinisil/all-hies/tarball/master") {};
2019-06-03 02:01:49 -07:00
notifications-tray-icon-source = pkgs.fetchFromGitHub {
owner = "IvanMalison";
repo = "notifications-tray-icon";
2019-12-10 13:27:07 -08:00
rev = "a855ebf924af3d695c5a10caca34b4eb88f58afb";
sha256 = "1pd7jhapz080v9q9iv7g8jk9an24zkipmfgg9fmfjr1qjv1zdbib";
2019-06-03 02:01:49 -07:00
};
2019-12-09 16:13:57 -08:00
notifications-tray-icon = (import (notifications-tray-icon-source.outPath + "/default.nix"));
in
{
2021-05-04 18:21:50 -06:00
# Disabling these waits disables the stuck on boot up issue
systemd.services.systemd-udev-settle.enable = false;
systemd.services.NetworkManager-wait-online.enable = false;
networking.firewall.enable = false;
2021-05-04 18:21:50 -06:00
# Security
programs.gnupg.agent = { enable = true; enableSSHSupport = true; };
services.pcscd.enable = true;
2021-05-04 18:21:50 -06:00
# Networking
environment.etc."ipsec.secrets".text = ''
include ipsec.d/ipsec.nm-l2tp.secrets
'';
networking.networkmanager = {
enable = true;
enableStrongSwan = true;
packages = [ pkgs.networkmanager-l2tp ];
extraConfig = ''
[main]
rc-manager=resolvconf
'';
};
2019-01-11 15:48:28 -08:00
# Audio
sound.enable = true;
hardware.pulseaudio.enable = true;
2021-01-20 17:49:13 -08:00
# Video
2019-01-11 15:48:28 -08:00
hardware.opengl.driSupport32Bit = true;
2021-01-20 17:49:13 -08:00
# Bluetooth
2019-12-10 11:34:39 -08:00
hardware.bluetooth.enable = true;
2020-06-07 23:16:13 -07:00
services.blueman.enable = true;
2019-12-10 11:34:39 -08:00
2021-01-20 17:49:13 -08:00
# Keyboard
console.keyMap = "us";
2021-01-20 17:49:13 -08:00
hardware.keyboard.zsa.enable = true;
i18n = {
defaultLocale = "en_US.UTF-8";
};
2021-04-15 19:57:44 -06:00
services.tzupdate.enable = true;
2021-05-23 18:31:42 -06:00
xdg.menus.enable = true;
environment.systemPackages = with pkgs; [
# Applications
2020-10-20 17:05:54 -07:00
alacritty
2020-06-07 23:16:13 -07:00
# calibre
2019-06-02 22:25:08 -07:00
gnome3.cheese
2019-02-27 14:57:18 -08:00
dfeet
discord
2018-06-17 03:16:49 -07:00
emacs
firefox
2018-07-13 17:28:16 -07:00
gitter
2018-06-17 03:16:49 -07:00
google-chrome
hexchat
2019-06-23 17:32:58 -07:00
keybase-gui
2020-10-20 17:05:54 -07:00
kitty
2019-02-27 14:57:18 -08:00
kleopatra
# kodi
2019-05-11 12:36:06 -07:00
libreoffice
2018-06-18 17:12:26 -07:00
lxappearance
2019-07-10 13:36:26 -07:00
okular
# pulseeffects
2019-02-27 14:57:18 -08:00
quassel
2019-06-23 13:52:56 -07:00
slack
2019-02-27 14:57:18 -08:00
simplescreenrecorder
spotify
transmission-gtk
2018-06-17 03:16:49 -07:00
vlc
xfce.thunar
wire-desktop
yubikey-manager
2019-02-27 13:53:10 -08:00
zoom-us
# Appearance
2019-06-23 23:22:33 -07:00
gnome-breeze
gnome3.adwaita-icon-theme
hicolor-icon-theme
2019-06-23 23:22:33 -07:00
materia-theme
numix-icon-theme-circle
2019-07-10 13:36:26 -07:00
papirus-icon-theme
2021-04-15 23:23:47 -06:00
# plasma5.breeze-gtk
# plasma5.breeze-qt5
2019-06-10 08:11:50 -07:00
# Haskell Desktop
2020-12-01 16:12:01 -08:00
haskellPackages.imalison-xmonad
haskellPackages.imalison-taffybar
haskellPackages.status-notifier-item
haskellPackages.dbus-hslogger
# notifications-tray-icon
2019-06-05 00:35:47 -07:00
2019-06-10 08:11:50 -07:00
# Desktop
autorandr
2019-05-25 21:18:23 -07:00
betterlockscreen
2019-01-11 00:18:32 -08:00
blueman
clipit
feh
2018-06-17 03:02:10 -07:00
gnome3.gpaste
kdeconnect
2018-06-26 21:55:26 -07:00
libnotify
lxqt.lxqt-powermanagement
networkmanagerapplet
notify-osd-customizable
pasystray
2020-06-07 23:15:08 -07:00
picom
pinentry
pommed_light
rofi
rofi-pass
rofi-systemd
2018-07-04 16:27:39 -07:00
skippy-xd
2018-06-18 14:09:15 -07:00
synergy
udiskie
volnoti
2019-03-14 18:15:29 -07:00
# xorg
wmctrl
xclip
xdotool
2019-03-14 18:15:29 -07:00
xorg.xev
xorg.xkbcomp
2019-03-14 18:15:29 -07:00
xorg.xwininfo
xsettingsd
# Audio
pulsemixer
pavucontrol
playerctl
# Haskell
cabal-install
cabal2nix
ghc
# stack
2019-06-20 12:17:20 -07:00
haskellPackages.hpack
2019-05-07 14:10:44 -07:00
haskellPackages.hasktags
2019-06-10 08:11:50 -07:00
haskellPackages.hoogle
# (all-hies.selection { selector = p: { inherit (p) ghc864 ghc865; }; })
# Scala
sbt
scala
2018-07-13 17:20:10 -07:00
# Node
nodePackages.npm
nodejs
2018-07-14 10:32:03 -07:00
# Rust
cargo
2019-06-20 20:59:33 -07:00
carnix
# rls
2019-06-23 13:55:59 -07:00
rustc
rustfmt
2018-07-14 10:32:03 -07:00
2018-08-27 15:52:53 -07:00
# Clojure
boot
leiningen
2019-03-06 17:07:31 -08:00
# Ruby
ruby
# purescript
purescript
2020-04-18 01:51:49 -07:00
spago
# dhall
haskellPackages.dhall
haskellPackages.dhall-json
# Tools
2018-07-30 12:17:43 -07:00
automake
2019-06-05 00:35:47 -07:00
bind
binutils
cmake
dex
2019-05-07 14:10:44 -07:00
direnv
2018-07-13 17:20:10 -07:00
dpkg
2021-04-15 23:23:47 -06:00
emacs27Packages.cask
2019-01-06 19:45:06 -08:00
fd
file
gcc
2018-06-25 18:28:04 -07:00
gdb
2019-06-05 00:35:47 -07:00
gitAndTools.git-crypt
gitAndTools.git-extras
2018-07-07 21:45:02 -07:00
gitAndTools.git-fame
2019-06-05 00:35:47 -07:00
gitAndTools.git-sync
2018-07-07 21:45:02 -07:00
gitAndTools.hub
gitFull
2019-05-09 14:26:48 -07:00
glxinfo
gnumake
gnupg
2019-05-25 21:18:23 -07:00
gparted
htop
2020-10-20 17:05:54 -07:00
inetutils
inotify-tools
2018-06-19 22:51:49 -07:00
ispell
2019-01-06 19:45:06 -08:00
jq
libtool
2021-04-15 23:23:47 -06:00
# lorri
2019-06-20 20:59:33 -07:00
lsof
mercurial
ncdu
2018-06-19 22:51:49 -07:00
neofetch
2019-02-05 09:30:25 -08:00
openvpn
2019-05-25 21:18:23 -07:00
parallel
pass
2018-07-13 17:20:10 -07:00
patchelf
2019-05-09 14:26:48 -07:00
pciutils
plasma-workspace
2019-06-20 20:59:33 -07:00
pijul
2018-06-20 14:08:03 -07:00
powertop
prometheus
2019-01-02 12:41:19 -08:00
pscircle
pstree
python-with-my-packages
2018-06-17 04:36:38 -07:00
qt5.qttools
rcm
# rr
2018-06-19 22:30:58 -07:00
scrot
silver-searcher
stow
2019-07-10 13:36:26 -07:00
subversion
2021-05-04 18:21:50 -06:00
swig
tmux
2021-04-15 19:57:44 -06:00
tzupdate
unzip
2019-02-05 09:30:25 -08:00
usbutils
2018-07-04 16:27:39 -07:00
valgrind
wget
2021-05-04 18:21:50 -06:00
yubikey-manager
# Nix
nix-prefetch-git
2019-06-10 08:11:50 -07:00
cachix
# Miscellaneous
android-udev-rules
librsvg
2021-07-04 01:42:12 -06:00
2021-07-04 03:18:00 -06:00
# Internet computer
2021-07-04 01:42:12 -06:00
ic-keysmith
2021-07-04 03:18:00 -06:00
quill
];
2018-07-14 10:31:44 -07:00
# XXX: Plasma seems to set this
# environment.variables = {
# GDK_PIXBUF_MODULE_FILE = "${pkgs.librsvg.out}/lib/gdk-pixbuf-2.0/2.10.0/loaders.cache";
# };
2019-06-03 02:01:49 -07:00
programs.zsh.enable = true;
2018-07-30 12:17:43 -07:00
2019-01-02 12:41:19 -08:00
programs.adb.enable = true;
2019-01-11 15:48:28 -08:00
services.openssh.enable = true;
2019-02-14 22:45:26 -08:00
services.avahi = {
enable = true;
nssmdns = true;
publish = {
enable = true;
domain = true;
userServices = true;
};
};
2019-02-14 22:45:26 -08:00
2021-05-23 18:31:42 -06:00
# TODO: Add a comment explaining what this does.
services.gnome.at-spi2-core.enable = true;
2019-02-14 22:45:26 -08:00
2018-07-11 20:14:18 -07:00
services.kbfs.enable = true;
2019-02-14 22:45:26 -08:00
services.autorandr.enable = true;
2019-05-11 12:36:06 -07:00
services.locate.enable = true;
2021-04-15 23:23:47 -06:00
# services.lorri.enable = true;
2019-12-09 16:15:01 -08:00
services.xserver = {
exportConfiguration = true;
enable = true;
layout = "us";
desktopManager = {
2018-07-14 10:31:44 -07:00
plasma5.enable = true;
};
windowManager = {
session = [
{
name = "xmonad";
start = ''
/usr/bin/env imalison-xmonad &
waitPID=$!
'';
}
];
};
displayManager = {
sddm = {
enable = true;
};
sessionCommands = ''
systemctl --user import-environment GDK_PIXBUF_MODULE_FILE DBUS_SESSION_BUS_ADDRESS PATH
'';
};
};
virtualisation.docker.enable = true;
}