Migrate from zsh to fish
This commit is contained in:
parent
fdd53faa62
commit
b35c87b4d6
@ -25,7 +25,8 @@ config, ... }: {
|
|||||||
|
|
||||||
modules = {
|
modules = {
|
||||||
shell = {
|
shell = {
|
||||||
zsh.enable = true;
|
# zsh.enable = true;
|
||||||
|
fish.enable = true;
|
||||||
direnv.enable = true;
|
direnv.enable = true;
|
||||||
};
|
};
|
||||||
topgrade.enable = true;
|
topgrade.enable = true;
|
||||||
|
@ -20,7 +20,9 @@ config, ... }:
|
|||||||
|
|
||||||
with lib;
|
with lib;
|
||||||
|
|
||||||
let cfg = config.modules.shell.direnv;
|
let
|
||||||
|
cfg = config.modules.shell.direnv;
|
||||||
|
shellcfg = config.modules.shell;
|
||||||
in {
|
in {
|
||||||
options.modules.shell.direnv = { enable = mkOption { default = false; }; };
|
options.modules.shell.direnv = { enable = mkOption { default = false; }; };
|
||||||
|
|
||||||
@ -28,7 +30,7 @@ in {
|
|||||||
programs.direnv = {
|
programs.direnv = {
|
||||||
enable = true;
|
enable = true;
|
||||||
nix-direnv.enable = true;
|
nix-direnv.enable = true;
|
||||||
enableZshIntegration = true;
|
} // mkIf shellcfg.zsh.enable { enableZshIntegration = true; }
|
||||||
};
|
// mkIf shellcfg.fish.enable { enableFishIntegration = true; };
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
75
modules/home/fish/default.nix
Normal file
75
modules/home/fish/default.nix
Normal file
@ -0,0 +1,75 @@
|
|||||||
|
{
|
||||||
|
# Snowfall Lib provides a customized `lib` instance with access to your flake's library
|
||||||
|
# as well as the libraries available from your flake's inputs.
|
||||||
|
lib,
|
||||||
|
# An instance of `pkgs` with your overlays and packages applied is also available.
|
||||||
|
pkgs,
|
||||||
|
# You also have access to your flake's inputs.
|
||||||
|
inputs,
|
||||||
|
|
||||||
|
# Additional metadata is provided by Snowfall Lib.
|
||||||
|
system, # The system architecture for this host (eg. `x86_64-linux`).
|
||||||
|
target, # The Snowfall Lib target for this system (eg. `x86_64-iso`).
|
||||||
|
format, # A normalized name for the system target (eg. `iso`).
|
||||||
|
virtual
|
||||||
|
, # A boolean to determine whether this system is a virtual target using nixos-generators.
|
||||||
|
systems, # An attribute map of your defined hosts.
|
||||||
|
|
||||||
|
# All other arguments come from the module system.
|
||||||
|
config, ... }:
|
||||||
|
|
||||||
|
with lib;
|
||||||
|
|
||||||
|
let cfg = config.modules.shell.fish;
|
||||||
|
in {
|
||||||
|
options.modules.shell.fish = { enable = mkOption { default = false; }; };
|
||||||
|
|
||||||
|
config = mkIf cfg.enable {
|
||||||
|
|
||||||
|
home.file = { ".config/starship.toml".source = ./starship.toml; };
|
||||||
|
|
||||||
|
home.packages = with pkgs; [ starship ];
|
||||||
|
|
||||||
|
programs.starship = {
|
||||||
|
enable = true;
|
||||||
|
enableFishIntegration = true;
|
||||||
|
};
|
||||||
|
|
||||||
|
programs.fish = {
|
||||||
|
enable = true;
|
||||||
|
|
||||||
|
interactiveShellInit = "set fish_greeting"; # Disable default greeting
|
||||||
|
|
||||||
|
plugins = [
|
||||||
|
{
|
||||||
|
name = "z";
|
||||||
|
src = pkgs.fishPlugins.z.src;
|
||||||
|
}
|
||||||
|
{
|
||||||
|
name = "lwd";
|
||||||
|
src = ./last-working-dir.fish;
|
||||||
|
}
|
||||||
|
];
|
||||||
|
|
||||||
|
functions = {
|
||||||
|
fzf-z = ''
|
||||||
|
set dir $(z --list | fzf --tiebreak=index --tac | sed -E 's/^[0-9]+[[:space:]]+//')
|
||||||
|
cd $dir
|
||||||
|
'';
|
||||||
|
mkcd = ''
|
||||||
|
mkdir $argv
|
||||||
|
cd $argv
|
||||||
|
'';
|
||||||
|
run = ''
|
||||||
|
nix run nixpkgs#"$argv[1]" -- $argv[2..-1]
|
||||||
|
'';
|
||||||
|
|
||||||
|
# Last working directory functionality
|
||||||
|
# __onpwd = {
|
||||||
|
# onVariable = "PWD";
|
||||||
|
# body = "set --universal LAST_WORKING_DIR $PWD";
|
||||||
|
# };
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
12
modules/home/fish/last-working-dir.fish
Normal file
12
modules/home/fish/last-working-dir.fish
Normal file
@ -0,0 +1,12 @@
|
|||||||
|
if status --is-interactive; and test -d $LAST_WORKING_DIR; and test $PWD = $HOME
|
||||||
|
cd $LAST_WORKING_DIR
|
||||||
|
end
|
||||||
|
|
||||||
|
function lwd
|
||||||
|
cd $LAST_WORKING_DIR
|
||||||
|
end
|
||||||
|
|
||||||
|
function __onpwd --on-variable PWD
|
||||||
|
set --universal LAST_WORKING_DIR $PWD
|
||||||
|
end
|
||||||
|
# __onpwd
|
14
modules/home/fish/starship.toml
Normal file
14
modules/home/fish/starship.toml
Normal file
@ -0,0 +1,14 @@
|
|||||||
|
# newline between shell prompts
|
||||||
|
add_newline = false
|
||||||
|
#format = "$all$directory$character"
|
||||||
|
|
||||||
|
[line_break]
|
||||||
|
disabled = true
|
||||||
|
|
||||||
|
[directory]
|
||||||
|
fish_style_pwd_dir_length = 1
|
||||||
|
|
||||||
|
[status]
|
||||||
|
map_symbol = true
|
||||||
|
format = '[$symbol$status $common_meaning$signal_name$maybe_int]($style) '
|
||||||
|
disabled = false
|
@ -28,7 +28,7 @@ in {
|
|||||||
# this would need you to config rofi using home-manager
|
# this would need you to config rofi using home-manager
|
||||||
# programs.rofi = { enable = true; };
|
# programs.rofi = { enable = true; };
|
||||||
|
|
||||||
# home.packages = with pkgs; [ rofi ];
|
home.packages = with pkgs; [ rofi ];
|
||||||
|
|
||||||
home.file = { ".config/rofi/config.rasi".source = ./config.rasi; };
|
home.file = { ".config/rofi/config.rasi".source = ./config.rasi; };
|
||||||
};
|
};
|
||||||
|
@ -145,14 +145,15 @@
|
|||||||
description = "Julian";
|
description = "Julian";
|
||||||
uid = 1000;
|
uid = 1000;
|
||||||
group = "julian";
|
group = "julian";
|
||||||
shell = pkgs.zsh;
|
shell = pkgs.fish;
|
||||||
extraGroups = [ "networkmanager" "wheel" "docker" ];
|
extraGroups = [ "networkmanager" "wheel" "docker" "vboxusers" ];
|
||||||
packages = with pkgs; [ ]; # Using home-manager instead
|
packages = with pkgs; [ ]; # Using home-manager instead
|
||||||
};
|
};
|
||||||
|
|
||||||
home-manager.useGlobalPkgs =
|
home-manager.useGlobalPkgs =
|
||||||
true; # make overlays for nixpkgs work for home-manager, not only the system
|
true; # make overlays for nixpkgs work for home-manager, not only the system
|
||||||
|
|
||||||
|
programs.fish.enable = true;
|
||||||
programs.zsh.enable = true;
|
programs.zsh.enable = true;
|
||||||
|
|
||||||
programs.nix-ld.enable = true;
|
programs.nix-ld.enable = true;
|
||||||
|
Loading…
x
Reference in New Issue
Block a user