Pallas: Switch from fish to zsh
This commit is contained in:
parent
216ed06c62
commit
c2a294623b
23 changed files with 325 additions and 93 deletions
Binary file not shown.
Binary file not shown.
|
@ -22,7 +22,7 @@ let
|
||||||
|
|
||||||
nerdfonts = pkgs.stdenvNoCC.mkDerivation {
|
nerdfonts = pkgs.stdenvNoCC.mkDerivation {
|
||||||
pname = "nerdfonts";
|
pname = "nerdfonts";
|
||||||
version = "3.2.1";
|
version = "3.3.0";
|
||||||
|
|
||||||
src = ./NerdFonts;
|
src = ./NerdFonts;
|
||||||
|
|
||||||
|
|
|
@ -22,6 +22,7 @@
|
||||||
(local nix #[(exe :nix) :repl])
|
(local nix #[(exe :nix) :repl])
|
||||||
(local ruby #[(exe :irb)])
|
(local ruby #[(exe :irb)])
|
||||||
(local typescript #[(exe :node)])
|
(local typescript #[(exe :node)])
|
||||||
|
(local zsh #[(exe :zsh)])
|
||||||
;; Map filetype to REPL
|
;; Map filetype to REPL
|
||||||
(local repl-map {: elixir
|
(local repl-map {: elixir
|
||||||
: erlang
|
: erlang
|
||||||
|
@ -31,10 +32,11 @@
|
||||||
: javascript
|
: javascript
|
||||||
: nix
|
: nix
|
||||||
: ruby
|
: ruby
|
||||||
: typescript})
|
: typescript
|
||||||
|
: zsh})
|
||||||
|
|
||||||
(fn mod.open-shell []
|
(fn mod.open-shell []
|
||||||
(let [shell (. repl-map :fish)]
|
(let [shell (. repl-map :zsh)]
|
||||||
(open-split shell)))
|
(open-split shell)))
|
||||||
|
|
||||||
(fn mod.open-repl []
|
(fn mod.open-repl []
|
||||||
|
|
|
@ -11,6 +11,7 @@
|
||||||
; Icons
|
; Icons
|
||||||
:elixir "#A074C4"
|
:elixir "#A074C4"
|
||||||
:et "#1C3062"
|
:et "#1C3062"
|
||||||
|
:nvim "#019833"
|
||||||
:nix "#7EBAE4"
|
:nix "#7EBAE4"
|
||||||
:reddit "#FA4400"
|
:reddit "#FA4400"
|
||||||
:ssh "#F4C82D"}
|
:ssh "#F4C82D"}
|
||||||
|
@ -24,48 +25,63 @@
|
||||||
(let [title tab.tab_title]
|
(let [title tab.tab_title]
|
||||||
(if (and title (> (length title) 0)) title tab.active_pane.title)))
|
(if (and title (> (length title) 0)) title tab.active_pane.title)))
|
||||||
|
|
||||||
(fn extract-tab-info [title]
|
(fn extract-tab-info [title tab]
|
||||||
(match title
|
(let [current-pane tab.active_pane]
|
||||||
(where t (t:find "^nvim%s"))
|
(match title
|
||||||
{:title (t:gsub "^nvim%s(.*)" "%1") :icon " " :color "#019833"}
|
(where t (t:find "^nvim%s"))
|
||||||
(where t (t:find "^git%s"))
|
{:title (t:gsub "^nvim%s(.*)" "%1") :icon " " :color colors.nvim}
|
||||||
{:title (t:gsub "^git%s(.*)" "%1") :icon " " :color "#F25029"}
|
(where t (t:find :^nvim$)) {: title :icon " " :color colors.nvim}
|
||||||
(where t (t:find "^mix%s"))
|
(where t (t:find "^git%s"))
|
||||||
{:title (t:gsub "^mix%s(.*)" "%1") :icon " " :color colors.elixir}
|
{:title (t:gsub "^git%s(.*)" "%1") :icon " " :color "#F25029"}
|
||||||
(where t (t:find "^iex%s")) {: title :icon " " :color colors.elixir}
|
(where t (t:find "^mix%s"))
|
||||||
(where t (t:find "^upa%s")) {: title :icon " " :color colors.nix}
|
{:title (t:gsub "^mix%s(.*)" "%1") :icon " " :color colors.elixir}
|
||||||
(where t (t:find "^upp%s")) {: title :icon " " :color colors.nix}
|
(where t (t:find "^iex%s")) {: title :icon " " :color colors.elixir}
|
||||||
(where t (t:find "^nrsw%s")) {: title :icon " " :color colors.nix}
|
(where t (t:find "^upa%s")) {: title :icon " " :color colors.nix}
|
||||||
(where t (t:find "^ngc%s")) {: title :icon " " :color colors.nix}
|
(where t (t:find "^upp%s")) {: title :icon " " :color colors.nix}
|
||||||
(where t (t:find "^nix%s")) {: title :icon " " :color colors.nix}
|
(where t (t:find "^nrsw%s")) {: title :icon " " :color colors.nix}
|
||||||
(where t (t:find "^nix-%w+%s")) {: title :icon " " :color colors.nix}
|
(where t (t:find "^ngc%s")) {: title :icon " " :color colors.nix}
|
||||||
(where t (t:find "^colmena%s")) {: title :icon " " :color colors.nix}
|
(where t (t:find "^nix%s")) {: title :icon " " :color colors.nix}
|
||||||
(where t (t:find "^deploy%s")) {: title :icon " " :color colors.nix}
|
(where t (t:find "^nix-%w+%s")) {: title
|
||||||
(where t (t:find "^ssh%s")) {: title :icon " " :color colors.ssh}
|
:icon " "
|
||||||
(where t (t:find "^scp%s")) {: title :icon " " :color colors.ssh}
|
:color colors.nix}
|
||||||
(where t (t:find "^et%s")) {: title :icon " " :color colors.et}
|
(where t (t:find "^colmena%s")) {: title
|
||||||
(where t (t:find "^just%s")) {: title :icon " " :color "#C87D57"}
|
:icon " "
|
||||||
(where t (t:find :^ytdl)) {: title :icon " " :color "#FF0000"}
|
:color colors.nix}
|
||||||
(where t (t:find :^instagram-)) {: title :icon " " :color "#FB2179"}
|
(where t (t:find "^deploy%s")) {: title :icon " " :color colors.nix}
|
||||||
(where t (t:find "^gallery-dl%s"))
|
(where t (t:find "^ssh%s")) {: title :icon " " :color colors.ssh}
|
||||||
{:title (t:gsub "^gallery-dl%s(.*)" "%1") :icon " " :color "#009900"}
|
(where t (t:find "^scp%s")) {: title :icon " " :color colors.ssh}
|
||||||
(where t (t:find "^bdfr%s"))
|
(where t (t:find "^et%s")) {: title :icon " " :color colors.et}
|
||||||
{:title (t:gsub "^bdfr%s(.*)" "%1") :icon " " :color colors.reddit}
|
(where t (t:find "^just%s")) {: title :icon " " :color "#C87D57"}
|
||||||
(where t (t:find "^bdfr-%w+%s")) {: title
|
(where t (t:find :^ytdl)) {: title :icon " " :color "#FF0000"}
|
||||||
:icon " "
|
(where t (t:find :^instagram-)) {: title :icon " " :color "#FB2179"}
|
||||||
:color colors.reddit}
|
(where t (t:find "^gallery-dl%s")) {:title (t:gsub "^gallery-dl%s(.*)"
|
||||||
(where t (t:find "^rexit%s")) {: title :icon " " :color colors.reddit}
|
"%1")
|
||||||
(where t (t:find :^redis-)) {: title :icon " " :color "#DC372C"}
|
:icon " "
|
||||||
(where t (t:find "^%[%w+%]%s")) {: title :icon " " :color colors.ssh}
|
:color "#009900"}
|
||||||
(where t (t:find "^%w+@%w+:%s")) {: title :icon " " :color colors.ssh}
|
(where t (t:find :^discord-)) {: title :icon " " :color "#5865F2"}
|
||||||
(where t (t:find "^%w+-dev")) {: title :icon " " :color "#0099CC"}
|
(where t (t:find "^bdfr%s"))
|
||||||
(where t (t:find "^%w+-dl%s")) {: title :icon " " :color "#22BC00"}
|
{:title (t:gsub "^bdfr%s(.*)" "%1") :icon " " :color colors.reddit}
|
||||||
_ {: title :icon " " :color "#F8F8F2"}))
|
(where t (t:find "^bdfr-%w+%s")) {: title
|
||||||
|
:icon " "
|
||||||
|
:color colors.reddit}
|
||||||
|
(where t (t:find "^rexit%s")) {: title
|
||||||
|
:icon " "
|
||||||
|
:color colors.reddit}
|
||||||
|
(where t (t:find :^redis-)) {: title :icon " " :color "#DC372C"}
|
||||||
|
(where t (t:find "^%[%w+%]%s")) {: title
|
||||||
|
:icon " "
|
||||||
|
:color colors.ssh}
|
||||||
|
(where t (t:find "^%w+@%w+:%s")) {: title
|
||||||
|
:icon " "
|
||||||
|
:color colors.ssh}
|
||||||
|
(where t (t:find "^%w+-dev")) {: title :icon " " :color "#0099CC"}
|
||||||
|
(where t (t:find "^%w+-dl%s")) {: title :icon " " :color "#22BC00"}
|
||||||
|
_ {: title :icon " " :color "#F8F8F2"})))
|
||||||
|
|
||||||
(wezterm.on :format-tab-title
|
(wezterm.on :format-tab-title
|
||||||
(fn [tab _tabs _panes _config _hover max-width]
|
(fn [tab _tabs _panes _config _hover max-width]
|
||||||
(let [raw-title (extract-tab-title tab)
|
(let [raw-title (extract-tab-title tab)
|
||||||
tab-info (extract-tab-info raw-title)
|
tab-info (extract-tab-info raw-title tab)
|
||||||
title (wezterm.truncate_right tab-info.title
|
title (wezterm.truncate_right tab-info.title
|
||||||
(- max-width 5))]
|
(- max-width 5))]
|
||||||
(if tab.is_active
|
(if tab.is_active
|
||||||
|
@ -142,7 +158,7 @@
|
||||||
(set overrides.freetype_load_target :Light)
|
(set overrides.freetype_load_target :Light)
|
||||||
(window:set_config_overrides overrides))))))
|
(window:set_config_overrides overrides))))))
|
||||||
;; Configuration
|
;; Configuration
|
||||||
{:default_prog [_G.shells.fish :--interactive]
|
{:default_prog [_G.shells.zsh :-i]
|
||||||
;; Appearance
|
;; Appearance
|
||||||
:color_scheme "Dracula (Official)"
|
:color_scheme "Dracula (Official)"
|
||||||
:window_decorations :INTEGRATED_BUTTONS|RESIZE
|
:window_decorations :INTEGRATED_BUTTONS|RESIZE
|
||||||
|
@ -220,8 +236,7 @@
|
||||||
;; Launch Menu
|
;; Launch Menu
|
||||||
:launch_menu [{:label :Btop++ :args [_G.programs.btop]}
|
:launch_menu [{:label :Btop++ :args [_G.programs.btop]}
|
||||||
{:label :bash :args [_G.shells.bash]}
|
{:label :bash :args [_G.shells.bash]}
|
||||||
{:label :fish :args [_G.shells.fish]}
|
{:label :zsh :args [_G.shells.zsh]}]
|
||||||
{:label :nushell :args [_G.shells.nushell]}]
|
|
||||||
;; Other
|
;; Other
|
||||||
:front_end :WebGpu
|
:front_end :WebGpu
|
||||||
:check_for_updates false})
|
:check_for_updates false})
|
||||||
|
|
|
@ -7,8 +7,7 @@ in
|
||||||
imports = [
|
imports = [
|
||||||
../config/fonts
|
../config/fonts
|
||||||
|
|
||||||
../programs/fish.nix
|
../programs/zsh
|
||||||
../programs/nushell.nix
|
|
||||||
../programs/atuin.nix
|
../programs/atuin.nix
|
||||||
../programs/direnv.nix
|
../programs/direnv.nix
|
||||||
../programs/fzf.nix
|
../programs/fzf.nix
|
||||||
|
|
|
@ -3,6 +3,7 @@
|
||||||
{
|
{
|
||||||
imports = [
|
imports = [
|
||||||
../programs/fish.nix
|
../programs/fish.nix
|
||||||
|
../programs/zsh
|
||||||
../programs/atuin.nix
|
../programs/atuin.nix
|
||||||
../programs/starship.nix
|
../programs/starship.nix
|
||||||
../programs/direnv.nix
|
../programs/direnv.nix
|
||||||
|
|
|
@ -3,7 +3,7 @@
|
||||||
enable = true;
|
enable = true;
|
||||||
|
|
||||||
enableBashIntegration = false;
|
enableBashIntegration = false;
|
||||||
enableZshIntegration = false;
|
enableZshIntegration = true;
|
||||||
enableFishIntegration = true;
|
enableFishIntegration = true;
|
||||||
|
|
||||||
settings = {
|
settings = {
|
||||||
|
@ -25,6 +25,12 @@
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
|
programs.zsh.history = {
|
||||||
|
save = 0;
|
||||||
|
size = 0;
|
||||||
|
share = false;
|
||||||
|
};
|
||||||
|
|
||||||
programs.fish.shellInit = ''
|
programs.fish.shellInit = ''
|
||||||
set -x fish_history ""
|
set -x fish_history ""
|
||||||
'';
|
'';
|
||||||
|
|
|
@ -95,7 +95,7 @@ in
|
||||||
end
|
end
|
||||||
|
|
||||||
pushd "$config_dir"
|
pushd "$config_dir"
|
||||||
rm -rf result
|
rm -f result
|
||||||
|
|
||||||
if test -z "$DIRENV_DIR"
|
if test -z "$DIRENV_DIR"
|
||||||
eval (direnv export fish 2>/dev/null)
|
eval (direnv export fish 2>/dev/null)
|
||||||
|
|
|
@ -3,6 +3,7 @@
|
||||||
{
|
{
|
||||||
programs.starship = {
|
programs.starship = {
|
||||||
enable = true;
|
enable = true;
|
||||||
|
enableZshIntegration = true;
|
||||||
enableFishIntegration = true;
|
enableFishIntegration = true;
|
||||||
enableTransience = true;
|
enableTransience = true;
|
||||||
|
|
||||||
|
|
|
@ -1,26 +1,17 @@
|
||||||
{ pkgs, config, ... }:
|
{ pkgs, ... }:
|
||||||
|
|
||||||
let
|
let
|
||||||
wezterm-pkg = pkgs.wezterm;
|
wezterm-pkg = pkgs.wezterm;
|
||||||
|
|
||||||
wezterm-nushell = pkgs.writeShellScript "wezterm-nushell.sh" ''
|
|
||||||
source /etc/static/bashrc
|
|
||||||
source ${config.home.sessionVariablesPackage}/etc/profile.d/hm-session-vars.sh
|
|
||||||
|
|
||||||
exec ${pkgs.nushell.outPath}/bin/nu
|
|
||||||
'';
|
|
||||||
in
|
in
|
||||||
{
|
{
|
||||||
programs.wezterm = {
|
programs.wezterm = {
|
||||||
enable = true;
|
enable = true;
|
||||||
|
|
||||||
package = wezterm-pkg;
|
package = wezterm-pkg;
|
||||||
|
|
||||||
extraConfig = /* lua */ ''
|
extraConfig = /* lua */ ''
|
||||||
_G.shells = {
|
_G.shells = {
|
||||||
bash = '${pkgs.bash.outPath}/bin/bash',
|
bash = '${pkgs.bash.outPath}/bin/bash',
|
||||||
fish = '${pkgs.fish.outPath}/bin/fish',
|
zsh = '${pkgs.zsh.outPath}/bin/zsh',
|
||||||
nushell = '${wezterm-nushell}',
|
|
||||||
};
|
};
|
||||||
|
|
||||||
_G.programs = {
|
_G.programs = {
|
||||||
|
|
|
@ -1,42 +1,56 @@
|
||||||
{ pkgs, config, lib, ... }:
|
{ pkgs, lib, ... }:
|
||||||
|
|
||||||
{
|
{
|
||||||
programs.yt-dlp = {
|
programs =
|
||||||
enable = true;
|
let
|
||||||
|
ytdlPackage = pkgs.yt-dlp;
|
||||||
|
ytdlExe = lib.getExe ytdlPackage;
|
||||||
|
in
|
||||||
|
{
|
||||||
|
yt-dlp = {
|
||||||
|
enable = true;
|
||||||
|
package = ytdlPackage;
|
||||||
|
|
||||||
settings = {
|
settings = {
|
||||||
format = "'bestvideo+bestaudio/best'";
|
format = "'bestvideo+bestaudio/best'";
|
||||||
# Metadata
|
# Metadata
|
||||||
add-metadata = true;
|
add-metadata = true;
|
||||||
embed-subs = true;
|
embed-subs = true;
|
||||||
xattrs = true;
|
xattrs = true;
|
||||||
# Subtitles
|
# Subtitles
|
||||||
write-sub = true;
|
write-sub = true;
|
||||||
sub-format = "best";
|
sub-format = "best";
|
||||||
sub-lang = "en,de";
|
sub-lang = "en,de";
|
||||||
# Downloader
|
# Downloader
|
||||||
downloader = "aria2c";
|
downloader = "aria2c";
|
||||||
downloader-args = "aria2c:'--async-dns=false --max-download-limit=6M --min-split-size=1M --max-connection-per-server=4 --split=4'";
|
downloader-args = "aria2c:'--async-dns=false --max-download-limit=6M --min-split-size=1M --max-connection-per-server=4 --split=4'";
|
||||||
# Other
|
# Other
|
||||||
no-overwrites = true;
|
no-overwrites = true;
|
||||||
no-call-home = true;
|
no-call-home = true;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
zsh.shellAliases = {
|
||||||
|
ytdl = "${ytdlExe} --config-location \"$HOME/.config/yt-dlp/config\" --download-archive \"$HOME/.config/yt-dlp/archive\"";
|
||||||
|
ytdl_mp4 = "ytdl -f 'bestvideo[ext=mp4]+bestaudio[ext=m4a]/best[ext=mp4]'";
|
||||||
|
yti = "ytdl -F";
|
||||||
|
};
|
||||||
|
|
||||||
|
fish = {
|
||||||
|
shellAliases = {
|
||||||
|
ytdl = "ytdl_with_options";
|
||||||
|
ytdl_mp4 = "ytdl_with_options -f 'bestvideo[ext=mp4]+bestaudio[ext=m4a]/best[ext=mp4]'";
|
||||||
|
yti = "ytdl_with_options -F";
|
||||||
|
};
|
||||||
|
|
||||||
|
functions.ytdl_with_options = ''
|
||||||
|
${ytdlExe} --config-location "$HOME/.config/yt-dlp/config" --download-archive "$HOME/.config/yt-dlp/archive" $argv
|
||||||
|
'';
|
||||||
|
};
|
||||||
};
|
};
|
||||||
};
|
|
||||||
|
|
||||||
home.packages = with pkgs; [
|
home.packages = with pkgs; [
|
||||||
aria2
|
aria2
|
||||||
rtmpdump
|
rtmpdump
|
||||||
];
|
];
|
||||||
|
|
||||||
programs.fish = {
|
|
||||||
shellAliases = {
|
|
||||||
ytdl = "ytdl_with_options";
|
|
||||||
ytdl_mp4 = "ytdl_with_options -f 'bestvideo[ext=mp4]+bestaudio[ext=m4a]/best[ext=mp4]'";
|
|
||||||
yti = "ytdl_with_options -F";
|
|
||||||
};
|
|
||||||
|
|
||||||
functions.ytdl_with_options = ''
|
|
||||||
${lib.getExe config.programs.yt-dlp.package} --config-location "$HOME/.config/yt-dlp/config" --download-archive "$HOME/.config/yt-dlp/archive" $argv
|
|
||||||
'';
|
|
||||||
};
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -8,6 +8,11 @@
|
||||||
ji = "zi";
|
ji = "zi";
|
||||||
};
|
};
|
||||||
|
|
||||||
|
programs.zsh.shellAliases = {
|
||||||
|
j = "z";
|
||||||
|
ji = "zi";
|
||||||
|
};
|
||||||
|
|
||||||
programs.nushell.shellAliases = {
|
programs.nushell.shellAliases = {
|
||||||
j = "z";
|
j = "z";
|
||||||
ji = "zi";
|
ji = "zi";
|
||||||
|
|
144
home/programs/zsh/default.nix
Normal file
144
home/programs/zsh/default.nix
Normal file
|
@ -0,0 +1,144 @@
|
||||||
|
{ pkgs, lib, config, ... }:
|
||||||
|
|
||||||
|
let
|
||||||
|
inherit (pkgs) fetchFromGitHub;
|
||||||
|
inherit (pkgs.stdenv) isDarwin;
|
||||||
|
inherit (lib) optionals;
|
||||||
|
inherit (lib.attrsets) optionalAttrs;
|
||||||
|
in
|
||||||
|
{
|
||||||
|
programs.zsh = {
|
||||||
|
enable = true;
|
||||||
|
|
||||||
|
enableCompletion = true;
|
||||||
|
enableVteIntegration = !config.programs.wezterm.enable;
|
||||||
|
|
||||||
|
autosuggestion = {
|
||||||
|
enable = true;
|
||||||
|
strategy = [ "completion" ];
|
||||||
|
};
|
||||||
|
|
||||||
|
syntaxHighlighting = {
|
||||||
|
enable = true;
|
||||||
|
highlighters = [ "main" "brackets" ];
|
||||||
|
};
|
||||||
|
|
||||||
|
plugins = [
|
||||||
|
{
|
||||||
|
# https://github.com/dracula/zsh-syntax-highlighting
|
||||||
|
name = "dracula-zsh-syntax-highlighting";
|
||||||
|
file = "zsh-syntax-highlighting.sh";
|
||||||
|
src = fetchFromGitHub {
|
||||||
|
owner = "dracula";
|
||||||
|
repo = "zsh-syntax-highlighting";
|
||||||
|
rev = "09c89b657ad8a27ddfe1d6f2162e99e5cce0d5b3";
|
||||||
|
hash = "sha256-JrSKx8qHGAF0DnSJiuKWvn6ItQHvWpJ5pKo4yNbrHno=";
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
|
{
|
||||||
|
# https://github.com/trystan2k/zsh-tab-title
|
||||||
|
name = "zsh-tab-title";
|
||||||
|
file = "zsh-tab-title.plugin.zsh";
|
||||||
|
src = fetchFromGitHub {
|
||||||
|
owner = "trystan2k";
|
||||||
|
repo = "zsh-tab-title";
|
||||||
|
rev = "9c36ac968fe675edcc181a41b0b8959024a8b6c1";
|
||||||
|
hash = "sha256-ZEhbQ+yIfCz+vmua7XYBQ4kSVgwoNR8Y4zJyKNypsz0=";
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
|
{
|
||||||
|
# https://github.com/Freed-Wu/zsh-colorize-functions
|
||||||
|
name = "zsh-colorize-functions";
|
||||||
|
file = "zsh-colorize-functions.plugin.zsh";
|
||||||
|
src = fetchFromGitHub {
|
||||||
|
owner = "Freed-Wu";
|
||||||
|
repo = "zsh-colorize-functions";
|
||||||
|
rev = "46a299f8f8b1c71867679eaf4f67e30fd2746820";
|
||||||
|
hash = "sha256-DvqhWgox8v3Km1Rzkg7tEDqJ2zF62K6ILAzlOhUbuCc=";
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
|
{
|
||||||
|
# https://github.com/Freed-Wu/zsh-help
|
||||||
|
name = "zsh-help";
|
||||||
|
file = "zsh-help.plugin.zsh";
|
||||||
|
src = fetchFromGitHub {
|
||||||
|
owner = "Freed-Wu";
|
||||||
|
repo = "zsh-help";
|
||||||
|
rev = "95cbc114078d8209730e38c72a6fa5859ca0773d";
|
||||||
|
hash = "sha256-ij+ooXQxV3CmsCN/CrJMicTWvS+9GYHA/1Kuqh5zXIY=";
|
||||||
|
};
|
||||||
|
}
|
||||||
|
] ++ optionals isDarwin [
|
||||||
|
{
|
||||||
|
# https://github.com/MichaelAquilina/zsh-auto-notify
|
||||||
|
name = "zsh-auto-notify";
|
||||||
|
file = "auto-notify.plugin.zsh";
|
||||||
|
src = fetchFromGitHub {
|
||||||
|
owner = "MichaelAquilina";
|
||||||
|
repo = "zsh-auto-notify";
|
||||||
|
rev = "27c07dddb42f05b199319a9b66473c8de7935856";
|
||||||
|
hash = "sha256-ScBwky33leI8mFMpAz3Ng2Z0Gbou4EWMOAhkcMZAWIc=";
|
||||||
|
};
|
||||||
|
}
|
||||||
|
];
|
||||||
|
|
||||||
|
shellAliases =
|
||||||
|
let
|
||||||
|
ezaExe = lib.getExe pkgs.eza;
|
||||||
|
in
|
||||||
|
{
|
||||||
|
upa = "nix flake update ~/.config/nixpkgs -v && upn";
|
||||||
|
ngc = "nix-collect-garbage -d && sudo nix-collect-garbage -d";
|
||||||
|
nsr = "sudo nix-store --verify --check-contents --repair";
|
||||||
|
|
||||||
|
la = "${ezaExe} --long --all --group --header --group-directories-first --sort=type --icons";
|
||||||
|
lg = "${ezaExe} --long --all --group --header --git";
|
||||||
|
lt = "${ezaExe} --long --all --group --header --tree --level ";
|
||||||
|
} // optionalAttrs isDarwin {
|
||||||
|
tailscale = "/Applications/Tailscale.app/Contents/MacOS/Tailscale";
|
||||||
|
};
|
||||||
|
|
||||||
|
initExtra = /* sh */ ''
|
||||||
|
# Keymaps
|
||||||
|
bindkey '^[[1;3C' forward-word # Alt+Right
|
||||||
|
bindkey '^[[1;3D' backward-word # Alt+Left
|
||||||
|
|
||||||
|
# Plugins
|
||||||
|
ZSH_TAB_TITLE_ENABLE_FULL_COMMAND=true
|
||||||
|
ZSH_TAB_TITLE_DEFAULT_DISABLE_PREFIX=true
|
||||||
|
|
||||||
|
AUTO_NOTIFY_THRESHOLD=10
|
||||||
|
|
||||||
|
# Path configuration
|
||||||
|
if [[ -d "$HOME/.bin" ]]; then
|
||||||
|
path=("$HOME/.bin" $path)
|
||||||
|
export PATH
|
||||||
|
fi
|
||||||
|
|
||||||
|
() {
|
||||||
|
local user_functions="$HOME/.zsh/user_functions"
|
||||||
|
if [[ -d $user_functions ]]; then
|
||||||
|
typeset -TUg +x FPATH=$user_functions:$FPATH fpath
|
||||||
|
autoload ''${=$(cd "$user_functions" && echo *)}
|
||||||
|
fi
|
||||||
|
|
||||||
|
local server_functions="$HOME/.zsh/server_functions"
|
||||||
|
if [[ -d $server_functions ]]; then
|
||||||
|
typeset -TUg +x FPATH=$server_functions:$FPATH fpath
|
||||||
|
autoload ''${=$(cd "$server_functions" && echo *)}
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
|
||||||
|
home.file.".zsh/user_functions" = {
|
||||||
|
source = ./functions;
|
||||||
|
recursive = true;
|
||||||
|
};
|
||||||
|
|
||||||
|
# Plugin dependencies
|
||||||
|
programs.bat.enable = true;
|
||||||
|
}
|
1
home/programs/zsh/functions/base64decode
Executable file
1
home/programs/zsh/functions/base64decode
Executable file
|
@ -0,0 +1 @@
|
||||||
|
echo -n "$1" | base64 --decode
|
1
home/programs/zsh/functions/macos-app-id
Executable file
1
home/programs/zsh/functions/macos-app-id
Executable file
|
@ -0,0 +1 @@
|
||||||
|
osascript -e "id of app \"$1\""
|
1
home/programs/zsh/functions/mediaservercmd
Executable file
1
home/programs/zsh/functions/mediaservercmd
Executable file
|
@ -0,0 +1 @@
|
||||||
|
et -c "$*" mediaserver
|
32
home/programs/zsh/functions/nrsw
Executable file
32
home/programs/zsh/functions/nrsw
Executable file
|
@ -0,0 +1,32 @@
|
||||||
|
os="$(uname)"
|
||||||
|
other_hostname="$1"
|
||||||
|
|
||||||
|
case "$os" in
|
||||||
|
Darwin)
|
||||||
|
nix_hostname="$(scutil --get LocalHostName)"
|
||||||
|
config_dir="$HOME/.config/nixpkgs"
|
||||||
|
;;
|
||||||
|
Linux)
|
||||||
|
nix_hostname="$(hostname -s)"
|
||||||
|
config_dir="/etc/nixos"
|
||||||
|
;;
|
||||||
|
*)
|
||||||
|
echo "Unsupported OS"
|
||||||
|
exit 1
|
||||||
|
esac
|
||||||
|
|
||||||
|
pushd "$config_dir"
|
||||||
|
rm -f result
|
||||||
|
|
||||||
|
if [ -z "$DIRENV_DIR" ]; then
|
||||||
|
eval "$(direnv export zsh 2>/dev/null)"
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ -z "$other_hostname" ]; then
|
||||||
|
just deploy-local-machine "$nix_hostname"
|
||||||
|
else
|
||||||
|
just deploy-remote-machine "$other_hostname"
|
||||||
|
fi
|
||||||
|
|
||||||
|
rm -f result
|
||||||
|
popd
|
13
home/programs/zsh/functions/upn
Executable file
13
home/programs/zsh/functions/upn
Executable file
|
@ -0,0 +1,13 @@
|
||||||
|
os="$(uname)"
|
||||||
|
|
||||||
|
case "$os" in
|
||||||
|
Darwin)
|
||||||
|
$HOME/.config/nixpkgs/home/programs/nvim/update-plugins.sh
|
||||||
|
;;
|
||||||
|
Linux)
|
||||||
|
/etc/nixos/home/programs/nvim/update-plugins.sh
|
||||||
|
;;
|
||||||
|
*)
|
||||||
|
echo "Unsupported OS"
|
||||||
|
exit 1
|
||||||
|
esac
|
1
home/programs/zsh/functions/wezssh
Executable file
1
home/programs/zsh/functions/wezssh
Executable file
|
@ -0,0 +1 @@
|
||||||
|
wezterm cli spawn --domain-name "SSH:$1"
|
5
system/darwin/zsh.nix
Normal file
5
system/darwin/zsh.nix
Normal file
|
@ -0,0 +1,5 @@
|
||||||
|
{
|
||||||
|
programs.zsh = {
|
||||||
|
enable = true;
|
||||||
|
};
|
||||||
|
}
|
|
@ -11,7 +11,7 @@ in
|
||||||
../darwin/defaults.nix
|
../darwin/defaults.nix
|
||||||
../darwin/sudo.nix
|
../darwin/sudo.nix
|
||||||
|
|
||||||
../darwin/fish.nix
|
../darwin/zsh.nix
|
||||||
../darwin/attic.nix
|
../darwin/attic.nix
|
||||||
|
|
||||||
../darwin/mas.nix
|
../darwin/mas.nix
|
||||||
|
|
|
@ -170,7 +170,7 @@ in
|
||||||
home = "/home/daniel";
|
home = "/home/daniel";
|
||||||
description = "Daniel";
|
description = "Daniel";
|
||||||
extraGroups = [ "wheel" ];
|
extraGroups = [ "wheel" ];
|
||||||
shell = pkgs.fish;
|
shell = pkgs.zsh;
|
||||||
openssh.authorizedKeys.keys = [ ssh-keys.LAN ssh-keys.DanielsPhone ];
|
openssh.authorizedKeys.keys = [ ssh-keys.LAN ssh-keys.DanielsPhone ];
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue