]> gitweb.pimeys.fr Git - config-20-100.git/commitdiff
Merge branch 'master' into perso
authorVincent Le Gallic <legallic@crans.org>
Thu, 25 Jul 2013 01:05:36 +0000 (03:05 +0200)
committerVincent Le Gallic <legallic@crans.org>
Thu, 25 Jul 2013 01:05:36 +0000 (03:05 +0200)
.bash_aliases
.bashrc
.irssi/config [new file with mode: 0644]

index ce5c6f4eab82c91a0600544facfece34274f5563..e6aef5899f74deb0d366a068a11639fede547a09 100644 (file)
@@ -22,10 +22,12 @@ alias cp='cp -i'
 alias df='df -h'
 
 # Affichage des couleurs automatiques
-alias grep='grep --color=auto'
-alias egrep='egrep --color=auto'
-alias fgrep='fgrep --color=auto'
-alias ls='ls --color=auto'
+if [ -x /usr/bin/dircolors ]; then
+    alias grep='grep --color=auto'
+    alias egrep='egrep --color=auto'
+    alias fgrep='fgrep --color=auto'
+    alias ls='ls --color=auto'
+fi
 
 # Alias ls
 alias ll='ls -alFh'
@@ -110,6 +112,11 @@ alias pdfpages="find . -name '*.pdf' -exec pdfinfo {} \; | egrep '^Pages'"
 # et pour les sommer
 alias pdfpagessum='pdfpages | awk "{print \$2}" | paste -sd+ | bc'
 
+# Add an "alert" alias for long running commands.  Use like so:
+#   long_command; alert
+alias alert='notify-send --urgency=low -i "$([ $? = 0 ] && echo terminal || echo error)" "$(history|tail -n1|sed -e '\''s/^\s*[0-9]\+\s*//;s/[;&|]\s*alert$//'\'')"'
+
+
 
 # +------------+
 # | Cool stuff |
diff --git a/.bashrc b/.bashrc
index 9017ff476323940fb0a918145df1461ba28a706e..409278c8378370500c078d1c8eb69966878f908d 100644 (file)
--- a/.bashrc
+++ b/.bashrc
@@ -44,35 +44,58 @@ fi
 #~# # Définition de fonction pour pouvoir afficher dans le prompt
 #~# # des infos quand on est dans un dépôt versionné
 #~# 
+#~# find_up () {
+#~#     path="$1"
+#~#     shift 1
+#~#     while [[ "`readlink -f -- \"$path\"`" != "/" ]];
+#~#     do
+#~#         find "$path"  -maxdepth 1 -mindepth 1 "$@"
+#~#         path=${path}/..
+#~#     done
+#~# }
+#~# 
 #~# get_vcs_info () {
 #~#     # Donne les infos sur le dépôt VCS courant.
 #~#     # priorité à git, puis darcs
-#~#     local BRANCH TYPE violet orange vert
+#~#     local LBRANCH LTYPE BRANCH TYPE DIR violet orange vert
 #~#     violet="\[\e[35m\]"
 #~#     orange="\[\e[33m\]"
 #~#     vert="\[\e[32m\]"
 #~#     nocolor="\[\e[0m\]"
