1
0
mirror of https://github.com/frebib/dotfiles.git synced 2024-06-14 12:57:23 +00:00

6 Commits

Author SHA1 Message Date
ba8dc84993 xprofile: load xmodmap on Xorg startup 2020-03-21 22:17:37 +00:00
757bd4c26d systemd: launch i3 and user programs with systemd 2020-03-21 21:29:21 +00:00
d96ffc16ff aliases: add gdni/gbl. use --keep with gundo 2020-03-21 21:29:11 +00:00
2598df0f17 aliases: make git-log/git-show aliases consistent
Show patches and stats in appropriate places
2020-03-21 21:29:11 +00:00
d251f3e23a dunst: use full html-like markup
Strip all trailing whitespace from the configuration file
2020-03-21 21:29:11 +00:00
0d5e1a92c9 i3: remove unused alt-tab script 2020-03-21 21:29:09 +00:00
36 changed files with 217 additions and 103 deletions

View File

@ -15,10 +15,4 @@ xrandr --dpi $(xrdb -query | grep -i xft.dpi | cut -d: -f2)
setxkbmap -option caps:none setxkbmap -option caps:none
xset r rate 200 18 xset r rate 200 18
xmodmap "$XDG_CONFIG_HOME"/X11/xmodmap
# Merge system clipboards
if [ -n "$DISPLAY" ] && exists autocutsel && ! pidof autocutsel 1>/dev/null; then
autocutsel -fork
autocutsel -selection PRIMARY -fork
fi

View File

@ -11,7 +11,7 @@
# <http://developer.gnome.org/pango/stable/PangoMarkupFormat.html>. # <http://developer.gnome.org/pango/stable/PangoMarkupFormat.html>.
# If markup is not allowed, those tags will be stripped out of the # If markup is not allowed, those tags will be stripped out of the
# message. # message.
markup = yes markup = full
# The format of the message. Possible variables are: # The format of the message. Possible variables are:
# %a appname # %a appname

View File

@ -1,19 +0,0 @@
#!/bin/bash
# ================================================================================== #
# Focus the next window on the current workspace in i3, e.g. for binding to Alt+Tab #
# Depends: jq, awk, i3wm (obviously) #
# Author: Nervengift <dev@nerven.gift> #
# License: Don't think this deserves a license, Public Domain #
# Known bugs: doesn't work with non-window container focused #
# ================================================================================== #
ws=$(i3-msg -t get_workspaces|jq "map(select(.focused))[]|.name")
echo $ws
windows=$(i3-msg -t get_tree|jq ".nodes|map(.nodes[])|map(.nodes[])|map(select(.type==\"workspace\" and .name==$ws))[0].nodes|map(recurse(.nodes[]))|map(.window)|.[]|values")
echo $windows
current=$(i3-msg -t get_tree|jq "recurse(.nodes[])|select(.focused)|.window")
echo $current
if [ "x$current" != "xnull" ]; then
next=$(echo $windows | awk "BEGIN {RS=\" \";FS=\" \"};NR == 1 {w=\$1};{if (f == 1){w=\$1;f=0}else if (\$1 == \"$current\") f=1};END {print w}")
i3-msg [id=$next] focus > /dev/null
fi

View File

