feat: fish

This commit is contained in:
js0ny 2025-10-27 08:43:41 +00:00
parent cddd568d54
commit e7fa83e4ec
8 changed files with 132 additions and 46 deletions

View file

@ -15,19 +15,20 @@
# File Explorer # File Explorer
"inode/directory" = "org.kde.dolphin.desktop"; "inode/directory" = "org.kde.dolphin.desktop";
# Image Viewer # Image Viewer
"image/jpeg" = "nsxiv.desktop;org.gnome.Loupe.desktop"; "image/jpeg" = "vimiv.desktop;org.gnome.Loupe.desktop";
"image/jpg" = "nsxiv.desktop;org.gnome.Loupe.desktop"; "image/jpg" = "vimiv.desktop;org.gnome.Loupe.desktop";
"image/png" = "nsxiv.desktop;org.gnome.Loupe.desktop"; "image/png" = "vimiv.desktop;org.gnome.Loupe.desktop";
"image/gif" = "nsxiv.desktop;org.gnome.Loupe.desktop"; "image/gif" = "vimiv.desktop;org.gnome.Loupe.desktop";
"image/bmp" = "nsxiv.desktop;org.gnome.Loupe.desktop"; "image/bmp" = "vimiv.desktop;org.gnome.Loupe.desktop";
"image/webp" = "nsxiv.desktop;org.gnome.Loupe.desktop"; "image/webp" = "vimiv.desktop;org.gnome.Loupe.desktop";
# Browser # Browser
"text/html" = "firefox.desktop;chromium-browser.desktop"; "text/html" = "firefox.desktop;chromium-browser.desktop";
"x-scheme-handler/http" = "firefox.desktop;chromium-browser.desktop"; "x-scheme-handler/http" = "firefox.desktop;chromium-browser.desktop";
"x-scheme-handler/httpss" = "firefox.desktop;chromium-browser.desktop"; "x-scheme-handler/https" = "firefox.desktop;chromium-browser.desktop";
# URL Scheme # URL Scheme
"x-scheme-handler/tg" = "org.telegram.desktop.desktop"; "x-scheme-handler/tg" = "org.telegram.desktop.desktop";
"x-scheme-handler/tonsite" = "org.telegram.desktop.desktop"; "x-scheme-handler/tonsite" = "org.telegram.desktop.desktop";
}; };
}; };
home.sessionVariables.BROWSER = "firefox";
} }

View file

@ -1,38 +0,0 @@
{config, ...}: let
commonAliases = {
g = "lazygit";
ni = "touch";
cls = "clear";
ii = "xdg-open";
aic = "aichat -s";
aicc = "aichat -c";
nrs = "sudo nixos-rebuild switch --flake ~/.dotfiles/nixcfgs";
};
in {
programs.fish = {
enable = true;
interactiveShellInit = "set fish_greeting";
# preferAbbrs = true;
shellAbbrs = commonAliases;
};
programs.zsh = {
enable = true;
autocd = true;
autosuggestion.enable = true;
syntaxHighlighting.enable = true;
dotDir = "${config.xdg.configHome}/zsh";
shellAliases = commonAliases;
};
programs.bash = {
enable = true;
shellAliases = commonAliases;
};
programs.nushell = {
enable = true;
shellAliases = commonAliases;
extraConfig = ''
$env.config.show_banner = false
'';
};
programs.zed-editor.extensions = ["fish"];
}

View file

@ -0,0 +1,38 @@
{pkgs}: let
commonAliases = {
g = "lazygit";
ni = "touch";
cls = "clear";
aic = "aichat -s";
aicc = "aichat -c";
nrs = "sudo nixos-rebuild switch --flake ~/.dotfiles/nixcfgs";
clip = "wl-copy";
paste = "wl-paste";
};
darwinAliases = {
reboot = "sudo reboot";
clip = "pbcopy";
paste = "pbpaste";
ii = "open";
brewi = "brew install";
brewr = "brew remove";
brewu = "brew upgrade && brew update";
brewc = "brew cleanup";
brewl = "brew list";
};
linuxAliases = {
ii = "xdg-open";
open = "xdg-open";
};
in
commonAliases
// (
if pkgs.stdenv.isLinux
then linuxAliases
else {}
)
// (
if pkgs.stdenv.isDarwin
then darwinAliases
else {}
)

View file

@ -0,0 +1,8 @@
{pkgs, ...}: let
aliases = import ./aliases.nix {pkgs = pkgs;};
in {
programs.bash = {
enable = true;
shellAliases = aliases;
};
}

View file

@ -0,0 +1,50 @@
{pkgs, ...}: let
aliases = import ./aliases.nix {pkgs = pkgs;};
in {
programs.fish = {
enable = true;
interactiveShellInit = ''
set fish_greeting
function __last_history_item; echo $history[1]; end
abbr -a !! --position anywhere --function __last_history_item
function tv
touch $argv[1] && $EDITOR $argv[1]
end
function mtv
mkdir -p (dirname $argv[1]) && touch $argv[1] && $EDITOR $argv[1]
end
fish_vi_key_bindings
bind -M default ctrl-p up-or-search
bind -M default ctrl-n down-or-search
bind -M default ctrl-f forward-char
bind -M default ctrl-b backward-char
bind -M default ctrl-a beginning-of-line
bind -M default ctrl-e end-of-line
bind -M default ctrl-k kill-line
bind -M insert ctrl-p up-or-search
bind -M insert ctrl-n down-or-search
bind -M insert ctrl-f forward-char
bind -M insert ctrl-b backward-char
bind -M insert ctrl-a beginning-of-line
bind -M insert ctrl-e end-of-line
bind -M insert ctrl-k kill-line
bind -M insert ctrl-w backward-kill-path-component
# ctrl + backspace
bind -M insert ctrl-backspace backward-kill-path-component
# alt + backspace
bind -M insert alt-backspace backward-kill-line
# ctrl + delete
bind -M insert ctrl-delete kill-word
# alt + delete (d$)
bind -M insert alt-delete kill-line
'';
# preferAbbrs = true;
shellAbbrs = aliases;
};
programs.zed-editor.extensions = ["fish"];
}

View file

@ -0,0 +1,11 @@
{pkgs, ...}: let
aliases = import ./aliases.nix {pkgs = pkgs;};
in {
programs.nushell = {
enable = true;
shellAliases = aliases;
extraConfig = ''
$env.config.show_banner = false
'';
};
}

View file

@ -0,0 +1,12 @@
{config, pkgs, ...}: let
aliases = import ./aliases.nix { pkgs = pkgs; };
in {
programs.zsh = {
enable = true;
autocd = true;
autosuggestion.enable = true;
syntaxHighlighting.enable = true;
dotDir = "${config.xdg.configHome}/zsh";
shellAliases = aliases;
};
}

View file

@ -19,13 +19,17 @@
./programs/firefox.nix ./programs/firefox.nix
./programs/emacs.nix ./programs/emacs.nix
./programs/vscode.nix ./programs/vscode.nix
./programs/shell.nix
./programs/xilinx.nix ./programs/xilinx.nix
./programs/mime.nix ./programs/mime.nix
./programs/zed-editor.nix ./programs/zed-editor.nix
./programs/rime.nix ./programs/rime.nix
./programs/sdcv.nix ./programs/sdcv.nix
# Shell
./programs/shell/bash.nix
./programs/shell/zsh.nix
./programs/shell/fish.nix
# Desktop Linux # Desktop Linux
./programs/plasma.nix ./programs/plasma.nix