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-03-14 08:49:32 +00:00
|
|
|
|
statusCmd = "i3status-rs ~/.config/i3status.toml";
|
2020-01-01 21:12:08 +00:00
|
|
|
|
|
|
|
|
|
in {
|
2020-05-28 17:29:19 +00:00
|
|
|
|
nixpkgs = { config = { allowUnfree = true; }; };
|
2020-01-01 21:12:08 +00:00
|
|
|
|
home = {
|
2020-01-02 00:31:37 +00:00
|
|
|
|
sessionVariables = {
|
|
|
|
|
EDITOR = "vim";
|
|
|
|
|
BROWSER = "firefox";
|
2020-03-14 08:49:32 +00:00
|
|
|
|
TERMINAL = "kitty";
|
2020-01-02 00:31:37 +00:00
|
|
|
|
};
|
2020-01-01 21:12:08 +00:00
|
|
|
|
packages = with pkgs; [
|
|
|
|
|
# nix utilities
|
2020-01-03 06:06:04 +00:00
|
|
|
|
cachix
|
2020-05-28 17:29:19 +00:00
|
|
|
|
niv
|
2020-01-01 21:12:08 +00:00
|
|
|
|
nixfmt
|
|
|
|
|
nix-prefetch-git
|
|
|
|
|
# command line utilities
|
|
|
|
|
ag
|
2021-01-03 16:18:57 +00:00
|
|
|
|
bottom
|
2020-05-28 17:29:19 +00:00
|
|
|
|
du-dust
|
2020-03-14 08:49:32 +00:00
|
|
|
|
exercism
|
2020-01-05 09:53:17 +00:00
|
|
|
|
fzy
|
2021-01-03 16:18:57 +00:00
|
|
|
|
httpie
|
2020-01-24 21:19:15 +00:00
|
|
|
|
imagemagick
|
2020-01-01 21:12:08 +00:00
|
|
|
|
jq
|
2021-01-03 16:18:57 +00:00
|
|
|
|
pijul
|
|
|
|
|
procs
|
2020-03-14 08:49:32 +00:00
|
|
|
|
rlwrap
|
2021-01-03 16:18:57 +00:00
|
|
|
|
tealdeer
|
2020-01-24 21:19:15 +00:00
|
|
|
|
unzip
|
2021-01-03 16:18:57 +00:00
|
|
|
|
unrar
|
|
|
|
|
wireguard
|
2020-01-01 21:12:08 +00:00
|
|
|
|
# graphical applications
|
2021-01-03 16:18:57 +00:00
|
|
|
|
castor
|
|
|
|
|
deluge
|
2020-05-28 17:29:19 +00:00
|
|
|
|
discord
|
2020-03-14 08:49:32 +00:00
|
|
|
|
(dunst.override { dunstify = true; })
|
2020-01-01 21:12:08 +00:00
|
|
|
|
enpass
|
2020-11-15 05:08:06 +00:00
|
|
|
|
fractal
|
2020-01-02 04:44:48 +00:00
|
|
|
|
firefox
|
2020-03-14 08:49:32 +00:00
|
|
|
|
kitty
|
2021-01-03 16:18:57 +00:00
|
|
|
|
mullvad-vpn
|
2020-11-15 05:08:06 +00:00
|
|
|
|
signal-desktop
|
2020-01-17 17:11:49 +00:00
|
|
|
|
slack
|
2020-01-03 06:06:04 +00:00
|
|
|
|
steam
|
2021-01-03 16:18:57 +00:00
|
|
|
|
vlc
|
2020-11-15 05:08:06 +00:00
|
|
|
|
xfce.thunar
|
|
|
|
|
xfce.thunar-archive-plugin
|
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
|
2021-01-03 16:18:57 +00:00
|
|
|
|
gnome3.gnome-disk-utility
|
2020-01-02 06:23:41 +00:00
|
|
|
|
i3lock
|
2020-05-28 17:29:19 +00:00
|
|
|
|
i3status-rust
|
2021-01-03 16:18:57 +00:00
|
|
|
|
libappindicator
|
2020-03-14 08:49:32 +00:00
|
|
|
|
libnotify
|
2020-11-15 05:08:06 +00:00
|
|
|
|
lxappearance
|
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
|
|
|
|
|
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 =
|
2020-01-24 21:19:15 +00:00
|
|
|
|
./assets/systemctl.fish;
|
2020-05-28 17:29:19 +00:00
|
|
|
|
".config/fish/functions/colortest.fish".source = ./assets/colortest.fish;
|
2020-01-24 21:19:15 +00:00
|
|
|
|
".config/fish/functions/kbl.fish".text = ''
|
|
|
|
|
function kbl -a level
|
|
|
|
|
set -l initial (cat /sys/class/leds/tpacpi\:\:kbd_backlight/brightness)
|
|
|
|
|
test -z "$level"; and set -l level $initial
|
|
|
|
|
echo $level > /sys/class/leds/tpacpi\:\:kbd_backlight/brightness
|
|
|
|
|
end
|
|
|
|
|
'';
|
|
|
|
|
".config/fish/functions/mkdcd.fish".text = ''
|
|
|
|
|
function mkdcd -a target
|
|
|
|
|
mkdir $target
|
|
|
|
|
cd $target
|
|
|
|
|
end
|
|
|
|
|
'';
|
|
|
|
|
".config/fish/functions/unz.fish".text = ''
|
|
|
|
|
function unz -a target
|
2020-03-14 08:49:32 +00:00
|
|
|
|
# strip extensions
|
|
|
|
|
string match \*.zip $target; and set target (string split -r -m1 . $target)[1]
|
2020-01-24 21:19:15 +00:00
|
|
|
|
unzip -d $target $target
|
|
|
|
|
end
|
|
|
|
|
'';
|
2020-03-14 08:49:32 +00:00
|
|
|
|
".config/i3status.toml".source = ./assets/i3status.toml;
|
|
|
|
|
".config/kitty/kitty.conf".text = ''
|
|
|
|
|
font_family Fira Code Regular
|
|
|
|
|
bold_font Fira Code Bold
|
|
|
|
|
font_size 15.0
|
2020-05-28 17:29:19 +00:00
|
|
|
|
include ./theme.conf
|
2020-01-02 04:44:48 +00:00
|
|
|
|
'';
|
2020-05-28 17:29:19 +00:00
|
|
|
|
".config/kitty/theme.conf".source = ./assets/kitty-theme.conf;
|
2021-01-03 16:18:57 +00:00
|
|
|
|
# ".config/nvim/init.vim".source = ./assets/init.vim;
|
2020-03-14 08:49:32 +00:00
|
|
|
|
".config/rofi/theme.rasi".source = ./assets/sidetab.rasi;
|
2020-01-01 21:12:08 +00:00
|
|
|
|
};
|
|
|
|
|
};
|
|
|
|
|
programs = {
|
2020-01-02 00:31:37 +00:00
|
|
|
|
alacritty = {
|
2020-03-14 08:49:32 +00:00
|
|
|
|
enable = false;
|
|
|
|
|
settings = {
|
|
|
|
|
font = {
|
|
|
|
|
normal.family = "Fira Code";
|
|
|
|
|
size = 10.5;
|
|
|
|
|
};
|
|
|
|
|
};
|
2020-01-02 00:31:37 +00:00
|
|
|
|
};
|
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;
|
2020-05-28 17:29:19 +00:00
|
|
|
|
package = pkgs.fish;
|
2020-01-01 21:12:08 +00:00
|
|
|
|
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"
|
2020-03-14 08:49:32 +00:00
|
|
|
|
alias rebuildd="sudo nixos-rebuild switch; and systemctl restart display-manager"
|
2021-01-03 16:18:57 +00:00
|
|
|
|
alias upgrade="sudo rm -rf /root/.cache/nix/tarballs; and sudo nix-channel --upgrade; and 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-05-28 17:29:19 +00:00
|
|
|
|
alias cxpsh="nix-shell --command exit; nix-store -qR --include-outputs (nix-instantiate shell.nix) | cachix push"
|
|
|
|
|
alias cxpush=cxpsh
|
2020-03-14 08:49:32 +00:00
|
|
|
|
alias home="vim ~/dotfiles.nix/home.nix +'cd %:p:h'"
|
|
|
|
|
alias i3="vim ~/dotfiles.nix/i3.nix +'cd %:p:h'"
|
2020-05-28 17:29:19 +00:00
|
|
|
|
alias config="vim ~/dotfiles.nix/configuration.nix +'cd %:p:h'"
|
2020-03-14 08:49:32 +00:00
|
|
|
|
alias vims="vim -S Session.vim"
|
2020-11-15 05:08:06 +00:00
|
|
|
|
alias bigscreen="xrandr --output eDP1 --off --output HDMI2 --auto"
|
|
|
|
|
alias smallscreen="xrandr --output eDP1 --auto --output HDMI2 --off"
|
2021-01-03 16:18:57 +00:00
|
|
|
|
alias pi="env TERM=xterm ssh pi@pi"
|
|
|
|
|
alias drop="env TERM=xterm ssh mat@drop"
|
|
|
|
|
alias wgup="wg-quick up wg0"
|
|
|
|
|
alias wgdn="wg-quick down wg0"
|
|
|
|
|
alias wifi="nmcli r w off; nmcli r w on"
|
2020-05-28 17:29:19 +00:00
|
|
|
|
|
|
|
|
|
bind \cr 'fzy_select_history (commandline -b)'
|
|
|
|
|
bind -M insert \cr 'fzy_select_history (commandline -b)'
|
|
|
|
|
|
|
|
|
|
bind \cf 'fzy_select_directory'
|
|
|
|
|
bind -M insert \cf 'fzy_select_directory'
|
|
|
|
|
|
|
|
|
|
bind -M insert ! __history_previous_command
|
|
|
|
|
bind -M insert '$' __history_previous_command_arguments
|
2020-01-01 21:12:08 +00:00
|
|
|
|
'';
|
|
|
|
|
};
|
|
|
|
|
git = {
|
|
|
|
|
enable = true;
|
|
|
|
|
userName = "${name}";
|
2020-11-15 05:08:06 +00:00
|
|
|
|
userEmail = "${email}";
|
2020-01-01 21:12:08 +00:00
|
|
|
|
ignores = [ ".*.sw[a-z]" "tags" ];
|
|
|
|
|
extraConfig = {
|
|
|
|
|
color.ui = true;
|
|
|
|
|
core.editor = "vim";
|
|
|
|
|
push.default = "simple";
|
2020-11-15 05:08:06 +00:00
|
|
|
|
init.defaultBranch = "main";
|
2020-01-01 21:12:08 +00:00
|
|
|
|
};
|
|
|
|
|
};
|
|
|
|
|
htop = {
|
|
|
|
|
enable = true;
|
|
|
|
|
highlightBaseName = true;
|
|
|
|
|
};
|
|
|
|
|
jq.enable = true;
|
|
|
|
|
man.enable = true;
|
|
|
|
|
neovim = {
|
|
|
|
|
enable = true;
|
|
|
|
|
viAlias = true;
|
|
|
|
|
vimAlias = true;
|
2020-05-28 17:29:19 +00:00
|
|
|
|
withNodeJs = true;
|
|
|
|
|
extraPython3Packages = ps: with ps; [ pynvim ];
|
2020-01-01 21:12:08 +00:00
|
|
|
|
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
|
2020-03-14 08:49:32 +00:00
|
|
|
|
auto-pairs
|
|
|
|
|
vim-fish
|
2020-05-28 17:29:19 +00:00
|
|
|
|
LanguageClient-neovim
|
|
|
|
|
ncm2
|
|
|
|
|
ncm2-path
|
|
|
|
|
nvim-yarp
|
|
|
|
|
ctrlp
|
|
|
|
|
dhall-vim
|
2020-01-01 21:12:08 +00:00
|
|
|
|
];
|
2020-05-28 17:29:19 +00:00
|
|
|
|
extraConfig = builtins.readFile ./assets/init.vim;
|
2020-01-01 21:12:08 +00:00
|
|
|
|
};
|
2020-01-03 01:13:32 +00:00
|
|
|
|
rofi = {
|
|
|
|
|
enable = true;
|
|
|
|
|
font = "Fira Code 14";
|
2020-03-14 08:49:32 +00:00
|
|
|
|
lines = 10;
|
2020-01-03 01:13:32 +00:00
|
|
|
|
location = "center";
|
2020-03-14 08:49:32 +00:00
|
|
|
|
theme = "~/.config/rofi/theme.rasi";
|
2020-01-03 01:13:32 +00:00
|
|
|
|
};
|
2020-01-05 10:02:12 +00:00
|
|
|
|
ssh = {
|
|
|
|
|
enable = true;
|
2020-03-14 08:49:32 +00:00
|
|
|
|
extraOptionOverrides = { "AddKeysToAgent" = "true"; };
|
2021-01-03 16:18:57 +00:00
|
|
|
|
matchBlocks = {
|
|
|
|
|
"drop".hostname = "104.131.174.193";
|
|
|
|
|
"pi".hostname = "192.168.1.165";
|
|
|
|
|
};
|
2020-01-05 10:02:12 +00:00
|
|
|
|
};
|
2020-01-01 21:12:08 +00:00
|
|
|
|
starship.enable = true;
|
2020-05-28 17:29:19 +00:00
|
|
|
|
vscode = {
|
|
|
|
|
enable = true;
|
2020-11-15 05:08:06 +00:00
|
|
|
|
package = pkgs.vscodium.overrideAttrs (_: {
|
|
|
|
|
preFixupPhases = [ "preFixup" ];
|
|
|
|
|
preFixup = ''
|
|
|
|
|
sed -i "s#open-vsx.org/vscode/gallery#marketplace.visualstudio.com/_apis/public/gallery#" $out/lib/vscode/resources/app/product.json
|
|
|
|
|
sed -i "s#open-vsx.org/vscode/item#marketplace.visualstudio.com/items#" $out/lib/vscode/resources/app/product.json
|
|
|
|
|
sed -i "s#open-vsx.org#marketplace.visualstudio.com#" $out/lib/vscode/resources/app/product.json
|
|
|
|
|
'';
|
|
|
|
|
});
|
|
|
|
|
extensions = with pkgs.vscode-extensions; [
|
2021-01-03 16:18:57 +00:00
|
|
|
|
matklad.rust-analyzer
|
|
|
|
|
# ms-python.python
|
2020-11-15 05:08:06 +00:00
|
|
|
|
skyapps.fish-vscode
|
2021-01-03 16:18:57 +00:00
|
|
|
|
vadimcn.vscode-lldb
|
2020-11-15 05:08:06 +00:00
|
|
|
|
];
|
2020-05-28 17:29:19 +00:00
|
|
|
|
};
|
2020-01-01 21:12:08 +00:00
|
|
|
|
};
|
|
|
|
|
services = {
|
2020-03-14 08:49:32 +00:00
|
|
|
|
dunst = {
|
|
|
|
|
enable = true;
|
|
|
|
|
settings = {
|
|
|
|
|
global = {
|
|
|
|
|
geometry = "0x5-30+20";
|
|
|
|
|
notification_height = 25;
|
|
|
|
|
indicate_hidden = "yes";
|
|
|
|
|
corner_radius = 5;
|
|
|
|
|
padding = 10;
|
|
|
|
|
horizontal_padding = 10;
|
|
|
|
|
idle_threshold = 60;
|
|
|
|
|
font = "Fira Code 16";
|
|
|
|
|
markup = "full";
|
|
|
|
|
format = ''
|
|
|
|
|
<b>%s<b> %a
|
|
|
|
|
%b'';
|
|
|
|
|
alignment = "center";
|
|
|
|
|
horizontal_alignment = "center";
|
|
|
|
|
icon_position = "left";
|
|
|
|
|
separator_color = "#383838";
|
|
|
|
|
frame_color = "#383838";
|
|
|
|
|
frame_width = 2;
|
|
|
|
|
};
|
|
|
|
|
shortcuts = {
|
|
|
|
|
close = "ctrl+space";
|
2020-05-28 17:29:19 +00:00
|
|
|
|
history = "ctrl+shift+grave";
|
2020-03-14 08:49:32 +00:00
|
|
|
|
};
|
|
|
|
|
urgency_low = {
|
|
|
|
|
background = "#282828";
|
|
|
|
|
foreground = "#5882FA";
|
|
|
|
|
};
|
|
|
|
|
urgency_normal = {
|
|
|
|
|
background = "#282828";
|
|
|
|
|
foreground = "#5882FA";
|
|
|
|
|
};
|
|
|
|
|
urgency_critical = {
|
|
|
|
|
background = "#282828";
|
|
|
|
|
foreground = "#FF0040";
|
|
|
|
|
timeout = 0;
|
|
|
|
|
};
|
|
|
|
|
};
|
|
|
|
|
};
|
2020-01-01 21:12:08 +00:00
|
|
|
|
gnome-keyring.enable = true;
|
|
|
|
|
lorri.enable = true;
|
|
|
|
|
redshift = {
|
|
|
|
|
enable = true;
|
|
|
|
|
provider = "geoclue2";
|
|
|
|
|
};
|
|
|
|
|
screen-locker = {
|
2020-05-28 17:29:19 +00:00
|
|
|
|
enable = false;
|
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-05-28 17:29:19 +00:00
|
|
|
|
i3 = import ./i3.nix { inherit lib lockCmd statusCmd; };
|
2021-01-03 16:18:57 +00:00
|
|
|
|
awesome = {
|
|
|
|
|
enable = false;
|
|
|
|
|
};
|
2020-01-01 21:12:08 +00:00
|
|
|
|
};
|
|
|
|
|
};
|
|
|
|
|
}
|