@ -107,7 +107,6 @@ client.unfocused $inactive-bg-color $inactive-bg-color $inactive-text-co
client.focused_inactive $inactive-bg-color $inactive-bg-color $inactive-text-color $bg-color client.focused_inactive $inactive-bg-color $inactive-bg-color $inactive-text-color $bg-color
client.urgent $urgent-bg-color $urgent-bg-color $text-color $bg-color client.urgent $urgent-bg-color $urgent-bg-color $text-color $bg-color
exec_always --no-startup-id killall -q polybar; while pgrep -u $UID -x polybar >/dev/null; do sleep 1; done; exec polybar -r i3bar
exec_always --no-startup-id feh --no-fehbg --no-xinerama --bg-fill $DOTFILES/lakesidesunrise.jpg exec_always --no-startup-id feh --no-fehbg --no-xinerama --bg-fill $DOTFILES/lakesidesunrise.jpg
# Window rules # Window rules
@ -130,10 +129,10 @@ focus_follows_mouse yes
# keybindings # keybindings
bindsym $mod+Shift+j reload bindsym $mod+Shift+j reload
bindsym $mod+c exec chromium bindsym $mod+c exec systemd-run --user --scope --slice=chromium.slice --no-block -- chromium
bindsym $mod+b exec systemd-run --user --scope --slice=firefox.slice --no-block -- firefox
bindsym $mod+v exec "i3-sensible-terminal -e \\"$SHELL -c vim;$SHELL\\" bindsym $mod+v exec "i3-sensible-terminal -e \\"$SHELL -c vim;$SHELL\\"
bindsym $mod+Ctrl+v exec "i3-sensible-terminal -r floating-term -e \\"$SHELL -c vim;$SHELL\\" bindsym $mod+Ctrl+v exec "i3-sensible-terminal -r floating-term -e \\"$SHELL -c vim;$SHELL\\"
bindsym Mod1+Tab exec ~/.config/i3/alt-tab.sh
bindsym $mod+Return exec i3-sensible-terminal bindsym $mod+Return exec i3-sensible-terminal
bindsym $mod+Ctrl+Return exec i3-sensible-terminal -r floating-term bindsym $mod+Ctrl+Return exec i3-sensible-terminal -r floating-term
bindsym $mod+Shift+Return exec i3-sensible-terminal -d "`xcwd`" bindsym $mod+Shift+Return exec i3-sensible-terminal -d "`xcwd`"
@ -148,7 +147,7 @@ bindsym --release $mod+Print exec imgur-screenshot
bindsym $mod+$alt+space exec --no-startup-id ~/.config/i3/cycleaudio.py && pkill -RTMIN+10 i3blocks bindsym $mod+$alt+space exec --no-startup-id ~/.config/i3/cycleaudio.py && pkill -RTMIN+10 i3blocks
bindsym $mod+numbersign exec "i3-sensible-terminal -e 'sh -c xclip\ -o\ |\ gpg\ --decrypt\ 2>&1\ \;\ $SHELL'" bindsym $mod+numbersign exec "i3-sensible-terminal -e 'sh -c xclip\ -o\ |\ gpg\ --decrypt\ 2>&1\ \;\ $SHELL'"
bindsym $mod+r exec "bash -c 'pwgen -nc 32 1 | tee >(xargs notify-send Generated\ password\:) | xclip -i'" bindsym $mod+r exec "bash -c 'pwgen -nc 32 1 | tee >(xargs notify-send Generated\ password\:) | xclip -i'"
bindsym $mod+g exec "LINK=$(gist -PRpc); notify-send -c transfer \\"<a href=\\\\"$LINK\\\\">$LINK</a>\\"" bindsym $mod+g exec "LINK=$(gist -PRpc); notify-send -c transfer \\"$LINK\\""
bindsym --release $mod+i exec sh -c 'sleep 0.5 && xdotool type --delay 400 "$(xclip -o -selection clipboard)"' bindsym --release $mod+i exec sh -c 'sleep 0.5 && xdotool type --delay 400 "$(xclip -o -selection clipboard)"'
# Media player controls # Media player controls
@ -163,25 +162,4 @@ bindsym XF86AudioMute exec --no-startup-id pactl set-sink-mute @DEFA
bindsym XF86MonBrightnessUp exec xbacklight -inc 5 && pkill -RTMIN+12 i3blocks bindsym XF86MonBrightnessUp exec xbacklight -inc 5 && pkill -RTMIN+12 i3blocks
bindsym XF86MonBrightnessDown exec xbacklight -dec 5 && pkill -RTMIN+12 i3blocks bindsym XF86MonBrightnessDown exec xbacklight -dec 5 && pkill -RTMIN+12 i3blocks
# app launch shortcuts
exec --no-startup-id ~/.config/i3/disable-standby-fs.py
exec --no-startup-id feh --no-fehbg --no-xinerama --bg-fill ~/pictures/lakesidesunrise.jpg
exec --no-startup-id xautolock -time 5 -locker 'dm-tool switch-to-greeter' -nocloseout -nocloseerr
exec --no-startup-id xss-lock dm-tool switch-to-greeter
# startup programs
exec --no-startup-id nextcloud
exec --no-startup-id blueman-applet
exec --no-startup-id redshift
exec --no-startup-id xbindkeys
exec --no-startup-id solaar
exec --no-startup-id pullover
exec --no-startup-id mailnag
exec --no-startup-id picom -b --experimental-backends
exec --no-startup-id chromium --no-startup-window
exec --no-startup-id thunderbird
exec i3-msg 'workspace 1; exec sleep 2 && chromium'
exec i3-msg 'workspace 2; exec i3-sensible-terminal'
# vim:ft=i3 # vim:ft=i3