-#~#     BRANCH=$(git branch 2>/dev/null | sed -r "s/^[^*].*$//" | paste -s -d '' | sed -r "s/^[*] //")
-#~#     if [ -n "$BRANCH" ];
-#~#     then
-#~#         TYPE="git"
-#~#     else
-#~#         BRANCH=$(darcs show repo 2>/dev/null| egrep '^ *Cache' | sed 's@.*/\([^/]*\),.*@\1@')
-#~#         if [ -n "$BRANCH" ];
-#~#         then
-#~#             TYPE="darcs"
+#~#     declare -a DIR
+#~#     declare -A TYPE
+#~#     declare -A BRANCH
+#~#     DIR[0]=".git"
+#~#     DIR[1]=".hg"
+#~#     DIR[2]="_darcs"
+#~#     DIR[3]=".svn"
+#~#     TYPE[.git]="git"
+#~#     TYPE[.hg]="mercurial"
+#~#     TYPE[_darcs]="darcs"
+#~#     TYPE[.svn]="svn"
+#~#     BRANCH[.git]='git branch 2>/dev/null | sed -r "s/^[^*].*$//" | paste -s -d "" | sed -r "s/^[*] //"'
+#~#     BRANCH[.hg]='hg branch 2>/dev/null'
+#~#     BRANCH[_darcs]="darcs show repo 2>/dev/null| egrep '^ *Cache' | sed 's@.*/\([^/]*\),.*@\1@'"
+#~#     BRANCH[.svn]="svn info 2>/dev/null | head -n 6 | tail -n 1"
+#~# 
+#~#     DIR=$(eval "find_up \"$PWD\" -name \"\"$(printf -- ' -o -name "%s"' "${DIR[@]}") | head -n 1")
+#~#     if [ -n "$DIR" ]; then
+#~#         DIR=$(basename "$DIR")
+#~#         LBRANCH=$(eval "${BRANCH[$DIR]}")
+#~#         LTYPE="${TYPE[$DIR]}"
+#~#         if [ "$color_prompt" = yes ]; then
+#~#             VCS_info="${nocolor}${violet}(${nocolor}$LTYPE${violet})-${violet}[${vert}$LBRANCH${violet}]${nocolor}"
+#~#         else
+#~#             VCS_info="($LTYPE)-[$LBRANCH]"
 #~#         fi
-#~#     fi
-#~#     if [ -n "$TYPE" ];
-#~#     then
-#~#         VCS_info="${nocolor}${violet}(${nocolor}$TYPE${violet})-${violet}[${vert}$BRANCH${violet}]${nocolor}"
-#~#         VCS_size=$((${#TYPE}+${#BRANCH}+5))
+#~#         VCS_size=$((${#LTYPE}+${#LBRANCH}+5))
 #~#     else
 #~#         VCS_info=""
 #~#         VCS_size=0
 #~#     fi
 #~# }
 
+
 # Pour avoir le bon umask en fonction du dossier où on se trouve
 # L'umask définit avec quel droits un fichier est créé.
 # Quand on écrit dans un dossier et qu'on veut que, par défaut,
@@ -80,7 +103,11 @@ fi
 # Rien de spécial n'arrivera si vous n'avez pas le fichier .umaskrc
 function cd {
         builtin cd "$@"
-        [ -f ~/.umaskrc ] &&  umask $(/usr/bin/awk 'BEGIN {pwd=ENVIRON["PWD"]; a=length(pwd); cmax=0} {if($1==pwd) {MASK=$2;exit}; c=length($1); if(c>a) {next}; if(substr(pwd,0,c)==$1 && c > cmax) {cmax=c; MASK=$2}} END {print MASK}' ~/.umaskrc) >/dev/null
+        if [ -f ~/.umaskrc ]; then
+            umask $(/usr/bin/awk 'BEGIN {pwd=ENVIRON["PWD"]; a=length(pwd); cmax=0} {if($1==pwd) {MASK=$2;exit}; c=length($1); if(c>a) {next}; if(substr(pwd,0,c)==$1 && c > cmax) {cmax=c; MASK=$2}} END {print MASK}' ~/.umaskrc) >/dev/null
+        else
+            return 0
+        fi
 }
 
 ### Attention à ce que vous éditez dans cette section ###
