From a38abd4c8fb7572237b2681bb1d0d6b0e5b262b0 Mon Sep 17 00:00:00 2001 From: Amin Bandali Date: Mon, 5 Aug 2019 12:38:53 -0400 Subject: [PATCH] bash: adapt config for guix system --- .bash_profile | 1 + .bashrc | 33 +++++++++++++++++++++++++++++---- .profile | 21 +++++++++------------ 3 files changed, 39 insertions(+), 16 deletions(-) create mode 100644 .bash_profile diff --git a/.bash_profile b/.bash_profile new file mode 100644 index 0000000..61cb5cf --- /dev/null +++ b/.bash_profile @@ -0,0 +1 @@ +if [ -f "$HOME/.profile" ]; then . "$HOME/.profile"; fi diff --git a/.bashrc b/.bashrc index 7272bd4..f93f6c9 100644 --- a/.bashrc +++ b/.bashrc @@ -1,12 +1,36 @@ -# If not running interactively, don't do anything else -[[ $- != *i* ]] && return +# Bash initialization for interactive non-login shells and +# for remote shells (info "(bash) Bash Startup Files"). + +# Export 'SHELL' to child processes. Programs such as 'screen' +# honor it and otherwise use /bin/sh. +export SHELL + +if [[ $- != *i* ]] +then + # We are being invoked from a non-interactive shell. If this + # is an SSH session (as in "ssh host command"), source + # /etc/profile so we get PATH and other essential variables. + [[ -n "$SSH_CLIENT" ]] && source /etc/profile + + # Don't do anything else. + return +fi + +# Source the system-wide file. +source /etc/bashrc # from https://unix.stackexchange.com/a/55935 a_prompt() { cwd=$(sed -e "s:$HOME:~:" -e "s:\(\.\?[^/]\)[^/]*/:\1/:g" <<<$PWD) printf $cwd } -PS1="\u@\h \$(a_prompt)> " +# Adjust the prompt depending on whether we're in 'guix environment'. +if [ -n "$GUIX_ENVIRONMENT" ] +then + PS1="\u@\h [env] \$(a_prompt)> " +else + PS1="\u@\h \$(a_prompt)> " +fi # i-beam cursor # echo -e "\033[5 q" # blinking @@ -23,9 +47,10 @@ HISTTIMEFORMAT='%F %T ' stty stop "" # aliases -alias ls='ls --color=auto' +alias ls='ls -p --color=auto' alias l='ls -lh' # long format and human-readable sizes alias ll='l -A' # long format, all files +alias grep='grep --color=auto' alias mpv="mpv --ytdl-format mp4" alias mv="mv -iv" alias cp="cp -iv" diff --git a/.profile b/.profile index 10425ee..bed8ade 100644 --- a/.profile +++ b/.profile @@ -1,23 +1,17 @@ # ~/.profile: executed by the command interpreter for login shells. # This file is not read by bash(1), if ~/.bash_profile or ~/.bash_login # exists. -# see /usr/share/doc/bash/examples/startup-files for examples. -# the files are located in the bash-doc package. - -# the default umask is set in /etc/profile; for setting the umask -# for ssh logins, install and configure the libpam-umask package. -#umask 022 export EDITOR="emacsclient -nw" export VISUAL="emcl" PATH="$HOME/bin:$HOME/.local/bin:$PATH" PATH="$HOME/.cabal/bin:$HOME/.cargo/bin:$HOME/.elan/bin:$PATH" +PATH="$HOME/.guix-profile/bin:$HOME/.guix-profile/sbin${PATH:+:}$PATH" export PATH export XDG_CONFIG_HOME="$HOME/.config" export XDG_DATA_HOME="$HOME/.local/share" -export XDG_DATA_DIRS="/usr/share/mate:/usr/local/share/:/usr/share/" export INPUTRC="$XDG_CONFIG_HOME"/readline/inputrc export SCREENRC="$XDG_CONFIG_HOME"/screen/screenrc @@ -27,6 +21,9 @@ export CVS_RSH="ssh" export GOPATH="$HOME/src/go" +export GIT_EXEC_PATH="$HOME/.guix-profile/libexec/git-core" +export PASSWORD_STORE_SYSTEM_EXTENSION_DIR="$HOME/.guix-profile/lib/password-store/extensions${PASSWORD_STORE_SYSTEM_EXTENSION_DIR:+:}$PASSWORD_STORE_SYSTEM_EXTENSION_DIR" + # if running bash if [ -n "$BASH_VERSION" ]; then # include .bashrc if it exists @@ -37,15 +34,15 @@ fi # if guix is installed if [ -x "$(command -v guix)" ]; then - export PATH="$HOME/.config/guix/current/bin:$PATH" - export GUIX_LOCPATH="$HOME/.guix-profile/lib/locale" - GUIX_PROFILE="$HOME/.guix-profile" . "$GUIX_PROFILE/etc/profile" fi setxkbmap \ - -layout us_ab,ir \ + -layout us,ir \ -option ctrl:nocaps \ - -option altwin:swap_alt_win \ -option grp:shifts_toggle + +xmodmap -e "keysym Menu = Super_R" + +xrdb -merge "$HOME/.Xresources" -- 2.20.1