View File

@ -0,0 +1,10 @@
[Unit]
Description=autocutsel -selection primary
PartOf=graphical-session.target
[Service]
ExecStart=/usr/bin/autocutsel -selection PRIMARY
[Install]
WantedBy=graphical-session.target

View File

@ -0,0 +1,10 @@
[Unit]
Description=autocutsel
PartOf=graphical-session.target
[Service]
ExecStart=/usr/bin/autocutsel
[Install]
WantedBy=graphical-session.target

View File

@ -0,0 +1 @@
/home/frebib/.config/systemd/user/profile.service

View File

@ -0,0 +1,12 @@
[Unit]
Description=Bluetooth Applet
After=graphical-session.target bluetooth.service
Requires=graphical-session.target bluetooth.service
[Service]
Type=simple
ExecStart=/usr/bin/blueman-applet
Restart=on-failure
[Install]
WantedBy=desktop.target

View File

@ -0,0 +1 @@
/usr/lib/systemd/user/basic.target

View File

@ -0,0 +1 @@
/usr/lib/systemd/user/dunst.service

View File

@ -0,0 +1 @@
/usr/lib/systemd/user/redshift.service

View File

@ -0,0 +1 @@
/home/frebib/.config/systemd/user/blueman-applet.service

View File

@ -0,0 +1 @@
/usr/lib/systemd/user/dunst.service

View File

@ -0,0 +1 @@
/home/frebib/.config/systemd/user/nextcloud.service

View File

@ -0,0 +1 @@
/home/frebib/.config/systemd/user/picom.service

View File

@ -0,0 +1 @@
/home/frebib/.config/systemd/user/polybar@.service

View File

@ -0,0 +1 @@
/home/frebib/.config/systemd/user/solaar.service

View File

@ -0,0 +1 @@
/usr/lib/systemd/user/xdg-user-dirs-update.service

View File

@ -0,0 +1 @@
/home/frebib/.config/systemd/user/autocutsel-primary.service

View File

@ -0,0 +1 @@
/home/frebib/.config/systemd/user/autocutsel.service

View File

@ -0,0 +1 @@
/home/frebib/.config/systemd/user/i3.service

View File

@ -0,0 +1,14 @@
[Unit]
Description=i3 - an improved dynamic, tiling window manager
Requires=xorg.target
Before=graphical-session.target
After=profile.service xprofile.service xorg.target
[Service]
ExecStart=/usr/bin/i3
ExecReload=/bin/sh -c 'i3-msg restart; systemctl is-active --user -q picom && systemctl --user restart picom'
ExecStop=/bin/systemctl --user stop desktop.target
Restart=always
[Install]
WantedBy=graphical-session.target

View File