@@ -135,13 +162,29 @@ function prompt_command
            DIR=$pwd
         POST_DIR='${MINUS_LINE:'${#pwd}+${VCS_size}+1'+${#?}}'
     fi
-    DIR="< ${jaune}"$DIR"${cyan} >"
-    ERR='[ \[\e[1;$((31+($?==0)*6))m\]$?'${cyan}' ]'$MINUS_CHAR
-    DATE="( ${violet}\D{%H:%M:%S}${cyan} )"
-    PROMPT="${rouge}\u${vert}@${bleu}\h ${vert}\$ ${nocolor}"
-    PS1=$TITLE${cyan}$MINUS_CHAR$DATE$MINUS_CHAR$DIR$MINUS_CHAR$VCS_info${cyan}$POST_DIR$ERR'\n'$PROMPT
+    if [ "$color_prompt" = yes ]; then
+        DIR="< ${jaune}"$DIR"${cyan} >"
+        ERR='[ \[\e[1;$((31+($?==0)*6))m\]$?'${cyan}' ]'$MINUS_CHAR
+        DATE="( ${violet}\D{%H:%M:%S}${cyan} )"
+        PROMPT="${rouge}\u${vert}@${bleu}\h ${vert}\$ ${nocolor}"
+        PS1=$TITLE${cyan}$MINUS_CHAR$DATE$MINUS_CHAR$DIR$MINUS_CHAR$VCS_info${cyan}$POST_DIR$ERR'\n'$PROMPT
+    else
+        DIR="< "$DIR" >"
+        ERR='[ $? ]'$MINUS_CHAR
+        DATE="( \D{%H:%M:%S} )"
+        PROMPT="\u@\h \$ "
+        PS1=$TITLE$MINUS_CHAR$DATE$MINUS_CHAR$DIR$MINUS_CHAR$VCS_info$POST_DIR$ERR'\n'$PROMPT
+    fi
 }
 
+if [ -x /usr/bin/tput ] && tput setaf 1 >&/dev/null; then
+    # support de la couleur
+    color_prompt=yes
+else
+    # pas de support de la couleur
+    color_prompt=no
+fi
+
 # On change le titre de la fenêtre dynamiquement si on est sous X
 if [[ $TERM = "xterm" ]]; then
     TITLE='\[\e];\u@\h:\w\a\]'
