dotfiles.nix/home.nix

195 lines
5.2 KiB
Nix
Raw Normal View History

2020-01-01 21:12:08 +00:00
{ pkgs, lib, ... }:
let
name = "Matthew Ess";
email = "daringseal@gmail.com";
workEmail = "mess@yelp.com";
in {
home = {
sessionVariables = {
EDITOR = "vim";
BROWSER = "firefox";
TERMINAL = "alacritty";
};
2020-01-01 21:12:08 +00:00
packages = with pkgs; [
# nix utilities
nixfmt
nix-prefetch-git
# command line utilities
ag
jq
tldr
# graphical applications
atom
firefox
enpass
termite
# graphical utilities
clipmenu
dmenu
i3lock-fancy
];
file = {
".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
'';
".config/fish/functions/systemctl.fish".source = ./scripts/systemctl.fish;
2020-01-01 21:12:08 +00:00
};
};
nixpkgs = { config.allowUnfree = true; };
programs = {
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
fish_vi_key_bindings
2020-01-01 21:12:08 +00:00
set VIRTUAL_ENV_DISABLE_PROMPT true
'';
};
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
lightline-vim
];
extraConfig = ''
set shell=/bin/bash
set nocompatible
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
colorscheme Tomorrow-Night-Eighties
"lightline options
let g:lightline = {'colorscheme': 'jellybeans'}
"view saving
au BufWinLeave ?* mkview 1
au BufWinEnter ?* silent loadview 1
"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
'';
};
ssh.enable = true;
starship.enable = true;
};
services = {
gnome-keyring.enable = true;
lorri.enable = true;
redshift = {
enable = true;
provider = "geoclue2";
};
screen-locker = {
enable = true;
lockCmd = "i3lock-fancy";
};
};
xsession = {
enable = true;
windowManager = {
i3 = {
enable = true;
config = rec {
assigns = {
"1: web" = [{ class = "Firefox"; }];
"2: devel" = [ { class = "Alacritty"; } { class = "Atom"; } ];
};
2020-01-01 21:12:08 +00:00
modifier = "Mod4";
keybindings = lib.mkOptionDefault {
"${modifier}+c" = "exec CM_ONESHOT=1 clipmenud";
2020-01-01 21:12:08 +00:00
"${modifier}+v" = "exec clipmenu";
"${modifier}+Escape" = "exec i3lock-fancy";
"${modifier}+0" = "workspace number 0";
"${modifier}+1" = "workspace number 1";
"${modifier}+2" = "workspace number 2";
"${modifier}+3" = "workspace number 3";
"${modifier}+4" = "workspace number 4";
"${modifier}+5" = "workspace number 5";
"${modifier}+6" = "workspace number 6";
"${modifier}+7" = "workspace number 7";
"${modifier}+8" = "workspace number 8";
"${modifier}+9" = "workspace number 9";
2020-01-01 21:12:08 +00:00
};
workspaceLayout = "tabbed";
2020-01-01 21:12:08 +00:00
};
extraConfig = ''
exec --no-startup-id firefox
exec --no-startup-id atom
exec --no-startup-id alacritty
for_window [class="Firefox"] focus
'';
2020-01-01 21:12:08 +00:00
};
};
};
}