2020-01-01 21:12:08 +00:00
|
|
|
|
{ pkgs, lib, ... }:
|
|
|
|
|
|
|
|
|
|
let
|
|
|
|
|
name = "Matthew Ess";
|
|
|
|
|
email = "daringseal@gmail.com";
|
|
|
|
|
workEmail = "mess@yelp.com";
|
2020-01-03 01:51:01 +00:00
|
|
|
|
lockCmd = "i3lock -i ~/.lockscreen-image";
|
2020-01-03 19:10:52 +00:00
|
|
|
|
niv = (import (builtins.fetchTarball {
|
2020-01-05 09:53:17 +00:00
|
|
|
|
url =
|
|
|
|
|
"https://github.com/nmattia/niv/tarball/abd0de3269fd712955d27b70e32921841c7b8bb7";
|
2020-01-03 06:06:04 +00:00
|
|
|
|
sha256 = "0b38n1ad00s1qqyw3ml3pypf8i1pw4aqw0bpa02qq9iv7sp3x0gz";
|
2020-01-03 19:10:52 +00:00
|
|
|
|
}) { }).niv;
|
2020-01-01 21:12:08 +00:00
|
|
|
|
|
|
|
|
|
in {
|
|
|
|
|
home = {
|
2020-01-02 00:31:37 +00:00
|
|
|
|
sessionVariables = {
|
|
|
|
|
EDITOR = "vim";
|
|
|
|
|
BROWSER = "firefox";
|
|
|
|
|
TERMINAL = "alacritty";
|
|
|
|
|
};
|
2020-01-01 21:12:08 +00:00
|
|
|
|
packages = with pkgs; [
|
|
|
|
|
# nix utilities
|
2020-01-03 06:06:04 +00:00
|
|
|
|
cachix
|
2020-01-03 19:10:52 +00:00
|
|
|
|
niv
|
2020-01-01 21:12:08 +00:00
|
|
|
|
nixfmt
|
|
|
|
|
nix-prefetch-git
|
|
|
|
|
# command line utilities
|
|
|
|
|
ag
|
2020-01-05 09:53:17 +00:00
|
|
|
|
fzy
|
2020-01-01 21:12:08 +00:00
|
|
|
|
jq
|
|
|
|
|
tldr
|
2020-01-02 04:44:48 +00:00
|
|
|
|
imagemagick
|
2020-01-01 21:12:08 +00:00
|
|
|
|
# graphical applications
|
2020-01-02 04:44:48 +00:00
|
|
|
|
alacritty
|
2020-01-01 21:12:08 +00:00
|
|
|
|
atom
|
|
|
|
|
enpass
|
2020-01-02 04:44:48 +00:00
|
|
|
|
firefox
|
2020-01-17 17:11:49 +00:00
|
|
|
|
nheko
|
|
|
|
|
slack
|
2020-01-03 06:06:04 +00:00
|
|
|
|
steam
|
2020-01-01 21:12:08 +00:00
|
|
|
|
# graphical utilities
|
|
|
|
|
clipmenu
|
2020-01-02 04:44:48 +00:00
|
|
|
|
clipnotify
|
2020-01-01 21:12:08 +00:00
|
|
|
|
dmenu
|
2020-01-02 06:23:41 +00:00
|
|
|
|
i3lock
|
2020-01-03 01:13:32 +00:00
|
|
|
|
rofi
|
2020-01-03 06:06:04 +00:00
|
|
|
|
xclip
|
2020-01-01 21:12:08 +00:00
|
|
|
|
];
|
|
|
|
|
file = {
|
2020-01-02 04:44:48 +00:00
|
|
|
|
".background-image".source = ./assets/background-image;
|
2020-01-03 01:51:01 +00:00
|
|
|
|
".lockscreen-image".source = ./assets/lockscreen-image;
|
2020-01-01 21:12:08 +00:00
|
|
|
|
".config/fish/fishfile".text = ''
|
|
|
|
|
laughedelic/pisces
|
|
|
|
|
sijad/gitignore
|
|
|
|
|
joehillen/to-fish
|
|
|
|
|
jethrokuan/z
|
|
|
|
|
decors/fish-colored-man
|
|
|
|
|
franciscolourenco/done
|
|
|
|
|
haslersn/fish-nix-completions
|
|
|
|
|
gyakovlev/fish-fzy
|
|
|
|
|
joseluisq/gitnow
|
|
|
|
|
edc/bass
|
|
|
|
|
fishpkg/fish-get
|
|
|
|
|
fishpkg/fish-spin
|
|
|
|
|
oh-my-fish/plugin-bang-bang
|
|
|
|
|
fishpkg/fish-humanize-duration
|
|
|
|
|
jorgebucaran/fish-getopts
|
|
|
|
|
matthewess/fish-autovenv
|
|
|
|
|
'';
|
2020-01-02 04:44:48 +00:00
|
|
|
|
".config/fish/completions/systemctl.fish".source =
|
|
|
|
|
./scripts/systemctl.fish;
|
2020-01-17 17:11:49 +00:00
|
|
|
|
".config/fish/functions/kbl.fish".source = ./scripts/kbl.fish;
|
2020-01-02 04:44:48 +00:00
|
|
|
|
".config/i3status/config".text = ''
|
|
|
|
|
# i3status configuration file.
|
|
|
|
|
# see "man i3status" for documentation.
|
|
|
|
|
|
|
|
|
|
# It is important that this file is edited as UTF-8.
|
|
|
|
|
# The following line should contain a sharp s:
|
|
|
|
|
# ß
|
|
|
|
|
# If the above line is not correctly displayed, fix your editor first!
|
|
|
|
|
|
|
|
|
|
general {
|
|
|
|
|
colors = true
|
|
|
|
|
interval = 5
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
order += "disk /"
|
|
|
|
|
order += "volume master"
|
|
|
|
|
order += "wireless _first_"
|
|
|
|
|
order += "battery 1"
|
|
|
|
|
order += "load"
|
|
|
|
|
order += "tztime local"
|
|
|
|
|
|
|
|
|
|
wireless _first_ {
|
|
|
|
|
format_up = " (%essid - %quality) %ip"
|
|
|
|
|
format_down = "down"
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
volume master {
|
|
|
|
|
format = " %volume"
|
|
|
|
|
format_muted = " (%volume)"
|
2020-01-02 06:23:41 +00:00
|
|
|
|
device = "pulse:0"
|
2020-01-02 04:44:48 +00:00
|
|
|
|
mixer = "Master"
|
|
|
|
|
mixer_idx = 0
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
battery 1 {
|
|
|
|
|
format = "%status %percentage %remaining"
|
|
|
|
|
status_bat = ""
|
|
|
|
|
status_chr = ""
|
|
|
|
|
status_full = ""
|
|
|
|
|
low_threshold = 30
|
|
|
|
|
threshold_type = percentage
|
|
|
|
|
integer_battery_capacity = true
|
|
|
|
|
color_good = "#0000FF"
|
|
|
|
|
path = "/sys/class/power_supply/BAT0/uevent"
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
run_watch DHCP {
|
|
|
|
|
pidfile = "/var/run/dhclient*.pid"
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
run_watch VPN {
|
|
|
|
|
pidfile = "/var/run/vpnc/pid"
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
tztime local {
|
|
|
|
|
format = " %h %d, %Y %I:%M:%S"
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
load {
|
|
|
|
|
format = " %1min"
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
disk "/" {
|
|
|
|
|
format = " %avail free"
|
|
|
|
|
}
|
|
|
|
|
'';
|
2020-01-03 01:13:32 +00:00
|
|
|
|
".config/rofi/theme.rasi".source = ./assets/arc-dark-red.rasi;
|
2020-01-01 21:12:08 +00:00
|
|
|
|
};
|
|
|
|
|
};
|
|
|
|
|
nixpkgs = { config.allowUnfree = true; };
|
|
|
|
|
programs = {
|
2020-01-02 00:31:37 +00:00
|
|
|
|
alacritty = {
|
|
|
|
|
enable = true;
|
|
|
|
|
settings = { font.normal.family = "Fira Code"; };
|
|
|
|
|
};
|
2020-01-01 21:12:08 +00:00
|
|
|
|
bat.enable = true;
|
|
|
|
|
broot.enable = true;
|
|
|
|
|
command-not-found.enable = true;
|
|
|
|
|
direnv.enable = true;
|
|
|
|
|
feh.enable = true;
|
|
|
|
|
firefox.enable = true;
|
|
|
|
|
fish = {
|
|
|
|
|
enable = true;
|
|
|
|
|
interactiveShellInit = ''
|
|
|
|
|
echo 'ヽ(´ᗜ`)ノ welcome ヽ(´ᗜ`)ノ'
|
|
|
|
|
if not functions -q fisher
|
|
|
|
|
set -q XDG_CONFIG_HOME; or set XDG_CONFIG_HOME ~/.config
|
|
|
|
|
curl https://git.io/fisher --create-dirs -sLo $XDG_CONFIG_HOME/fish/functions/fisher.fish
|
|
|
|
|
fish -c fisher
|
|
|
|
|
end
|
2020-01-02 00:31:37 +00:00
|
|
|
|
fish_vi_key_bindings
|
2020-01-01 21:12:08 +00:00
|
|
|
|
set VIRTUAL_ENV_DISABLE_PROMPT true
|
2020-01-02 04:44:48 +00:00
|
|
|
|
|
|
|
|
|
alias cat=bat
|
|
|
|
|
alias br=broot
|
|
|
|
|
alias tree=br
|
|
|
|
|
alias ack=ag
|
|
|
|
|
alias grep=ag
|
|
|
|
|
alias sys="sudo systemctl"
|
|
|
|
|
alias rebuild="sudo nixos-rebuild switch"
|
|
|
|
|
alias upgrade="sudo nixos-rebuild switch --upgrade"
|
2020-01-03 06:06:04 +00:00
|
|
|
|
alias clip="xclip -selection c"
|
|
|
|
|
alias cxuse="sudo cachix use -d ~/dotfiles.nix"
|
2020-01-05 09:53:17 +00:00
|
|
|
|
alias cxpsh="nix build -f shell.nix; nix-store -qR --include-outputs (nix-instantiate shell.nix) | cachix push"
|
2020-01-01 21:12:08 +00:00
|
|
|
|
'';
|
|
|
|
|
};
|
|
|
|
|
git = {
|
|
|
|
|
enable = true;
|
|
|
|
|
userName = "${name}";
|
|
|
|
|
userEmail = "${workEmail}";
|
|
|
|
|
ignores = [ ".*.sw[a-z]" "tags" ];
|
|
|
|
|
extraConfig = {
|
|
|
|
|
color.ui = true;
|
|
|
|
|
core.editor = "vim";
|
|
|
|
|
push.default = "simple";
|
|
|
|
|
};
|
|
|
|
|
};
|
|
|
|
|
htop = {
|
|
|
|
|
enable = true;
|
|
|
|
|
highlightBaseName = true;
|
|
|
|
|
};
|
|
|
|
|
jq.enable = true;
|
|
|
|
|
man.enable = true;
|
|
|
|
|
neovim = {
|
|
|
|
|
enable = true;
|
|
|
|
|
viAlias = true;
|
|
|
|
|
vimAlias = true;
|
|
|
|
|
plugins = with pkgs.vimPlugins; [
|
|
|
|
|
neovim-sensible
|
|
|
|
|
vim-fugitive
|
|
|
|
|
vim-surround
|
|
|
|
|
nerdtree
|
|
|
|
|
nerdtree-git-plugin
|
|
|
|
|
vim-colorschemes
|
2020-01-03 06:06:04 +00:00
|
|
|
|
vim-nix
|
2020-01-01 21:12:08 +00:00
|
|
|
|
lightline-vim
|
2020-01-17 17:11:49 +00:00
|
|
|
|
haskell-vim
|
|
|
|
|
LanguageClient-neovim
|
2020-01-01 21:12:08 +00:00
|
|
|
|
];
|
|
|
|
|
extraConfig = ''
|
|
|
|
|
set cursorline "highlight current line
|
|
|
|
|
set showmatch "highlight matching [{()}]
|
|
|
|
|
set tabstop=2 "number of visual spaces per TAB when reading
|
|
|
|
|
set softtabstop=2 "number of spaces per TAB when editing
|
|
|
|
|
set expandtab "tabs are spaces
|
|
|
|
|
set shiftwidth=2 "indents
|
|
|
|
|
cmap w!! w !sudo tee >/dev/null %
|
|
|
|
|
set ww=<,>,[,] "wrap
|
|
|
|
|
|
2020-01-05 09:53:17 +00:00
|
|
|
|
"terminal exit
|
|
|
|
|
tnoremap <Esc> <C-\><C-n>:q!<CR>
|
|
|
|
|
|
2020-01-01 21:12:08 +00:00
|
|
|
|
colorscheme Tomorrow-Night-Eighties
|
|
|
|
|
"lightline options
|
|
|
|
|
let g:lightline = {'colorscheme': 'jellybeans'}
|
|
|
|
|
|
2020-01-03 19:10:52 +00:00
|
|
|
|
"cursor saving
|
|
|
|
|
autocmd BufReadPost * if @% !~# '\.git[\/\\]COMMIT_EDITMSG$' && line("'\"") > 1 && line("'\"") <= line("$") | exe "normal! g`\"" | endif
|
2020-01-01 21:12:08 +00:00
|
|
|
|
|
|
|
|
|
"nerdtree
|
|
|
|
|
"show hidden files
|
|
|
|
|
let NERDTreeShowHidden=1
|
|
|
|
|
"open on vim open
|
|
|
|
|
autocmd vimenter * NERDTree
|
|
|
|
|
"switch to editing window
|
|
|
|
|
autocmd vimenter * wincmd p
|
|
|
|
|
"close if only nerdtree is left
|
|
|
|
|
autocmd bufenter * if (winnr("$") == 1 && exists("b:NERDTree") && b:NERDTree.isTabTree()) | q | endif
|
2020-01-17 17:11:49 +00:00
|
|
|
|
|
|
|
|
|
"language server stuff
|
|
|
|
|
let g:LanguageClient_rootMarkers = ['*.cabal', 'stack.yaml']
|
|
|
|
|
let g:LanguageClient_serverCommands = {
|
|
|
|
|
\ 'haskell': ['ghcide', '--lsp'],
|
|
|
|
|
\ }
|
2020-01-01 21:12:08 +00:00
|
|
|
|
'';
|
|
|
|
|
};
|
2020-01-03 01:13:32 +00:00
|
|
|
|
rofi = {
|
|
|
|
|
enable = true;
|
|
|
|
|
font = "Fira Code 14";
|
|
|
|
|
lines = 15;
|
|
|
|
|
location = "center";
|
|
|
|
|
theme = ".config/rofi/theme";
|
|
|
|
|
};
|
2020-01-05 10:02:12 +00:00
|
|
|
|
ssh = {
|
|
|
|
|
enable = true;
|
|
|
|
|
extraOptionOverrides = {
|
|
|
|
|
"AddKeysToAgent" = "true";
|
|
|
|
|
};
|
|
|
|
|
};
|
2020-01-01 21:12:08 +00:00
|
|
|
|
starship.enable = true;
|
|
|
|
|
};
|
|
|
|
|
services = {
|
|
|
|
|
gnome-keyring.enable = true;
|
|
|
|
|
lorri.enable = true;
|
|
|
|
|
redshift = {
|
|
|
|
|
enable = true;
|
|
|
|
|
provider = "geoclue2";
|
|
|
|
|
};
|
|
|
|
|
screen-locker = {
|
|
|
|
|
enable = true;
|
2020-01-02 06:23:41 +00:00
|
|
|
|
lockCmd = "${lockCmd}";
|
2020-01-01 21:12:08 +00:00
|
|
|
|
};
|
|
|
|
|
};
|
|
|
|
|
xsession = {
|
|
|
|
|
enable = true;
|
2020-01-02 04:44:48 +00:00
|
|
|
|
scriptPath = ".hm-xsession";
|
2020-01-01 21:12:08 +00:00
|
|
|
|
windowManager = {
|
2020-01-03 01:13:32 +00:00
|
|
|
|
i3 = import ./i3.nix {
|
|
|
|
|
inherit lib;
|
|
|
|
|
inherit lockCmd;
|
2020-01-01 21:12:08 +00:00
|
|
|
|
};
|
|
|
|
|
};
|
|
|
|
|
};
|
|
|
|
|
}
|