]> git.immae.eu Git - perso/Immae/Config/Ansible.git/commitdiff
Make bash xdg-compliant
authorIsmaël Bouya <ismael.bouya@fretlink.com>
Sun, 18 Nov 2018 12:14:33 +0000 (13:14 +0100)
committerIsmaël Bouya <ismael.bouya@fretlink.com>
Sun, 18 Nov 2018 12:20:49 +0000 (13:20 +0100)
roles/init/tasks/main.yml
roles/init/templates/pam_environment.j2
roles/shell/bash/files/inputrc [new file with mode: 0644]
roles/shell/bash/tasks/main.yml
roles/shell/bash/templates/bash_profile.j2
roles/shell/bash/templates/bashrc.j2

index a52f3cdd250c38fdfec12b89234b4e736f4136d3..e60bb2a843f8520e1b56705c879828c95edbfb52 100644 (file)
@@ -9,7 +9,6 @@
     - "$XDG_STATE_HOME/bash"
     - "$XDG_DATA_HOME"
     - "$XDG_CACHE_HOME"
-    - "$HOME/Desktop"
     - "$HOME/Downloads"
 - name: Get gnupg runtime folder name
   shell: 'GNUPGHOME=$XDG_CONFIG_HOME/gnupg gpgconf --list-dirs socketdir | sed -e "s@$XDG_RUNTIME_DIR/gnupg/@@"'
index 5bb88950c0ab69916286c96f8e9ccc84ea82e253..c2570457b5c3f6ee441135e756532a6abce5f446 100644 (file)
@@ -19,6 +19,9 @@ BROWSER                               DEFAULT="firefox"
 # replace GIO with xdg-open, see tools/files/gio_unwrapper.sh
 GIO_LAUNCH_DESKTOP             DEFAULT=gio_unwrapper
 
+# Readline
+INPUTRC                                DEFAULT="${XDG_CONFIG_HOME}/inputrc"
+
 # Ansible
 ANSIBLE_CONFIG                 DEFAULT="${XDG_CONFIG_HOME}/ansible/ansible.cfg"
 
diff --git a/roles/shell/bash/files/inputrc b/roles/shell/bash/files/inputrc
new file mode 100644 (file)
index 0000000..111f8dd
--- /dev/null
@@ -0,0 +1,7 @@
+$include  /etc/inputrc
+# Readline configuration
+# Can also be specified in bashrc with: bind "..."
+set colored-completion-prefix on
+# TAB: menu-complete
+set show-all-if-ambiguous on
+set show-all-if-unmodified on
index d74421aa11543fb83bea483d655fa76b630496cc..6bf38592abb709704e8e6295e705da16b352aeeb 100644 (file)
@@ -1,12 +1,20 @@
 ---
+- name: Create config dir
+  file:
+    path: $XDG_CONFIG_HOME/bash
+    state: directory
 - name: Add bashrc config
   template:
     src: bashrc.j2
-    dest: $HOME/.bashrc
+    dest: $XDG_CONFIG_HOME/bash/bashrc
 - name: Add bash_profile config
   template:
     src: bash_profile.j2
-    dest: $HOME/.bash_profile
+    dest: $XDG_CONFIG_HOME/bash/bash_profile
+- name: Add inputrc config
+  copy:
+    src: inputrc
+    dest: $XDG_CONFIG_HOME/inputrc
 - name: Create bash state dir
   file:
     path: $XDG_STATE_HOME/bash
index 8ffd818a57714441b94cc3d66afdf2da5e1db44e..4bcd09cb9d854f9a6b3df9013362b0cabbe46cf6 100644 (file)
@@ -1,6 +1,8 @@
 # Some variables are loaded via pam (see .config/pam_environment)
+# This file is loaded thanks to as line in /etc/profile
+# test "$BASH" && test -r "$XDG_CONFIG_HOME/bash/bash_profile" && . $XDG_CONFIG_HOME/bash/bash_profile
 
-[[ -f ~/.bashrc ]] && . ~/.bashrc
+[[ -f $XDG_CONFIG_HOME/bash/bashrc ]] && . $XDG_CONFIG_HOME/bash/bashrc
 {% if "graphical_vt" in features.get(profile, []) %}
 
 if [[ ! $DISPLAY && $XDG_VTNR -eq 1 ]]; then
index 08518c9dca101e731573bb85154913c7c132c9d4..b717f0ed66e237f41fc7b6d6d54ab848559b5d80 100644 (file)
@@ -27,7 +27,7 @@ alias mv="mv -i"
 alias cp="cp -i"
 alias rm="rm -i"
 alias psp="pstree -aUp $USER"
-alias dotdrop="dotdrop --cfg $XDG_CONFIG_HOME/dotdrop/config.yaml"
+alias info='info -v active-link-style=yellow,bold -v link-style=yellow'
 
 [[ -f /usr/share/stgit/completion/stgit-completion.bash ]] && . /usr/share/stgit/completion/stgit-completion.bash
 
@@ -125,6 +125,7 @@ function git_prompt() {
     echo -e "($gitinfo) "
   fi
 }
+{% set ps1_git = '\[$(git_prompt_color)\]$(git_prompt)' %}
 
 function error_code() {
   ret=$?
@@ -139,14 +140,19 @@ function running_jobs() {
     echo "[$ret] "
   fi
 }
+{% set ps1_status = '\[\\033[01;31m\]$(error_code)\[\\033[00;00m\]$(running_jobs)' -%}
 
-{% if role.get(profile) == "fretlink" %}
-PS1='\[\033[01;31m\]$(error_code)\[\033[00;00m\]$(running_jobs)\[\033[01;32m\]$(dev_prompt)\[$(git_prompt_color)\]$(git_prompt)\[\033[00;32m\]\u@\h\[\033[94m\] \w \$\[\033[00m\] '
-{% else %}
-PS1='\[\033[01;31m\]$(error_code)\[\033[00;00m\]$(running_jobs)\[$(git_prompt_color)\]$(git_prompt)\[\033[00;32m\]\u@\h\[\033[94m\] \w \$\[\033[00m\] '
-{% endif %}
+{# Ensure new line before the prompt #}
+{% set ps1_newline = '$(printf "%$((`tput cols`-1))s\\r")' -%}
+
+{% set ps1_other = '' %}
+{% if role.get(profile) == "fretlink" -%}
+  {% set ps1_other = '\[\\033[01;32m\]$(dev_prompt)' %}
+{%- endif %}
+
+PS1='{{ ps1_newline }}{{ ps1_status }}{{ ps1_other }}{{ ps1_git }}\[\033[00;32m\]\u@\h\[\033[94m\] \w \$\[\033[00m\] '
 
-PROMPT_COMMAND="[[ -f "$XDG_STATE_HOME/bash/bashrc_temp" ]] && . $XDG_STATE_HOME/bash/bashrc_temp"
+PROMPT_COMMAND="[[ -f $XDG_STATE_HOME/bash/bashrc_temp ]] && . $XDG_STATE_HOME/bash/bashrc_temp"
 
 {% if "nodejs" in features.get(profile, []) %}
 source /usr/share/nvm/init-nvm.sh