diff --git a/.config/i3/config b/.config/i3/config index 9e10800..bef494a 100644 --- a/.config/i3/config +++ b/.config/i3/config @@ -1,3 +1,4 @@ +# i3 Settings ################################################################## set $mod Mod4 # This font is widely installed, provides lots of unicode glyphs, right-to-left @@ -7,22 +8,24 @@ font pango:DejaVu Sans Mono 10 # Use Mouse+$mod to drag floating windows to their wanted position floating_modifier $mod -# start a terminal -# set $TERMINAL kitty -# bindsym $mod+Return exec i3-sensible-terminal -# bindsym $mod+Return exec kitty -# bindsym $mod+Return exec gnome-terminal --hide-menubar -bindsym $mod+Return exec st -d "$(xcwd)" -bindsym $mod+Shift+Return exec st +default_border pixel 1 +hide_edge_borders smart + +set $TERMINAL st + +# Keybindins ################################################################### + +# Terminal +bindsym $mod+Return exec $TERMINAL -d "$(xcwd)" +bindsym $mod+Shift+Return exec $TERMINAL + +# Program launcher +bindsym $mod+d exec rofi -show drun +bindsym $mod+Shift+d exec dmenu_run # kill focused window bindsym $mod+Shift+q kill -# start dmenu (a program launcher) -bindsym $mod+Shift+d exec dmenu_run - -bindsym $mod+d exec rofi -show drun - # change focus focus_wrapping no bindsym $mod+h focus left @@ -115,7 +118,7 @@ mode "resize" { # Set window size to predefined values # firefox anti fingerprinting bindsym p resize set 1920 1080 - # scratchpad default size + # scratchpad-terminal default size bindsym s resize set 1600 900 # "fullscreen" bindsym f resize set 3200 1770 @@ -132,16 +135,6 @@ mode "resize" { bindsym $mod+r mode "resize" -exec_always --no-startup-id ~/.config/i3/monitor-setup.sh & - -# Touchpad configuration -# Find touchpad: `xinput list` -# Find options: `xinput list-props $touchpad` -set $touchpad DLL082A:01 06CB:76AF Touchpad -exec xinput set-prop "$touchpad" "libinput Tapping Enabled" 1 -exec xinput set-prop "$touchpad" "libinput Natural Scrolling Enabled" 1 -exec xinput set-prop "$touchpad" "libinput Accel Speed" 0.45 - # Brightness controls (/etc/X11/xorg.conf necessary) bindsym XF86MonBrightnessDown exec xbacklight -dec 5 bindsym XF86MonBrightnessUp exec xbacklight -inc 5 @@ -151,45 +144,34 @@ bindsym XF86MonBrightnessUp exec xbacklight -inc 5 bindsym XF86AudioRaiseVolume exec --no-startup-id amixer -q -D pulse sset Master 5%+ bindsym XF86AudioLowerVolume exec --no-startup-id amixer -q -D pulse sset Master 5%- bindsym XF86AudioMute exec --no-startup-id amixer -q -D pulse sset Master toggle-mute -# volume at startup -exec amixer -q -D pulse sset Master mute -default_border pixel 1 -hide_edge_borders smart - -# Power +# Lock bindsym $mod+mod1+l exec xset s activate +# Start powermenu bindsym $mod+p exec ~/.config/rofi/powermenu.sh & -exec --no-startup-id xss-lock -l ~/.config/xsecurelock/transfer-sleep-lock.sh & - -# Wallpaper -exec_always feh --bg-scale --no-fehbg ~/Pictures/Wallpapers/wallpaper # Notify when toggling airplane mode bindsym XF86RFKill exec --no-startup-id ~/.config/i3/airplane-mode-notify.sh -# compositor for transparency and blur -exec --no-startup-id ~/.config/compositor/launch.sh - -# scratchpad-terminal -for_window [class="st-256color" title="^scratchpad-terminal$"] \ - move scratchpad, \ - sticky enable, \ - scratchpad show, \ - resize set 1600 900, \ - border none, \ - move position center -# Hide scratchpad-terminal again when restarting i3 -exec_always i3-msg '[class="St" title="^scratchpad-terminal$"] scratchpad show' -# Show scratchpad-terminal or create one if none exists. -# Pass current working directory of the focused window but escape spaces. -bindsym $mod+comma exec ~/.config/i3/scratchpad-terminal.sh -s -c st-256color -n scratchpad-terminal -e "st -A 0.45 -d $(xcwd | sed 's/ /\\\\ /g')" -# hide scratchpad-terminal indepedent of where the focus sits -bindsym $mod+Shift+comma exec ~/.config/i3/scratchpad-terminal.sh -h -c st-256color -n scratchpad-terminal - bindsym $mod+Shift+m move scratchpad bindsym $mod+Shift+o scratchpad show + +# scratchpad-terminal +for_window [class="^$TERMINAL-256color$" title="^scratchpad-terminal$"] \ + move scratchpad, \ + scratchpad show, \ + sticky enable, \ + border none, \ + resize set 1600 900, \ + move position center +# Toggle the scratchpad-terminal or create a new one if none exists. +bindsym $mod+comma exec i3-msg '[class="^$TERMINAL-256color$" title="^scratchpad-terminal$"] scratchpad show' || $TERMINAL -A 0.45 -d "$(xcwd)" -c $TERMINAL-256color -t scratchpad-terminal + bindsym $mod+Shift+s [class="^Spotify$"] scratchpad show + +for_window [class="^TelegramDesktop$"] \ + move scratchpad, \ + scratchpad show bindsym $mod+Shift+t [class="^TelegramDesktop$"] scratchpad show # screenshots @@ -199,11 +181,39 @@ bindsym --release $mod+Print exec gnome-screenshot -a # Zoom links in private browser bindsym $mod+z exec ~/.local/bin/zoom-links -# Keyboard layout -# German layout without dead keys and escape and capslock switched. -# exec setxkbmap de nodeadkeys -option 'caps:swapescape' -# German layout without dead keys + custom keymap changes + Control_R is escape when pressed alone and shortly -exec /bin/sh -c "setxkbmap de nodeadkeys -option && xmodmap ~/.Xmodmap && xcape -t 250 -e 'Control_R=Escape'" +# Setup different stuff ######################################################## +# Multi monitor support +exec_always --no-startup-id ~/.config/i3/monitor-setup.sh & + +# Start locker +exec --no-startup-id xss-lock -l ~/.config/xsecurelock/transfer-sleep-lock.sh & + +# Compositor for transparency and blur +exec --no-startup-id ~/.config/compositor/launch.sh + +# Touchpad configuration +# Find touchpad: `xinput list` +# Find options: `xinput list-props $touchpad` +set $touchpad DLL082A:01 06CB:76AF Touchpad +exec xinput set-prop "$touchpad" "libinput Tapping Enabled" 1 +exec xinput set-prop "$touchpad" "libinput Natural Scrolling Enabled" 1 +exec xinput set-prop "$touchpad" "libinput Accel Speed" 0.45 + +# Keyboard Setup +# German layout without dead keys +exec setxkbmap de nodeadkeys -option +# Custom keymap (switches escape, control_r and caps_lock around) +exec xmodmap ~/.Xmodmap +# Control_R act as Escape when pressed alone and shortly +exec xcape -t 250 -e 'Control_R=Escape' +# Faster key repeat rate +exec xset r rate 500 25 + +# Muted at startup +exec amixer -q -D pulse sset Master mute + +# Wallpaper +exec_always feh --bg-scale --no-fehbg ~/Pictures/Wallpapers/wallpaper # Restore GNOME's settings exec --no-startup-id /usr/libexec/gnome-settings-daemon-localeexec @@ -215,5 +225,7 @@ exec --no-startup-id dconf write /org/gnome/settings-daemon/plugins/cursor/activ exec --no-startup-id gnome-keyring-daemon --start # Focus should not follow mouse -# This is sometimes usefull when picking colors on the screen in combination with deactivated dim +# This is sometimes useful when picking colors on the screen in combination with deactivated dim # focus_follows_mouse no + +# vim: ft=i3 diff --git a/.config/i3/scratchpad-terminal.sh b/.config/i3/scratchpad-terminal.sh deleted file mode 100755 index 4e43e6a..0000000 --- a/.config/i3/scratchpad-terminal.sh +++ /dev/null @@ -1,60 +0,0 @@ -#!/bin/sh - -exec >/dev/null - -while getopts "c:e:hn:s" FLAGS; do - case "$FLAGS" in - c) W_CLASS="$OPTARG";; - e) COMMAND="$OPTARG";; - h) HIDE=1;; - n) W_NAME="$OPTARG";; - s) SHOW=1;; - *) exit 1;; - esac -done -shift $(($OPTIND - 1)) - -[ -n "$W_CLASS" ] || return 1 -[ -n "$W_NAME" ] || return 1 -[ -z "$SHOW" ] || [ -n "$COMMAND" ] || return 1 - -TREE="$(i3-msg -t get_tree)" -if ! (echo "$TREE" | grep -Po "\"name\":\"${W_NAME}\".*?class\":\"$W_CLASS\".*?floating\":\"[^\"]*\"" \ - | grep -q '"floating":"user_on"') -then - EXIST_NOT=1 -elif (echo "$TREE" | grep -Po '"focused":true.*?name":"[^"]*"' \ - | grep -q "\"name\":\"${W_NAME}\"") -then - FOCUS_ON_PAD=1 -elif [ ! $EXIST_NOT ] && (echo "$TREE" | grep -Po '"output":"__i3".*?"name":"[^"]*"' \ - | grep -q "\"name\":\"${W_NAME}\"") -then - HIDDEN=1 -fi - -if [ $HIDE ] && [ ! $EXIST_NOT ] && [ ! $HIDDEN ]; then - # There is a visible scratchpad-terminal that shall be hidden - i3-msg "[class=\"$W_CLASS\" title=\"^${W_NAME}$\"] scratchpad show" - exit 0 -fi - -if [ $SHOW ]; then - if [ $EXIST_NOT ]; then - # terminal does not exist yet - WORKSPACE="$(i3-msg -t get_workspaces | jq '.[] | select(.focused==true).name' | tr -d '"')" - i3-msg "workspace $W_NAME" - eval env SCRATCHPAD_TERMINAL=1 $COMMAND & - # Sleep for a very short time until the window is ready (floating, etc.) - # TODO: Dirty hack! Find something better. - sleep 0.1 - i3-msg "workspace $WORKSPACE" - elif [ $HIDDEN ]; then - # terminal is "hidden" in scratchpad - i3-msg "[class=\"$W_CLASS\" title=\"^${W_NAME}$\"] scratchpad show" - elif [ ! $FOCUS_ON_PAD ]; then - # terminal is visible but focus lays somewhere else - i3-msg "[class=\"$W_CLASS\" title=\"^${W_NAME}$\"] scratchpad show, scratchpad show" - fi - exit 0 -fi diff --git a/.config/zsh/.zshrc b/.config/zsh/.zshrc index c6d4644..feb08cd 100644 --- a/.config/zsh/.zshrc +++ b/.config/zsh/.zshrc @@ -1,9 +1,6 @@ ## Author: druckdev ## Created: 2018-11-23 -# Set terminals title if this is a scratchpad-terminal -[[ -z "$SCRATCHPAD_TERMINAL" ]] || printf "\x1b\x5d\x30\x3bscratchpad-terminal\x07" - # Enable Powerlevel10k instant prompt. Should stay close to the top of ~/.config/zsh/.zshrc. # Initialization code that may require console input (password prompts, [y/n] # confirmations, etc.) must go above this block; everything else may go below.