nixfiles/home-manager/common.nix
2022-10-03 17:08:32 -07:00

98 lines
2.1 KiB
Nix

inputs: {
config,
lib,
pkgs,
...
}: {
imports = [(import ./modules inputs)];
programs.direnv = {
enable = lib.mkDefault true;
nix-direnv.enable = lib.mkDefault true;
stdlib = ''
: ''${XDG_CACHE_HOME:=$HOME/.cache}
declare -A direnv_layout_dirs
direnv_layout_dir() {
echo "''${direnv_layout_dirs[$PWD]:=$(
echo -n "$XDG_CACHE_HOME"/direnv/layouts/
echo -n "$PWD" | shasum | cut -d ' ' -f 1
)}"
}
'';
};
programs.chromium = {
package = lib.mkDefault (pkgs.ungoogled-chromium.override {
commandLineArgs = lib.concatStringsSep " " [
"--force-dark-mode"
"--enable-features=UseOzonePlatform,WebUIDarkMode,VaapiVideoDecoder"
"--ozone-platform=wayland"
"--ignore-gpu-blocklist"
"--enable-gpu-rasterization"
"--enable-zero-copy"
];
});
};
programs.mpv = {
config = {
profile = lib.mkDefault "gpu-hq";
ytdl-format = lib.mkDefault "bestvideo+bestaudio";
};
};
home.packages = with pkgs; [
wget
httpie
jq
ripgrep
lsd
# for fish-done
libnotify
notify-desktop
];
home.sessionVariables = {TERM = "xterm-256color";};
programs.fish = {
enable = true;
shellAliases = {
ls = "lsd";
l = "ls -l";
la = "ls -a";
lla = "ls -la";
lt = "ls --tree";
};
plugins = [
{
name = "done";
src = inputs.done;
}
{
name = "bobthefish";
src = inputs.bobthefish;
}
];
shellInit = ''
if not set -q NIX_PATH
set --prepend fish_function_path ${pkgs.fishPlugins.foreign-env}/share/fish/vendor_functions.d
fenv source $HOME/.nix-profile/etc/profile.d/nix.sh
set -e fish_function_path[1]
end
'';
interactiveShellInit = ''
set TERM xterm-256color
set -U __done_min_cmd_duration 2000
set -U fish_key_bindings fish_default_key_bindings
set -g theme_nerd_fonts yes
set -g theme_display_date no
eval (${pkgs.direnv}/bin/direnv hook fish)
'';
};
}