@ -0,0 +1,14 @@
[Unit]
Description=Nextcloud Client
Requires=graphical-session.target
After=graphical-session.target
[Service]
Type=simple
ExecStart=/usr/bin/nextcloud --background
ExecReload=/bin/kill -HUP $MAINPID
KillMode=process
Restart=on-failure
[Install]
WantedBy=desktop.target

View File

@ -0,0 +1,12 @@
[Unit]
Description=A lightweight compositor for X11
Requires=graphical-session.target
After=graphical-session.target xorg.target
[Service]
Type=simple
ExecStart=/usr/bin/picom --experimental-backends --dbus
Restart=always
[Install]
WantedBy=desktop.target

View File

@ -0,0 +1,12 @@
[Unit]
Description=Polybar
Requires=graphical-session.target
After=graphical-session.target pulseaudio.socket
[Service]
Type=simple
ExecStart=/usr/bin/polybar --reload --log=warning %i
Restart=always
[Install]
WantedBy=desktop.target

View File

@ -0,0 +1,10 @@
[Unit]
Description=Load profile environment into session
Before=graphical-session-pre.target
[Service]
Type=oneshot
ExecStart=/usr/bin/bash -c '. $HOME/.config/dotfiles/.profile && systemctl --user import-environment'
[Install]
WantedBy=basic.target

View File

@ -1,5 +1,6 @@
[Unit] [Unit]
Description=Lock X LightDM session before sleeping Description=Lock X LightDM session before sleeping
Requires=graphical-session.target
Before=sleep.target Before=sleep.target
[Service] [Service]

View File

@ -1 +1 @@
../sleep-lock-lightdm.service /home/frebib/.config/systemd/user/sleep-lock-lightdm.service

View File

@ -0,0 +1,13 @@
[Unit]
Description=Solaar Logitech status applet
Requires=graphical-session.target
After=graphical-session.target
[Service]
Type=simple
ExecStart=/usr/bin/solaar --restart-on-wake-up -d
KillMode=process
Restart=on-failure
[Install]
WantedBy=desktop.target

View File

@ -0,0 +1,10 @@
[Unit]
Description=XBindKeys
[Service]
ExecStart=/usr/bin/xautolock -time 1 -locker 'dm-tool switch-to-greeter' -detectsleep -resetsaver -secure
KillMode=process
Restart=on-failure
[Install]
WantedBy=graphical-session.target

View File

@ -0,0 +1,11 @@
[Unit]
Description=XBindKeys
Requires=profile.service
After=profile.service
[Service]
ExecStart=/usr/bin/xbindkeys -n -f $XDG_CONFIG_HOME/X11/xbindkeysrc
KillMode=process
[Install]
WantedBy=graphical-session.target

View File

@ -0,0 +1,3 @@
[Unit]
Description=Graphical desktop environment
Requires=basic.target

View File

@ -0,0 +1 @@
/home/frebib/.config/systemd/user/xprofile.service

View File

@ -0,0 +1,13 @@
[Unit]
Description=Load Xorg configuration
PartOf=xorg.target
Requires=profile.service
After=xorg.target profile.service
[Service]
Type=oneshot
RemainAfterExit=yes
ExecStart=/usr/bin/bash -cx '. $XDG_CONFIG_HOME/X11/xprofile && systemctl --user import-environment'
[Install]
WantedBy=xorg.target

View File

@ -43,18 +43,14 @@ export PATH="${PATH}:/sbin:/usr/sbin:$DOTFILES/scripts:$GOPATH/bin"
exists() { which $@ 0<&- 1>/dev/null 2>/dev/null; } exists() { which $@ 0<&- 1>/dev/null 2>/dev/null; }
if [ -z "$DBUS_SESSION_BUS_ADDRESS" ] && exists dbus-launch; then
eval $(dbus-launch --sh-syntax --exit-with-session)
fi
# Execute this after updating dbus/systemd environment
# Source secret keys and values into environment # Source secret keys and values into environment
if [ -f "$XDG_CONFIG_HOME/secrets" ]; then if [ -f "$XDG_CONFIG_HOME/secrets" ]; then
set -o allexport set -o allexport
source $XDG_CONFIG_HOME/secrets source $XDG_CONFIG_HOME/secrets
set +o allexport set +o allexport
fi fi
# Start a dbus session daemon for programs that require it
if [ -z "$DBUS_SESSION_BUS_ADDRESS" ] && exists dbus-launch; then
eval $(dbus-launch --sh-syntax --exit-with-session)
dbus-update-activation-environment --systemd \
DBUS_SESSION_BUS_ADDRESS DISPLAY XAUTHORITY \
XDG_SEAT_PATH
fi

