Skip to content

Instantly share code, notes, and snippets.

@johnpyp
Created December 25, 2019 23:10
Show Gist options
  • Save johnpyp/b42bed992f09a46ce7ebb57d3c059df5 to your computer and use it in GitHub Desktop.
Save johnpyp/b42bed992f09a46ce7ebb57d3c059df5 to your computer and use it in GitHub Desktop.
# 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, ... }:
{
imports = [
# Include the results of the hardware scan.
./hardware-configuration.nix
];
# Use the systemd-boot EFI boot loader.
boot.loader.systemd-boot.enable = true;
boot.loader.efi.canTouchEfiVariables = true;
boot.loader.grub.useOSProber = true;
networking.hostName = "johnpyp-nixos-laptop"; # Define your hostname.
networking.networkmanager.enable = true;
# networking.wireless.enable = true; # Enables wireless support via wpa_supplicant.
# The global useDHCP flag is deprecated, therefore explicitly set to false here.
# Per-interface useDHCP will be mandatory in the future, so this generated config
# replicates the default behaviour.
networking.useDHCP = false;
networking.interfaces.wlp2s0.useDHCP = true;
# Configure network proxy if necessary
# networking.proxy.default = "http://user:password@proxy:port/";
# networking.proxy.noProxy = "127.0.0.1,localhost,internal.domain";
# Select internationalisation properties.
# i18n = {
# consoleFont = "Lat2-Terminus16";
# consoleKeyMap = "us";
# defaultLocale = "en_US.UTF-8";
# };
# Set your time zone.
time.timeZone = "America/New_York";
# List packages installed in system profile. To search, run:
# $ nix search wget
environment.systemPackages = with pkgs; [
acpi
betterlockscreen
bitwarden
clojure
compton
leiningen
coursier
crystal
curl
discord
docker
docker-compose
dolphin
exa
exodus
fasd
fd
feh
firefox
flameshot
fzf
gcc
git
gitAndTools.hub
gnome3.networkmanagerapplet
go
google-chrome
gparted
gradle
clang
htop
insomnia
jdk12
jetbrains.idea-ultimate
keybase-gui
keychain
kitty
kotlin
ktlint
lxappearance-gtk3
mypy
ncdu
neofetch
neovim
nixfmt
nixpkgs-fmt
nodejs-12_x
okular
openjdk
parted
pavucontrol
qalculate-gtk
ranger
ripgrep
rofi
rustfmt
rustup
shards
spotify
unrar
unzip
vim
vscode
wget
xautolock
xfce4-14.xfce4-notifyd
zafiro-icons
zlib
zsh
zstd
(
python3.withPackages (
ps:
with ps; [
beautifulsoup4
dbus-python
flask
matplotlib
numpy
pandas
pygobject3
requests
scipy
virtualenvwrapper
]
)
)
];
fonts = {
enableFontDir = true;
fontconfig = {
enable = true;
defaultFonts.monospace = [ "Cascadia Code" ];
defaultFonts.sansSerif = [ "roboto" ];
defaultFonts.serif = [ "roboto-slab" ];
};
fonts = with pkgs; [ nerdfonts cascadia-code ];
};
nixpkgs.overlays = [
(
self: super: {
my-polybar = super.polybar.override {
i3Support = true;
pulseSupport = true;
};
}
)
];
programs.light.enable = true;
# 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:
users.users.johnpyp = {
isNormalUser = true;
home = "/home/johnpyp";
extraGroups = [ "wheel" "networkmanager" "docker" "audio" "video" ];
initialPassword = "johnpyp";
shell = pkgs.zsh;
};
environment.shells = [ pkgs.bashInteractive pkgs.zsh ];
sound.enable = true;
hardware.pulseaudio = {
enable = true;
package = pkgs.pulseaudioFull;
};
virtualisation.docker.enable = true;
services = {
gnome3.gnome-keyring.enable = true;
tlp.enable = true;
keybase.enable = true;
kbfs.enable = true;
kbfs.mountPoint = "/home/johnpyp/keybase";
printing.enable = true;
compton = {
vSync = true;
enable = true;
backend = "glx";
};
logind = { lidSwitch = "suspend"; };
xserver = {
xkbOptions = "caps:escape";
autoRepeatDelay = 200;
autoRepeatInterval = 80;
enable = true;
layout = "us";
libinput = {
enable = true;
accelProfile = "flat";
};
windowManager.default = "i3";
windowManager.i3 = {
enable = true;
# configFile = /home/johnpyp/.config/i3/config;
package = pkgs.i3-gaps;
extraPackages = with pkgs; [ rofi my-polybar betterlockscreen ];
};
desktopManager = {
default = "none";
xterm.enable = false;
};
displayManager = { lightdm = { enable = true; }; };
};
openssh.enable = true;
openvpn = {
servers = {
pia-us-east = {
config = '' config /home/johnpyp/.vpn/pia/us-east.ovpn '';
autoStart = false;
updateResolvConf = true;
};
};
};
};
nixpkgs.config.allowUnfree = true;
system.stateVersion = "19.09";
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment