aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--bashrc.d/shellrc5
-rw-r--r--flake.lock25
-rw-r--r--flake.nix71
-rwxr-xr-xinstall19
-rw-r--r--shellrc-desktop.d/desktop (renamed from shellrc.d-desktop/desktop)0
-rw-r--r--shellrc-desktop.d/shortcuts (renamed from shellrc.d-desktop/shortcuts)0
-rw-r--r--shellrc-desktop.d/ssh (renamed from shellrc.d-desktop/ssh)0
-rw-r--r--shellrc-desktop.d/sway (renamed from shellrc.d-desktop/sway)0
-rw-r--r--shellrc-desktop.d/xorg (renamed from shellrc.d-desktop/xorg)0
-rw-r--r--zshrc5
-rw-r--r--zshrc.d/prompt3
-rw-r--r--zshrc.d/shellrc5
12 files changed, 116 insertions, 17 deletions
diff --git a/bashrc.d/shellrc b/bashrc.d/shellrc
deleted file mode 100644
index e938444..0000000
--- a/bashrc.d/shellrc
+++ /dev/null
@@ -1,5 +0,0 @@
-# vim: ft=sh
-
-for sh in /usr/share/shellrc/*; do
- [ -r "$sh" ] && . "$sh"
-done
diff --git a/flake.lock b/flake.lock
new file mode 100644
index 0000000..6ad3dfd
--- /dev/null
+++ b/flake.lock
@@ -0,0 +1,25 @@
+{
+ "nodes": {
+ "nixpkgs": {
+ "locked": {
+ "lastModified": 1648219316,
+ "narHash": "sha256-Ctij+dOi0ZZIfX5eMhgwugfvB+WZSrvVNAyAuANOsnQ=",
+ "owner": "NixOS",
+ "repo": "nixpkgs",
+ "rev": "30d3d79b7d3607d56546dd2a6b49e156ba0ec634",
+ "type": "github"
+ },
+ "original": {
+ "id": "nixpkgs",
+ "type": "indirect"
+ }
+ },
+ "root": {
+ "inputs": {
+ "nixpkgs": "nixpkgs"
+ }
+ }
+ },
+ "root": "root",
+ "version": 7
+}
diff --git a/flake.nix b/flake.nix
new file mode 100644
index 0000000..ec21822
--- /dev/null
+++ b/flake.nix
@@ -0,0 +1,71 @@
+{
+ description = "Cynerd's shell configuration";
+
+ outputs = { self, nixpkgs }: {
+
+ nixosModule = { config, lib, pkgs, ... }:
+ with lib;
+ let
+ zsh-completion = pkgs.stdenv.mkDerivation rec {
+ name = "shellrc-completion";
+ src = ./.;
+ nativeBuildInputs = [ pkgs.installShellFiles ];
+ installPhase = ''
+ for comp in bash-completion/*; do
+ installShellCompletion --bash --name "$${comp##*/}.bash" "$comp"
+ done
+ for comp in zsh-completion/*; do
+ installShellCompletion --zsh --name "$${comp##*/}" "$comp"
+ done
+ '';
+ };
+ in {
+
+ options = {
+ programs.shellrc = {
+ enable = mkOption {
+ type = types.bool;
+ default = false;
+ description = "If shellrc should be enabled.";
+ };
+ desktop = mkOption {
+ type = types.bool;
+ default = false;
+ description = "If shellrc's desktop specific files should be used.";
+ };
+ };
+ };
+
+ config = mkIf config.programs.shellrc.enable {
+ environment.loginShellInit = ''
+ for sh in ${./shellrc.d}/*; do
+ [ -r "$sh" ] && . "$sh"
+ done
+ '' + optionalString config.programs.shellrc.desktop ''
+ for sh in ${./shellrc-desktop.d}/*; do
+ [ -r "$sh" ] && . "$sh"
+ done
+ '';
+
+ programs.bash.loginShellInit = ''
+ for sh in ${./bashrc.d}/*; do
+ [ -r "$sh" ] && . "$sh"
+ done
+ '';
+
+ programs.zsh.loginShellInit = mkIf config.programs.zsh.enable ''
+ for sh in ${./zshrc.d}/*; do
+ [ -r "$sh" ] && . "$sh"
+ done
+ '';
+
+ environment.systemPackages = [
+ zsh-completion
+ ];
+
+ };
+
+ };
+
+ };
+}
diff --git a/install b/install
index cd42670..f54b249 100755
--- a/install
+++ b/install
@@ -60,20 +60,35 @@ fi
if $U_DESKTOP; then
mkdir -p "$I_PREFIX/usr/share/shellrc"
- cp -r shellrc.d-desktop/. "$I_PREFIX/usr/share/shellrc/"
+ cp -r shellrc-desktop.d/. "$I_PREFIX/usr/share/shellrc/"
fi
if $U_BASH; then
mkdir -p "$I_PREFIX/etc/bash"
cp -r bashrc.d/. "$I_PREFIX/etc/bash/bashrc.d"
+ cat >"$I_PREFIX/etc/bash/bashrc.d/shellrc" <<-"EOF"
+ for sh in /usr/share/shellrc/*; do
+ [ -r "$sh" ] && . "$sh"
+ done
+ EOF
mkdir -p "$I_PREFIX/usr/share/bash-completion/completions"
cp -r bash-completion/. "$I_PREFIX/usr/share/bash-completion/completions/"
fi
if $U_ZSH; then
mkdir -p "$I_PREFIX/etc/zsh"
- cp zshrc "$I_PREFIX/etc/zsh/zshrc"
+ cat >"$I_PREFIX/etc/zsh/zshrc" <<-"EOF"
+ [[ -o interactive ]] || return # skip on initialization if not interactive
+ for sh in /etc/zsh/zshrc.d/*; do
+ [ -r "$sh" ] && . "$sh"
+ done
+ EOF
cp -r zshrc.d/. "$I_PREFIX/etc/zsh/zshrc.d"
+ cat >"$I_PREFIX/etc/zsh/zshrc.d/shellrc" <<-"EOF"
+ for sh in /usr/share/shellrc/*; do
+ [ -r "$sh" ] && . "$sh"
+ done
+ EOF
mkdir -p "$I_PREFIX/usr/share/zsh/site-functions"
cp -r zsh-completion/. "$I_PREFIX/usr/share/zsh/site-functions"
fi
diff --git a/shellrc.d-desktop/desktop b/shellrc-desktop.d/desktop
index 64f0431..64f0431 100644
--- a/shellrc.d-desktop/desktop
+++ b/shellrc-desktop.d/desktop
diff --git a/shellrc.d-desktop/shortcuts b/shellrc-desktop.d/shortcuts
index 4be240a..4be240a 100644
--- a/shellrc.d-desktop/shortcuts
+++ b/shellrc-desktop.d/shortcuts
diff --git a/shellrc.d-desktop/ssh b/shellrc-desktop.d/ssh
index 7a1b71f..7a1b71f 100644
--- a/shellrc.d-desktop/ssh
+++ b/shellrc-desktop.d/ssh
diff --git a/shellrc.d-desktop/sway b/shellrc-desktop.d/sway
index 1032a91..1032a91 100644
--- a/shellrc.d-desktop/sway
+++ b/shellrc-desktop.d/sway
diff --git a/shellrc.d-desktop/xorg b/shellrc-desktop.d/xorg
index 91c9f07..91c9f07 100644
--- a/shellrc.d-desktop/xorg
+++ b/shellrc-desktop.d/xorg
diff --git a/zshrc b/zshrc
deleted file mode 100644
index ee5d8a8..0000000
--- a/zshrc
+++ /dev/null
@@ -1,5 +0,0 @@
-[[ -o interactive ]] || return # skip on initialization if not interactive
-
-for sh in /etc/zsh/zshrc.d/*; do
- [ -r "$sh" ] && . "$sh"
-done
diff --git a/zshrc.d/prompt b/zshrc.d/prompt
index 08e7ad1..72cbf44 100644
--- a/zshrc.d/prompt
+++ b/zshrc.d/prompt
@@ -1,5 +1,8 @@
# vim: ft=zsh
+# Disable default prompt
+command -v prompt >/dev/null && prompt off
+
[ $UID -eq 0 ] && NCOLOR="red" || NCOLOR="green"
PROMPT="%(?..%{$fg_bold[yellow]%}EXIT: %?
)%{$fg_bold[$NCOLOR]%}%n@%m:%{$fg_bold[blue]%}%1~%{$fg_bold[$NCOLOR]%}%(!.#.$)%{$reset_color%} "
diff --git a/zshrc.d/shellrc b/zshrc.d/shellrc
deleted file mode 100644
index 049e5fc..0000000
--- a/zshrc.d/shellrc
+++ /dev/null
@@ -1,5 +0,0 @@
-# vim: ft=zsh
-
-for sh in /usr/share/shellrc/*; do
- [ -r "$sh" ] && . "$sh"
-done