19
aliases
View File

@ -105,7 +105,9 @@ mcd(){ mkdir -p -- $@ && cd -- $@; }
randstr() { tr -dc 'a-zA-Z0-9' < /dev/urandom | fold -w $1 | head -n 1; } randstr() { tr -dc 'a-zA-Z0-9' < /dev/urandom | fold -w $1 | head -n 1; }
# System aliases # System aliases
alias s="sudo systemctl" alias sc="systemctl"
alias ssc="sudo systemctl"
alias scu="systemctl --user"
alias j=journalctl alias j=journalctl
alias ps='ps aux' alias ps='ps aux'
alias catn='tail -n +1 --' alias catn='tail -n +1 --'
@ -154,16 +156,19 @@ alias gpall="git remote | xargs -L1 git push"
alias gl="git pull --rebase" alias gl="git pull --rebase"
alias glp="gl && gp" alias glp="gl && gp"
alias gd="git diff --patch-with-stat" alias gd="git diff --patch-with-stat"
alias gdni="gd --no-index"
alias gds="gd --staged" alias gds="gd --staged"
alias gsh="git show --format=full --patch-with-stat" alias gsh="git show --format=fuller --patch-with-stat"
alias glg="git log --format=full --stat --color" alias glg="git log --color --format=fuller --stat"
alias glog="git log --oneline --decorate --color --graph" alias glgp="git log --color --format=fuller --patch-with-stat"
alias glog="git log --color --oneline --decorate --graph"
alias grst="git reset" alias grst="git reset"
alias gundo="git reset @~1" alias gundo="git reset --keep @~1"
alias gclean="git clean" alias gclean="git clean"
alias gbr="git branch" alias gbr="git branch"
alias gtg="git tag" alias gtg="git tag"
alias gbl="git blame"
alias gr="git remote" alias gr="git remote"
alias grv="git remote -v" alias grv="git remote -v"
alias gra="gr add" alias gra="gr add"
@ -287,8 +292,8 @@ alias xinitrc="$EDITOR $XDG_CONFIG_HOME/X11/xinitrc"
alias xresources="$EDITOR $XDG_CONFIG_HOME/X11/xresources ; xrdb merge $XDG_CONFIG_HOME/X11/xresources" alias xresources="$EDITOR $XDG_CONFIG_HOME/X11/xresources ; xrdb merge $XDG_CONFIG_HOME/X11/xresources"
alias sshc="$EDITOR ~/.ssh/config" alias sshc="$EDITOR ~/.ssh/config"
alias dotfiles="cd $DOTFILES" alias dotfiles="cd $DOTFILES"
alias i3c="$EDITOR $XDG_CONFIG_HOME/i3/config ; i3-msg restart" alias i3c="$EDITOR $XDG_CONFIG_HOME/i3/config; systemctl --user reload i3"
alias polybarc="$EDITOR $XDG_CONFIG_HOME/polybar/config; killall -q polybar; while pgrep -u $UID -x polybar >/dev/null; do sleep 1; done; exec polybar -r i3bar" alias polybarc="$EDITOR $XDG_CONFIG_HOME/polybar/config; systemctl --user restart polybar@i3bar"
alias sf=screenfetch alias sf=screenfetch
alias nf=neofetch alias nf=neofetch