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