@@ -162,9 +205,15 @@ if [[ $(uname) == Linux && ( $(locale charmap) == UTF-8 && $TERM != screen ) ]];
     date=$(/bin/date +"%R, %A %d %B %Y")
     redate=${date//é/e}
     redate=${redate//û/u}
-    echo -e "\e[1;36m┬─${redate//?/─}──┬${MINUS_LINE:${#date}-18}\n\
+    if [ "$color_prompt" = yes ]; then
+        echo -e "\e[1;36m┬─${redate//?/─}──┬${MINUS_LINE:${#date}-18}\n\
 │ \e[1;37m$date\e[1;31m \e[1;36m │\n\
 └─${redate//?/─}──┘\e[0m\n"
+    else
+        echo -e "┬─${redate//?/─}──┬${MINUS_LINE:${#date}-18}\n\
+│ $date  │\n\
+└─${redate//?/─}──┘\n"
+    fi
     unset date
 else
     MINUS_CHAR=-
diff --git a/.irssi/config b/.irssi/config
new file mode 100644 (file)
index 0000000..1517301
--- /dev/null
@@ -0,0 +1,319 @@
+# .irssi/config générique mis à votre disposition
+# par les gentils membres actifs du Cr@ns
+# Vous pouvez l'utiliser, le redistribuer, le modifier à votre convenance.
+# Des questions, des suggestions : {nounou,ca}@lists.crans.org
+# Licence : WTFPL
+
+# Les sections commentées par #~# sont des features qui ne sont pas activées
+# par défaut. Sentez-vous libre de les décommenter pour les utiliser. 
+
+# Pour utiliser correctement cette configuration, modifiez les valeurs
+# "Pseudo", "Prénom Nom" et "loginCr@ns"
+
+#-----------------------------------------------------------------------------
+
+# Les serveurs pré-enregistrés
+# Il est toujours possible de se connecter à un serveur qui n'est pas
+# dans cette liste.
+# irssi se connectera automatiquement aux 2 premiers cars ils ont
+# autoconnect = "yes"
+servers = (
+  {
+    address = "irc.crans.org";
+    chatnet = "Crans";
+    autoconnect = "yes";
+    term_type = "utf-8";
+  },
+  {
+    address = "irc.rezosup.org";
+    chatnet = "rezosup";
+    autoconnect = "yes";
+    term_type = "utf-8";
+  },
+  { address = "irc.stealth.net"; chatnet = "IRCnet"; port = "6668"; },
+  { address = "irc.efnet.org"; chatnet = "EFNet"; port = "6667"; },
+  { 
+    address = "irc.undernet.org";
+    chatnet = "Undernet";
+    port = "6667";
+  },
+  { address = "irc.dal.net"; chatnet = "DALnet"; port = "6667"; },
+  { 
+    address = "irc.quakenet.org";
+    chatnet = "QuakeNet";
+    port = "6667";
+  },
+  { address = "silc.silcnet.org"; chatnet = "SILC"; port = "706"; }
+);
+
+chatnets = {
+  IRCnet = {
+    type = "IRC";
+    max_kicks = "4";
+    max_msgs = "5";
+    max_whois = "4";
+    max_query_chans = "5";
+  };
+  EFNet = { 
+    type = "IRC";
+    max_kicks = "4";
+    max_msgs = "3";
+    max_whois = "1";
+  };
+  Undernet = {
+    type = "IRC";
+    max_kicks = "1";
+    max_msgs = "3";
+    max_whois = "30";
+  };
+  DALnet = {
+    type = "IRC";
+    max_kicks = "4";
+    max_msgs = "3";
+    max_whois = "30";
+  };
+  QuakeNet = {
+    type = "IRC";
+    max_kicks = "1";
+    max_msgs = "3";
+    max_whois = "30";
+  };
+  SILC = { type = "SILC"; };
+  Crans = { type = "IRC"; };
+  Acoeur = { type = "IRC"; };
+  rezosup = { type = "IRC"; };
+  ulminfo = { type = "IRC"; };
+};
+
+# Les channels à rejoindre automatiquement
+channels = (
+  # { name = "#irssi"; chatnet = "ircnet"; autojoin = "No"; },
+  # { name = "silc"; chatnet = "silc"; autojoin = "No"; },
+  { name = "#crans"; chatnet = "Crans"; autojoin = "Yes"; },
+  { name = "#general"; chatnet = "Crans"; autojoin = "Yes"; },
+  { name = "#flood"; chatnet = "Crans"; autojoin = "Yes"; },
+  { name = "#federez"; chatnet = "rezosup"; autojoin = "Yes"; },
+);
+
+# Des commandes pratiques
+aliases = {
+  J = "join";
+  WJOIN = "join -window";
+  WQUERY = "query -window";
+  LEAVE = "part";
+  BYE = "quit";
+  EXIT = "quit";
+  SIGNOFF = "quit";
+  DESCRIBE = "action";
+  DATE = "time";
+  HOST = "userhost";
+  LAST = "lastlog";
+  SAY = "msg *";
+  WI = "whois";
+  WII = "whois $0 $0";
+  WW = "whowas";
+  W = "win";
+  N = "names";
+  M = "msg";
+  T = "topic";
+  C = "clear";
+  CL = "clear";
+  K = "kick";
+  KB = "kickban";
+  KN = "knockout";
+  BANS = "ban";
+  B = "ban";
+  MUB = "unban *";
+  UB = "unban";
+  IG = "ignore";
+  UNIG = "unignore";
+  SB = "scrollback";
+  UMODE = "mode $N";
+  WC = "window close";
+  WN = "window new hide";
+  SV = "say Irssi $J ($V) - http://irssi.org/";
+  GOTO = "sb goto";
+  CHAT = "dcc chat";
+  RUN = "SCRIPT LOAD";
+  CALC = "exec - if which bc &>/dev/null\\; then echo '$*' | bc | awk '{print \"$*=\"$$1}'\\; else echo bc was not found\\; fi";
+  SBAR = "STATUSBAR";
+  INVITELIST = "mode $C +I";
+  Q = "QUERY";
+  "MANUAL-WINDOWS" = "set use_status_window off;set autocreate_windows off;set autocreate_query_level none;set autoclose_windows off;set reuse_unused_windows on;save";
+  EXEMPTLIST = "mode $C +e";
+  ATAG = "WINDOW SERVER";
+  slap = "me slaps $0-around a bit with a large salmon";
+  fp = "/me facepalms";
+  facepalm = "/me facepalms";
+  utf8 = "say echo \"export LANG=fr_FR.UTF-8\" >> .zshrc; say /set term_charset=UTF-8; say Terminal > Définir l'encodage des caractères > Unicode (UTF-8)";
+  howtoutf8 = "utf8";
+  irclippy = "say ╭─╮ $0-; say ಠ_ಠ /; say │▕│; say ╰─╯";
+  basile = "msg Basile";
+  deconnaisseur = "msg deconnaisseur";
+  autoslap = "me slaps himself";
+  replay = "deconnaisseur noplay $0; deconnaisseur play $0; say deconnaisseur: encore";
+  hung = "msg Hung";
+  "shadobot-hacker" = "msg Shadobot-hacker";
+  headdeask = "me headdesk";
+  hd = "headdeask";
+  historien = "msg historien";
+  salesman = "msg Salesman";
+  orly = "say   ___; say  {o,o}; say  |)__); say  -\"-\"-; say O RLY ?";
+  yarly = "say   ___; say  {-.-}; say  |) (|; say  -\"-\"-; say YA RLY";
+  nowai = "say   ___; say  {0,0}; say  (__(|; say  -\"-\"-; say NO WAI!";
+  slaps = "slap";
+  xwing = "say oo__         _      _          __oo; say    \\\"\\\"\\\"--,,,_(_)_--_(_)_,,,--\\\"\\\"\\\"; say            _>_[____]_<_; say    ___--\\\"\\\"\\\" (_)\\\\__/(_) \\\"\\\"\\\"--___; say oo\\\"\\\"                            \"\"oo;";
+  roissy = "say              ___ ; say             /L|0\\\\ ; say            /  |  \\\\ ; say           /       \\\\ ; say          /    |    \\\\ ; say         /           \\\\ ; say        /  __  | __   \\\\ ; say       /  __/    \\\\__   \\\\ ; say      /  /__   |  __\\\\   \\\\ ; say     /___________________\\\\ ; say    /          |          \\\\ ; say   /          _|_          \\\\ ; say  /      ____/___\\\\____      \\\\ ; say  ___________[o0o]___________ ; say           O   O    O ; say             ROISSY !";
+  contentlessping = "say $0: You sent me a contentless ping.  This is a contentless pong.  Please provide a bit of  information about what you want and I will respond when I am around.";
+};
+
+statusbar = {
+  # formats:
+  # when using {templates}, the template is shown only if it's argument isn't
+  # empty unless no argument is given. for example {sb} is printed always,
+  # but {sb $T} is printed only if $T isn't empty.
+
+  items = {
+    # start/end text in statusbars
+    barstart = "{sbstart}";
+    barend = "{sbend}";
+
+    topicbarstart = "{topicsbstart}";
+    topicbarend = "{topicsbend}";
+
+    # treated "normally", you could change the time/user name to whatever
+    time = "{sb $Z}";
+    user = "{sb {sbnickmode $cumode}$N{sbmode $usermode}{sbaway $A}}";
+
+    # treated specially .. window is printed with non-empty windows,
+    # window_empty is printed with empty windows
+    window = "{sb $winref:$tag/$itemname{sbmode $M}}";
+    window_empty = "{sb $winref{sbservertag $tag}}";
+    prompt = "{prompt $[.15]itemname}";
+    prompt_empty = "{prompt $winname}";
+    topic = " $topic";
+    topic_empty = " Irssi v$J - http://www.irssi.org";
+
+    # all of these treated specially, they're only displayed when needed
+    lag = "{sb Lag: $0-}";
+    act = "{sb Act: $0-}";
+    more = "-- more --";
+  };
+
+  # there's two type of statusbars. root statusbars are either at the top
+  # of the screen or at the bottom of the screen. window statusbars are at
+  # the top/bottom of each split window in screen.
+  default = {
+    # the "default statusbar" to be displayed at the bottom of the window.
+    # contains all the normal items.
+    window = {
+      disabled = "no";
+
+      # window, root
+      type = "window";
+      # top, bottom
+      placement = "bottom";
+      # number
+      position = "1";
+      # active, inactive, always
+      visible = "active";
+
+      # list of items in statusbar in the display order
+      items = {
+        barstart = { priority = "100"; };
+        time = { };
+        user = { };
+        window = { };
+        window_empty = { };
+        lag = { priority = "-1"; };
+        act = { priority = "10"; };
+        more = { priority = "-1"; alignment = "right"; };
+        barend = { priority = "100"; alignment = "right"; };
+      };
+    };
+
+    # statusbar to use in inactive split windows
+    window_inact = {
+      type = "window";
+      placement = "bottom";
+      position = "1";
+      visible = "inactive";
+      items = {
+        barstart = { priority = "100"; };
+        window = { };
+        window_empty = { };
+        more = { priority = "-1"; alignment = "right"; };
+        barend = { priority = "100"; alignment = "right"; };
+      };
+    };
+
+    # we treat input line as yet another statusbar :) It's possible to
+    # add other items before or after the input line item.
+    prompt = {
+      type = "root";
+      placement = "bottom";
+      # we want to be at the bottom always
+      position = "100";
+      visible = "always";
+      items = {
+        prompt = { priority = "-1"; };
+        prompt_empty = { priority = "-1"; };
+        # treated specially, this is the real input line.
+        input = { priority = "10"; };
+      };
+    };
+
+    # topicbar
+    topic = {
+      type = "root";
+      placement = "top";
+      position = "1";
+      visible = "always";
+      items = {
+        topicbarstart = { priority = "100"; };
+        topic = { };
+        topic_empty = { };
+        topicbarend = { priority = "100"; alignment = "right"; };
+      };
+    };
+  };
+};
+
+
+# Configuration personnelle
+settings = {
+  core = {
+    # À remplacer par vos vrais prénom et nom
+    # Permet à un utilisateur qui utilise /whois de savoir qui vous êtes
+    real_name = "Prénom Nom";
+    user_name = "logincCr@ns";
+    # Le pseudo avec lequel vous apparaissez sur les channels
+    nick = "Pseudo";
+    # Affichage de la date avec les secondes dans les logs
+    log_timestamp = "%H:%M:%S";
+    # Affichage de la date avec les secondes sur l'interface d'irssi
+    timestamp_format = "%H:%M:%S";
+    # Le message que vous enverrez sur tous les channels en quittant irssi
+    quit_message = "Bye ! ;-)";
+    log_close_string = "--- Log closed %Y-%m-%d %H:%M:%S";
+    log_open_string = "--- Log opened %Y-%m-%d %H:%M:%S";
+    log_day_changed = "--- Day changed %Y-%m-%d";
+    awaylog_level = "msgs never";
+  };
+  "fe-text" = { actlist_sort = "refnum"; };
+  "fe-common/core" = {
+    autolog_level = "ALL";
+    autolog_path = "~/.irssi/logs/$tag/%Y/%m/$0.log";
+    autolog = "yes";
+  };
+  "irc/core" = { join_auto_chans_on_invite = "yes"; };
+};
+logs = { };
+#~# Pour changer le binding de certaines touches
+#~# keyboard = (
+#~#   { key = "meta-q"; id = "active_window"; data = ""; },
+#~#   { key = "meta-a"; id = "change_window"; data = "11"; },
+#~#   { key = "meta-z"; id = "change_window"; data = "12"; },
+#~#   { key = "meta-p"; id = "change_window"; data = "20"; }
+#~# );
+ignores = ( );