From 86488e33f9f4cad31d99fb9ebfc1913bc22609e9 Mon Sep 17 00:00:00 2001 From: Florian Fischer Date: Fri, 5 May 2017 19:41:31 +0200 Subject: improve session configuration and autostart X 1. Add checks for the exported variables in config.fish 2. Autostart X if no server is running and we are on tty1 3. Move Xsession managment stuff to .xprofile --- config/fish/config.fish | 33 ++++++++++++++++++--------- setup.py | 3 ++- xinitrc | 59 +++--------------------------------------------- xprofile | 60 +++++++++++++++++++++++++++++++++++++++++++++++++ 4 files changed, 87 insertions(+), 68 deletions(-) create mode 100644 xprofile diff --git a/config/fish/config.fish b/config/fish/config.fish index 26e22fd..b0014ee 100644 --- a/config/fish/config.fish +++ b/config/fish/config.fish @@ -10,7 +10,7 @@ if type -q multirust end #include go binaries -set -x GOPATH ~/Desktop/projects/go +not set -q GOPATH; and set -x GOPATH ~/Desktop/projects/go if not contains $GOPATH/bin $PATH set PATH $GOPATH/bin $PATH @@ -35,26 +35,32 @@ set -x DOTFILES_LOCATION (get_dotfiles_location) set fish_function_path $DOTFILES_LOCATION/config/fish/functions $fish_function_path set fish_complete_path $DOTFILES_LOCATION/config/fish/completions $fish_complete_path - # add git-alias subdirectory to functions path set fish_function_path $DOTFILES_LOCATION/config/fish/functions/git-alias $fish_function_path - set -x __fish_git_prompt_show_informative_status true -set -x MPD_PORT 6601 +not set -q MPD_PORT; and set -x MPD_PORT 6601 -if type -q vis -set -x EDITOR vis -else -set -x EDITOR vim +if not set -q EDITOR + if type -q vis + set -x EDITOR vis + else if type -q vim + set -x EDITOR vim + end end -set -x VISUAL $EDITOR +not set -q VISUAL; and set -q EDITOR; set -x VISUAL $EDITOR -set -x BROWSER qutebrowser +not set -q SSH_KEY_PATH; and set -x SSH_KEY_PATH $HOME/.ssh/rsa_id -set -x SSH_KEY_PATH $HOME/.ssh/rsa_id +# start ssh-agent +if not pgrep ssh-agent >/dev/null + not set -q SSH_AUTH_SOCK; set -x SSH_AUTH_SOCK ~/.ssh/agent.sock + test -e $SSH_AUTH_SOCK; and rm $SSH_AUTH_SOCK + set out (ssh-agent -a $SSH_AUTH_SOCK) + set -U SSH_AGENT_PID (string replace ";" "" (string split " " $out)[-1]) +end # set yaourt specific VARS if type -q yaourt @@ -66,3 +72,8 @@ if type -q yaourt end end +#start xsession +if not set -q DISPLAY; and test "$XDG_VTNR" = "1" + startx ~/.xinitrc +end + diff --git a/setup.py b/setup.py index 73a5beb..c7e2f42 100755 --- a/setup.py +++ b/setup.py @@ -94,8 +94,9 @@ targets = { [("config/vis", home_dir + "/.config/vis")], "ssh-config": [("ssh/config", home_dir + "/.ssh/config")], - "xinitrc": + "X": [("xinitrc", home_dir + "/.xinitrc"), + ("xprofile", home_dir + "/.xprofile"), dotfile_loc_helper], "Xresources": [("Xresources", home_dir + "/.Xresources")], diff --git a/xinitrc b/xinitrc index 63838e3..952a424 100644 --- a/xinitrc +++ b/xinitrc @@ -1,59 +1,6 @@ #!/bin/bash -# Set my favorite terminal -if type st >/dev/null 2>/dev/null -then - export TERMINAL=st -elif type urxvt >/dev/null 2>/dev/null -then - export TERMINAL=urxvt -elif type terminator >/dev/null 2>/dev/null -then - export TERMINAL=terminator -fi +[ -f /etc/xprofile ] && . /etc/xprofile +[ -f ~/.xprofile ] && . ~/.xprofile -# agetty unsets passed locale vars. -# See: -# /etc/systemd/system/getty.target.wants/getty@tty1.service -# /usr/lib/systemd/system/getty@.service -# Because of problems with some locales. -# See: -# https://github.com/fish-shell/fish-shell/issues/3092#issuecomment-223154845 -# => Set correct locale. Copied from arch's /etc/profile.d/locale.sh - -if [ -z "$LANG" ]; then - if [ -n "$XDG_CONFIG_HOME" ] && [ -r "$XDG_CONFIG_HOME/locale.conf" ]; then - . "$XDG_CONFIG_HOME/locale.conf" - elif [ -n "$HOME" ] && [ -r "$HOME/.config/locale.conf" ]; then - . "$HOME/.config/locale.conf" - elif [ -r /etc/locale.conf ]; then - . /etc/locale.conf - fi -fi - -LANG=${LANG:-C} -export LANG -[ -n "$LC_CTYPE" ] && export LC_CTYPE -[ -n "$LC_NUMERIC" ] && export LC_NUMERIC -[ -n "$LC_TIME" ] && export LC_TIME -[ -n "$LC_COLLATE" ] && export LC_COLLATE -[ -n "$LC_MONETARY" ] && export LC_MONETARY -[ -n "$LC_MESSAGES" ] && export LC_MESSAGES -[ -n "$LC_PAPER" ] && export LC_PAPER -[ -n "$LC_NAME" ] && export LC_NAME -[ -n "$LC_ADDRESS" ] && export LC_ADDRESS -[ -n "$LC_TELEPHONE" ] && export LC_TELEPHONE -[ -n "$LC_MEASUREMENT" ] && export LC_MEASUREMENT -[ -n "$LC_IDENTIFICATION" ] && export LC_IDENTIFICATION - -# Export DOTFILES_LOCATION (should be exported allready - -if [ -z "$DOTFILES_LOCATION" ]; then - export DOTFILES_LOCATION=$(get_dotfiles_location) -fi - -eval $(ssh-agent -s -a ~/.ssh/agent.sock) - -[[ -f $HOME/.Xresources ]] && xrdb -merge $HOME/.Xresources - -exec i3 -V > $HOME/.i3/log +exec i3 -V > ~/.i3/log \ No newline at end of file diff --git a/xprofile b/xprofile new file mode 100644 index 0000000..91d6b5c --- /dev/null +++ b/xprofile @@ -0,0 +1,60 @@ +#!/bin/bash + +# Set my favorite terminal +if type st >/dev/null 2>/dev/null +then + export TERMINAL=st +elif type urxvt >/dev/null 2>/dev/null +then + export TERMINAL=urxvt +elif type terminator >/dev/null 2>/dev/null +then + export TERMINAL=terminator +fi + +# Set browser +if type qutebrowser >/dev/null 2>/dev/null +then + export BROWSER=qutebrowser +fi + +# agetty unsets passed locale vars. +# See: +# /etc/systemd/system/getty.target.wants/getty@tty1.service +# /usr/lib/systemd/system/getty@.service +# Because of problems with some locales. +# See: +# https://github.com/fish-shell/fish-shell/issues/3092#issuecomment-223154845 +# => Set correct locale. Copied from arch's /etc/profile.d/locale.sh + +#if [ -z "$LANG" ]; then +# if [ -n "$XDG_CONFIG_HOME" ] && [ -r "$XDG_CONFIG_HOME/locale.conf" ]; then +# . "$XDG_CONFIG_HOME/locale.conf" +# elif [ -n "$HOME" ] && [ -r "$HOME/.config/locale.conf" ]; then +# . "$HOME/.config/locale.conf" +# elif [ -r /etc/locale.conf ]; then +# . /etc/locale.conf +# fi +#fi +# +#LANG=${LANG:-C} +#export LANG +#[ -n "$LC_CTYPE" ] && export LC_CTYPE +#[ -n "$LC_NUMERIC" ] && export LC_NUMERIC +#[ -n "$LC_TIME" ] && export LC_TIME +#[ -n "$LC_COLLATE" ] && export LC_COLLATE +#[ -n "$LC_MONETARY" ] && export LC_MONETARY +#[ -n "$LC_MESSAGES" ] && export LC_MESSAGES +#[ -n "$LC_PAPER" ] && export LC_PAPER +#[ -n "$LC_NAME" ] && export LC_NAME +#[ -n "$LC_ADDRESS" ] && export LC_ADDRESS +#[ -n "$LC_TELEPHONE" ] && export LC_TELEPHONE +#[ -n "$LC_MEASUREMENT" ] && export LC_MEASUREMENT +#[ -n "$LC_IDENTIFICATION" ] && export LC_IDENTIFICATION + +# Export DOTFILES_LOCATION (should be already exported by fish) +if [ -z "$DOTFILES_LOCATION" ]; then + export DOTFILES_LOCATION=$(get_dotfiles_location) +fi + +[[ -f $HOME/.Xresources ]] && xrdb -merge $HOME/.Xresources -- cgit v1.2.3