diff --git a/modules/basic-tools/default.nix b/modules/basic-tools/default.nix index 349609e..e72aadf 100644 --- a/modules/basic-tools/default.nix +++ b/modules/basic-tools/default.nix @@ -3,6 +3,8 @@ { imports = [ ./fzf.nix + ./multiplexers.nix + ./nix.nix ]; environment.systemPackages = with pkgs; [ @@ -27,35 +29,11 @@ nnn ranger man-pages - screen unzip usbutils pciutils ]; - nix = { - extraOptions = '' - experimental-features = nix-command flakes - ''; - }; - - # override default nix shell nixpkgs# behaviour to use current flake lock - nix.registry = - let flakes = lib.filterAttrs (_name: value: value ? outputs) inputs.self.inputs; - in builtins.mapAttrs (_name: v: { flake = v; }) flakes; - - nix.nixPath = lib.mapAttrsToList (name: value: "${name}=${value.outPath}") inputs.self.inputs; - - - programs.tmux = { - enable = true; - keyMode = "vi"; - escapeTime = 0; - historyLimit = 50000; - aggressiveResize = true; - terminal = "tmux-256color"; - }; - # set appropriate environ variables environment.variables = { EDITOR = "nvim"; @@ -70,10 +48,7 @@ ll = "ls -lah"; lt = "ls --tree"; vim = "nvim"; - mutt = "neomutt"; grep = "grep --color=auto"; - nix-build="${pkgs.nix-output-monitor}/bin/nom-build"; - nix-shell="${pkgs.nix-output-monitor}/bin/nom-shell"; }; users.defaultUserShell = pkgs.zsh; @@ -89,19 +64,6 @@ setopt HIST_IGNORE_ALL_DUPS # allow comments setopt interactivecomments - - # hacky wrapper for nix, so we can use nom automagically - export _nom_cmd=${pkgs.nix-output-monitor}/bin/nom - function nix { - case $1 in - build|shell|develop) - echo \[SUBSTITUTION\] ''$_nom_cmd ''${@:1} 1>&2 - ''$_nom_cmd ''${@:1} - ;; - *) - ${pkgs.nix}/bin/nix $@ - esac - } ''; promptInit = '' source ${pkgs.liquidprompt}/share/zsh/plugins/liquidprompt/liquidprompt @@ -123,13 +85,4 @@ programs.iftop.enable = true; programs.mosh.enable = true; - programs.screen.screenrc = '' - defscrollback 10000 - - startup_message off - - hardstatus on - hardstatus alwayslastline - hardstatus string "%w" - ''; } diff --git a/modules/basic-tools/multiplexers.nix b/modules/basic-tools/multiplexers.nix new file mode 100644 index 0000000..c089128 --- /dev/null +++ b/modules/basic-tools/multiplexers.nix @@ -0,0 +1,43 @@ +{ pkgs, ... }: { + programs.tmux = { + enable = true; + keyMode = "vi"; + escapeTime = 0; + historyLimit = 500000; + aggressiveResize = true; + terminal = "tmux-256color"; + }; + + programs.zsh.interactiveShellInit = '' + # create new tmux session with $1 as a name + # if no arguments supplied, use name of current dir + + function tn { + if [ $# -eq 0 ] + then + tmux new-session -s $(basename $(pwd)) + else + tmux new-session -s $1 + fi + } + ''; + + environment.shellAliases = { + tl = "tmux list-sessions"; + ta = "tmux attach -t"; + }; + + environment.systemPackages = [ + pkgs.screen + ]; + + programs.screen.screenrc = '' + defscrollback 10000 + + startup_message off + + hardstatus on + hardstatus alwayslastline + hardstatus string "%w" + ''; +} diff --git a/modules/basic-tools/nix.nix b/modules/basic-tools/nix.nix new file mode 100644 index 0000000..4a481ae --- /dev/null +++ b/modules/basic-tools/nix.nix @@ -0,0 +1,36 @@ +{ lib, pkgs, inputs, ... }: { + + nix = { + extraOptions = '' + experimental-features = nix-command flakes + ''; + }; + + # override default nix shell nixpkgs# behaviour to use current flake lock + nix.registry = + let flakes = lib.filterAttrs (_name: value: value ? outputs) inputs.self.inputs; + in builtins.mapAttrs (_name: v: { flake = v; }) flakes; + + nix.nixPath = lib.mapAttrsToList (name: value: "${name}=${value.outPath}") inputs.self.inputs; + + environment.shellAliases = { + nix-build="${pkgs.nix-output-monitor}/bin/nom-build"; + nix-shell="${pkgs.nix-output-monitor}/bin/nom-shell"; + }; + + programs.zsh.interactiveShellInit = '' + # hacky wrapper for nix, so we can use nom automagically + export _nom_cmd=${pkgs.nix-output-monitor}/bin/nom + function nix { + case $1 in + build|shell|develop) + echo \[SUBSTITUTION\] ''$_nom_cmd ''${@:1} 1>&2 + ''$_nom_cmd ''${@:1} + ;; + *) + ${pkgs.nix}/bin/nix $@ + esac + } + compdef nix=_nix + ''; +} diff --git a/modules/mail/default.nix b/modules/mail/default.nix index 71b195f..c922bc3 100644 --- a/modules/mail/default.nix +++ b/modules/mail/default.nix @@ -12,6 +12,10 @@ in links2 ]; + environment.shellAliases = { + mutt = "neomutt"; + }; + sops.secrets = { "mail/oxapentane.com" = { owner = config.users.users.grue.name;