diff --git a/modules/basic-tools/default.nix b/modules/basic-tools/default.nix index 1d4f2a4..9408778 100644 --- a/modules/basic-tools/default.nix +++ b/modules/basic-tools/default.nix @@ -6,6 +6,8 @@ ./multiplexers.nix ./nix.nix ./nix-ld.nix + ./zsh.nix + ./fish.nix ]; environment.systemPackages = @@ -68,47 +70,11 @@ // editorconf; environment.shellAliases = { - ls = "ls --color=auto"; - l = "ls -l"; - la = "ls -la"; - ll = "ls -lah"; - lt = "ls --tree"; vim = "nvim"; grep = "grep --color=auto"; - e = "$EDITOR"; - v = "$EDITOR"; - }; - - users.defaultUserShell = pkgs.zsh; - programs.zsh = { - enable = true; - enableCompletion = true; - syntaxHighlighting.enable = true; - interactiveShellInit = '' - bindkey -e - export HISTFILE="$HOME/.zsh_history" - export HISTSIZE=10000000 - export SAVEHIST=10000000 - setopt HIST_IGNORE_ALL_DUPS - # allow comments - setopt interactivecomments - ''; - promptInit = '' - source ${pkgs.liquidprompt}/share/zsh/plugins/liquidprompt/liquidprompt - ''; - }; - - environment.etc.liquidpromptrc = { - text = '' - LP_ENABLE_SSH_COLORS=1 - LP_ENABLE_TITLE=1 - LP_ENABLE_SCREEN_TITLE=1 - LP_ENABLE_TEMP=0 - LP_ENABLE_SVN=0 - LP_BATTERY_THRESHOLD=15 - LP_SSH_COLORS=1 - ''; }; + users.defaultUserShell = (if config.networking.hostName == "toaster" then pkgs.fish else pkgs.zsh); + users.users.root.shell = pkgs.zsh; # keep root shell posix compatible programs.iftop.enable = true; programs.mosh.enable = true; diff --git a/modules/basic-tools/fish.nix b/modules/basic-tools/fish.nix new file mode 100644 index 0000000..b948149 --- /dev/null +++ b/modules/basic-tools/fish.nix @@ -0,0 +1,26 @@ +{ pkgs, ... }: +{ + environment.systemPackages = with pkgs; [ + lsd + fzf + grc + fishPlugins.done + fishPlugins.fzf-fish + fishPlugins.tide + fishPlugins.grc + ]; + + programs.fish = { + enable = true; + interactiveShellInit = '' + set fish_greeting + ''; + shellAliases = { + ls = "lsd --icon=never"; + l = "ls -l"; + ll = "ls -la"; + vim = "nvim"; + grep = "grep --color=auto"; + }; + }; +} diff --git a/modules/basic-tools/zsh.nix b/modules/basic-tools/zsh.nix new file mode 100644 index 0000000..c474267 --- /dev/null +++ b/modules/basic-tools/zsh.nix @@ -0,0 +1,44 @@ +{ pkgs, ... }: +{ + environment.shellAliases = { + ls = "ls --color=auto"; + l = "ls -l"; + la = "ls -la"; + ll = "ls -lah"; + lt = "ls --tree"; + vim = "nvim"; + grep = "grep --color=auto"; + e = "$EDITOR"; + v = "$EDITOR"; + }; + + programs.zsh = { + enable = true; + enableCompletion = true; + syntaxHighlighting.enable = true; + interactiveShellInit = '' + bindkey -e + export HISTFILE="$HOME/.zsh_history" + export HISTSIZE=10000000 + export SAVEHIST=10000000 + setopt HIST_IGNORE_ALL_DUPS + # allow comments + setopt interactivecomments + ''; + promptInit = '' + source ${pkgs.liquidprompt}/share/zsh/plugins/liquidprompt/liquidprompt + ''; + }; + + environment.etc.liquidpromptrc = { + text = '' + LP_ENABLE_SSH_COLORS=1 + LP_ENABLE_TITLE=1 + LP_ENABLE_SCREEN_TITLE=1 + LP_ENABLE_TEMP=0 + LP_ENABLE_SVN=0 + LP_BATTERY_THRESHOLD=15 + LP_SSH_COLORS=1 + ''; + }; +} diff --git a/modules/devtools.nix b/modules/devtools.nix index f91a57e..bfb0905 100644 --- a/modules/devtools.nix +++ b/modules/devtools.nix @@ -30,7 +30,7 @@ freecad-wayland imhex python313Full - pkgs.nixfmt-rfc-style + nixfmt-rfc-style treefmt android-tools ]; @@ -58,6 +58,10 @@ programs.zsh.interactiveShellInit = '' eval "$(direnv hook zsh)" ''; + programs.fish.interactiveShellInit = '' + direnv hook fish | source + ''; + # nix options for derivations to persist garbage collection nix.extraOptions = '' keep-outputs = true diff --git a/modules/fonts.nix b/modules/fonts.nix new file mode 100644 index 0000000..7ee909b --- /dev/null +++ b/modules/fonts.nix @@ -0,0 +1,43 @@ +{ pkgs, ... }: +{ + fonts.packages = with pkgs; [ + monoid + font-awesome + dejavu_fonts + julia-mono + uw-ttyp0 + gohufont + spleen + terminus_font + creep + corefonts + dina-font + fira + fira-mono + hack-font + liberation_ttf + noto-fonts + noto-fonts-cjk-sans + noto-fonts-emoji + noto-fonts-extra + proggyfonts + symbola + open-sans + twemoji-color-font + twitter-color-emoji + iosevka-bin + (nerdfonts.override { fonts = [ "Hack" ]; }) + ]; + + fonts.enableDefaultPackages = true; + fonts.fontconfig = { + enable = true; + allowBitmaps = true; + useEmbeddedBitmaps = true; + defaultFonts.emoji = [ + "Twitter Color Emoji" + "Noto Color Emoji" + ]; + }; + +} diff --git a/modules/gnome.nix b/modules/gnome.nix index a7b0b62..897c4d3 100644 --- a/modules/gnome.nix +++ b/modules/gnome.nix @@ -1,8 +1,9 @@ -{ config, pkgs, ... }: +{ pkgs, ... }: { imports = [ ./desktop-software.nix + ./fonts.nix ]; environment.systemPackages = with pkgs; [ amberol @@ -62,45 +63,6 @@ programs.zsh.vteIntegration = true; programs.bash.vteIntegration = true; - fonts.packages = with pkgs; [ - monoid - font-awesome - dejavu_fonts - julia-mono - uw-ttyp0 - gohufont - spleen - terminus_font - creep - corefonts - dina-font - fira - fira-mono - hack-font - liberation_ttf - noto-fonts - noto-fonts-cjk-sans - noto-fonts-emoji - noto-fonts-extra - proggyfonts - symbola - open-sans - twemoji-color-font - twitter-color-emoji - iosevka-bin - ]; - - fonts.enableDefaultPackages = true; - fonts.fontconfig = { - enable = true; - allowBitmaps = true; - useEmbeddedBitmaps = true; - defaultFonts.emoji = [ - "Twitter Color Emoji" - "Noto Color Emoji" - ]; - }; - hardware.bluetooth.enable = true; } diff --git a/modules/sway.nix b/modules/sway.nix index f536bcb..1ce6f63 100644 --- a/modules/sway.nix +++ b/modules/sway.nix @@ -3,6 +3,7 @@ { imports = [ ./desktop-software.nix + ./fonts.nix ]; environment.systemPackages = with pkgs; [ screen-message @@ -25,47 +26,6 @@ audacity ]; - #on the desktop, we need nice fonts ^^ - fonts.packages = with pkgs; [ - monoid - font-awesome - dejavu_fonts - julia-mono - uw-ttyp0 - gohufont - spleen - terminus_font - creep - corefonts - dina-font - fira - fira-mono - hack-font - liberation_ttf - noto-fonts - noto-fonts-cjk-sans - noto-fonts-emoji - noto-fonts-extra - proggyfonts - symbola - open-sans - twemoji-color-font - twitter-color-emoji - iosevka - nerd-fonts.hack - ]; - - fonts.enableDefaultPackages = true; - fonts.fontconfig = { - enable = true; - allowBitmaps = true; - useEmbeddedBitmaps = true; - defaultFonts.emoji = [ - "Noto Color Emoji" - "Twitter Color Emoji" - ]; - }; - # Enable sound. security.rtkit.enable = true;