dots-of-war/files/nix-stuff/nixpkgs/config/fish.nix
2020-08-11 17:56:16 +02:00

99 lines
2.6 KiB
Nix

{ config, lib, pkgs, ... }:
let
cfg = config.elkowar.programs.fish;
myConf = import ../myConfig.nix;
in
{
options.elkowar.programs.fish = {
enable = lib.mkEnableOption "Fish configuration";
};
config = {
programs.fish = {
enable = true;
functions = {
fish_prompt = builtins.readFile ./fish-prompt.fish;
fish_greeting = "";
fish_mode_prompt = "";
};
shellAliases = {
ls = "exa --icons";
};
plugins =
[
{
name = "foreign-env";
src = pkgs.fetchFromGitHub {
owner = "oh-my-fish";
repo = "plugin-foreign-env";
rev = "dddd9213272a0ab848d474d0cbde12ad034e65bc";
sha256 = "00xqlyl3lffc5l0viin1nyp819wf81fncqyz87jx8ljjdhilmgbs";
};
}
];
shellInit = ''
fish_vi_key_bindings
#set -U FZF_TMUX 1
set -U FZF_DEFAULT_COMMANDS "--filepath-word --cycle"
set -U FZF_PREVIEW_FILE_CMD "head -n 10 | bat --color=always --decorations=never"
set -U fish_greeting
#if status is-interactive
#and not set -q TMUX
#exec tmux
#end
[ (hostname) = "garnix" ] && alias rm='echo "rm is disabled. Please use trash instead."; false'
function run_pipr
set -l commandline (commandline -b)
pipr --out-file /tmp/pipr_out --default "$commandline"
set -l result (cat /tmp/pipr_out)
commandline -r $result
commandline -f repaint
end
bind \ca run_pipr
function c
set -l result (/home/leon/scripts/conf)
commandline -r "$result"
commandline -f execute
end
function replace_with_yay
set -l cmd (commandline -b)
switch $cmd
case "*pacman*"
set edited (echo $cmd | sed 's/sudo //g' | sed 's/pacman/yay/g')
case "yay*"
set edited (echo $cmd | sed 's/yay/sudo pacman/g')
end
commandline -r "$edited"
commandline -f repaint
end
bind \cy replace_with_yay
# fff file manager cd on exit
function f
fff $argv
set -q XDG_CACHE_HOME; or set XDG_CACHE_HOME $HOME/.cache
cd (cat $XDG_CACHE_HOME/fff/.fff_d)
end
set -x EDITOR "nvim"
set -x FFF_TRASH_CMD "trash" # make fff's trash function use trash-cli
fenv source '$HOME/.nix-profile/etc/profile.d/nix.sh'
set -g NIX_PATH "$HOME/.nix-defexpr/channels:$NIX_PATH"
fenv source "$HOME/.nix-profile/etc/profile.d/hm-session-vars.sh"
'';
};
};
}