diff --git a/.i3/base.config b/.i3/base.config new file mode 100644 index 0000000..3bb72f7 --- /dev/null +++ b/.i3/base.config @@ -0,0 +1,158 @@ +# General setup +#### + +set $mod Mod4 +set $TERMINAL terminator + +font pango:FontAwesome 11 + +# Use Mouse+$mod to drag floating windows to their wanted position +floating_modifier $mod + +focus_follows_mouse no +mouse_warping none +workspace_auto_back_and_forth yes +#force_display_urgency_hint 500 ms + +# +# +# Key bindings +#### + +# start a terminal +bindsym $mod+Return exec $TERMINAL + +# kill focused window +bindsym $mod+Shift+q kill + +# start dmenu (a program launcher) +bindsym $mod+d exec dmenu_run +bindsym $mod+Shift+d exec --no-startup-id i3-dmenu-desktop + +# change focus +bindsym $mod+j focus left +bindsym $mod+k focus down +bindsym $mod+l focus up +bindsym $mod+semicolon focus right + +# alternatively, you can use the cursor keys: +bindsym $mod+Left focus left +bindsym $mod+Down focus down +bindsym $mod+Up focus up +bindsym $mod+Right focus right + +# move focused window +bindsym $mod+Shift+j move left +bindsym $mod+Shift+k move down +bindsym $mod+Shift+l move up +bindsym $mod+Shift+semicolon move right + +# alternatively, you can use the cursor keys: +bindsym $mod+Shift+Left move left +bindsym $mod+Shift+Down move down +bindsym $mod+Shift+Up move up +bindsym $mod+Shift+Right move right + +# split in horizontal orientation +bindsym $mod+h split h + +# split in vertical orientation +bindsym $mod+v split v + +# enter fullscreen mode for the focused container +bindsym $mod+f fullscreen toggle + +# change container layout (stacked, tabbed, toggle split) +bindsym $mod+s layout stacking +bindsym $mod+w layout tabbed +bindsym $mod+e layout toggle split + +# toggle tiling / floating +bindsym $mod+Shift+space floating toggle + +# change focus between tiling / floating windows +bindsym $mod+space focus mode_toggle + +# focus the parent container +bindsym $mod+a focus parent + +# focus the child container +#bindsym $mod+d focus child + +# switch to workspace +bindsym $mod+1 workspace number $w1 +bindsym $mod+2 workspace number $w2 +bindsym $mod+3 workspace number $w3 +bindsym $mod+4 workspace number $w4 +bindsym $mod+5 workspace number $w5 +bindsym $mod+6 workspace number $w6 +bindsym $mod+7 workspace number $w7 +bindsym $mod+8 workspace number $w8 +bindsym $mod+9 workspace number $w9 +bindsym $mod+0 workspace number $w10 + +# move focused container to workspace +bindsym $mod+Shift+1 move container to workspace number $w1 +bindsym $mod+Shift+2 move container to workspace number $w2 +bindsym $mod+Shift+3 move container to workspace number $w3 +bindsym $mod+Shift+4 move container to workspace number $w4 +bindsym $mod+Shift+5 move container to workspace number $w5 +bindsym $mod+Shift+6 move container to workspace number $w6 +bindsym $mod+Shift+7 move container to workspace number $w7 +bindsym $mod+Shift+8 move container to workspace number $w8 +bindsym $mod+Shift+9 move container to workspace number $w9 +bindsym $mod+Shift+0 move container to workspace number $w10 + +bindsym $mod+o move workspace to output right + +# reload the configuration file +bindsym $mod+Shift+c reload +# restart i3 inplace (preserves your layout/session, can be used to upgrade i3) +bindsym $mod+Shift+r restart +# exit i3 (logs you out of your X session) +bindsym $mod+Shift+e exec "i3-nagbar -t warning -m 'You pressed the exit shortcut. Do you really want to exit i3? This will end your X session.' -b 'Yes, exit i3' 'i3-msg exit'" + +# +# +# Define modes +#### + +set $mode_system System (l) lock, (e) logout, (s) suspend, (h) hibernate, (r) reboot, (Shift+s) shutdown +mode "$mode_system" { + bindsym l exec --no-startup-id .i3/i3exit.sh lock, mode "default" + bindsym e exec --no-startup-id .i3/i3exit.sh logout, mode "default" + bindsym s exec --no-startup-id .i3/i3exit.sh suspend, mode "default" + bindsym h exec --no-startup-id .i3/i3exit.sh hibernate, mode "default" + bindsym r exec --no-startup-id .i3/i3exit.sh reboot, mode "default" + bindsym Shift+s exec --no-startup-id .i3/i3exit.sh shutdown, mode "default" + + # back to normal: Enter or Escape + bindsym Return mode "default"; exec sh .i3/lemonbar/set_mode.sh mode normal + bindsym Escape mode "default"; exec sh .i3/lemonbar/set_mode.sh mode normal +} + +# resize window (you can also use the mouse for that) +mode "resize" { + # These bindings trigger as soon as you enter the resize mode + + # Pressing left will shrink the window’s width. + # Pressing right will grow the window’s width. + # Pressing up will shrink the window’s height. + # Pressing down will grow the window’s height. + bindsym h resize shrink width 10 px or 10 ppt + bindsym k resize grow height 10 px or 10 ppt + bindsym j resize shrink height 10 px or 10 ppt + bindsym l resize grow width 10 px or 10 ppt + + # same bindings, but for the arrow keys + bindsym Left resize shrink width 10 px or 10 ppt + bindsym Up resize grow height 10 px or 10 ppt + bindsym Down resize shrink height 10 px or 10 ppt + bindsym Right resize grow width 10 px or 10 ppt + + # back to normal: Enter or Escape + bindsym Return mode "default" + bindsym Escape mode "default" +} + +bindsym $mod+r mode "resize" diff --git a/.i3/config b/.i3/config deleted file mode 100644 index 56a0aab..0000000 --- a/.i3/config +++ /dev/null @@ -1,288 +0,0 @@ -# This file has been auto-generated by i3-config-wizard(1). -# It will not be overwritten, so edit it as you like. -# -# Should you change your keyboard layout some time, delete -# this file and re-run i3-config-wizard(1). -# - -# i3 config file (v4) -# -# Please see http://i3wm.org/docs/userguide.html for a complete reference! - -set $mod Mod4 -set $TERMINAL terminator -#set $CONKY /home/kuba/git/conky/build/src/conky symlink instead -set $w1 1 main -set $w2 2 web -set $w3 3 mu -set $w4 4 work -set $w5 5 terms -set $w6 6 stats -set $w7 7 -set $w8 8 -set $w9 9 -set $w10 10 games - -set $below_barY 24 -#set $volX 1400 -#set $brX 1485 -#set $calX 1650 -set $htopX 400 -set $pavuX 800 - -# Font for window titles. Will also be used by the bar unless a different font -# is used in the bar {} block below. -# This font is widely installed, provides lots of unicode glyphs, right-to-left -# text rendering and scalability on retina/hidpi displays (thanks to pango). -font pango:FontAwesome 11 -# Before i3 v4.8, we used to recommend this one as the default: -# font -misc-fixed-medium-r-normal--13-120-75-75-C-70-iso10646-1 -# The font above is very space-efficient, that is, it looks good, sharp and -# clear in small sizes. However, its unicode glyph coverage is limited, the old -# X core fonts rendering does not support right-to-left and this being a bitmap -# font, it doesn’t scale on retina/hidpi displays. - -# Use Mouse+$mod to drag floating windows to their wanted position -floating_modifier $mod - -#### -# Global Settings -#### - -focus_follows_mouse no -mouse_warping none -for_window [class="Terminator"] border pixel 0 -for_window [class="YADWIN"] floating enable -for_window [class="FLOAT_PAVU"] floating enable -for_window [class="FLOAT_PAVU"] resize set 800 540 -for_window [class="FLOAT_PAVU"] border pixel 3 -for_window [class="FLOAT_PAVU"] move absolute position $pavuX px $below_barY px -for_window [window_role="FLOAT_TERM"] floating enable -for_window [window_role="FLOAT_TERM"] move absolute position $htopX px $below_barY px -for_window [window_role="FLOAT_TERM"] border pixel 3 -for_window [title="Memory"] floating enable -for_window [class="Matplotlib"] floating enable -for_window [class="Chromium"] border pixel 0 -for_window [class="^.*"] border pixel 0 -for_window [window_type="toolbar"] border pixel 3 -for_window [window_type="splash"] border pixel 3 -for_window [window_type="dialog"] border pixel 3 -for_window [window_type="utility"] border pixel 3 -for_window [window_role="pop-up"] floating enable -for_window [title="VMD 1.9.3 OpenGL Display"] floating enable -for_window [title="Figure *"] floating enable -#for_window [title="VMD"] floating enable -workspace_auto_back_and_forth yes -#force_display_urgency_hint 500 ms - -assign [class="Firefox"] → $w2 -assign [class="Chromium"] → $w2 -for_window [class="Spotify"] move to workspace $w3 -#Spotify bug, assign doesn't work -assign [class="libreoffice*"] → $w4 -assign [class="soffice*"] → $w4 -assign [class="MATLAB*"] → $w4 -assign [window_role="ranger"] → $w1 -assign [window_role="terms"] → $w5 -assign [window_role="stats"] → $w6 -assign [class="Minecraft*"] → $w10 -assign [title="Feed The Beast Launcher*"] → $w10 - - - - -#### -# gaps settings -#### - -gaps inner 0 -gaps outer 0 - -workspace 1 gaps inner 10 -workspace 5 gaps inner 10 -workspace 6 gaps inner 60 - -#### -# Bindings -#### - -# pulse audio volume control -bindsym XF86AudioRaiseVolume exec ~/.i3/scripts/level.sh -v up -bindsym XF86AudioLowerVolume exec ~/.i3/scripts/level.sh -v down -bindsym XF86AudioMute exec ~/.i3/scripts/level.sh -v toggle -#bindsym XF86Launch1 exec /usr/bin/pactl play-sample that_was_easy -#bindsym XF86MonBrightnessDown exec /usr/bin/kbdlight down 20 -bindsym XF86MonBrightnessUp exec ~/.i3/scripts/level.sh -b up -bindsym XF86MonBrightnessDown exec ~/.i3/scripts/level.sh -b down -bindsym $mod+F8 exec playerctl play-pause -bindsym $mod+F9 exec playerctl next -bindsym $mod+F7 exec playerctl previous -bindsym XF86AudioPlay exec playerctl play -bindsym XF86AudioPause exec playerctl pause -bindsym XF86AudioNext exec playerctl next -bindsym XF86AudioPrevious exec playerctl previous - - - -# start a terminal -#bindsym $mod+Return exec 'i3-sensible-terminal border pixel 0' -bindsym $mod+Return exec $TERMINAL - -# kill focused window -bindsym $mod+Shift+q kill - -# start dmenu (a program launcher) -bindsym $mod+d exec dmenu_run -# There also is the (new) i3-dmenu-desktop which only displays applications -# shipping a .desktop file. It is a wrapper around dmenu, so you need that -# installed. - bindsym $mod+Shift+d exec --no-startup-id i3-dmenu-desktop - -# change focus -bindsym $mod+j focus left -bindsym $mod+k focus down -bindsym $mod+l focus up -bindsym $mod+semicolon focus right - -# alternatively, you can use the cursor keys: -bindsym $mod+Left focus left -bindsym $mod+Down focus down -bindsym $mod+Up focus up -bindsym $mod+Right focus right - -# move focused window -bindsym $mod+Shift+j move left -bindsym $mod+Shift+k move down -bindsym $mod+Shift+l move up -bindsym $mod+Shift+semicolon move right - -# alternatively, you can use the cursor keys: -bindsym $mod+Shift+Left move left -bindsym $mod+Shift+Down move down -bindsym $mod+Shift+Up move up -bindsym $mod+Shift+Right move right - -# split in horizontal orientation -bindsym $mod+h split h - -# split in vertical orientation -bindsym $mod+v split v - -# enter fullscreen mode for the focused container -bindsym $mod+f fullscreen toggle - -# change container layout (stacked, tabbed, toggle split) -bindsym $mod+s layout stacking -bindsym $mod+w layout tabbed -bindsym $mod+e layout toggle split - -# toggle tiling / floating -bindsym $mod+Shift+space floating toggle - -# change focus between tiling / floating windows -bindsym $mod+space focus mode_toggle - -# focus the parent container -bindsym $mod+a focus parent - -# focus the child container -#bindsym $mod+d focus child - -bindsym $mod+m exec sh ~/.i3/scripts/lang.sh next - -# switch to workspace -bindsym $mod+1 workspace number $w1 -bindsym $mod+2 workspace number $w2 -bindsym $mod+3 workspace number $w3 -bindsym $mod+4 workspace number $w4 -bindsym $mod+5 workspace number $w5 -bindsym $mod+6 workspace number $w6 -bindsym $mod+7 workspace number $w7 -bindsym $mod+8 workspace number $w8 -bindsym $mod+9 workspace number $w9 -bindsym $mod+0 workspace number $w10 - -# move focused container to workspace -bindsym $mod+Shift+1 move container to workspace number $w1 -bindsym $mod+Shift+2 move container to workspace number $w2 -bindsym $mod+Shift+3 move container to workspace number $w3 -bindsym $mod+Shift+4 move container to workspace number $w4 -bindsym $mod+Shift+5 move container to workspace number $w5 -bindsym $mod+Shift+6 move container to workspace number $w6 -bindsym $mod+Shift+7 move container to workspace number $w7 -bindsym $mod+Shift+8 move container to workspace number $w8 -bindsym $mod+Shift+9 move container to workspace number $w9 -bindsym $mod+Shift+0 move container to workspace number $w10 - -bindsym $mod+o move workspace to output right - -# reload the configuration file -bindsym $mod+Shift+c reload -# restart i3 inplace (preserves your layout/session, can be used to upgrade i3) -bindsym $mod+Shift+r restart -# exit i3 (logs you out of your X session) -bindsym $mod+Shift+e exec "i3-nagbar -t warning -m 'You pressed the exit shortcut. Do you really want to exit i3? This will end your X session.' -b 'Yes, exit i3' 'i3-msg exit'" - -bindsym XF86Sleep exec sh ~/.i3/i3exit.sh lock -bindsym Print exec scrot '%Y-%m-%d-%T_$wx$h_scrot.png' -e 'mv $f ~/Obrazy/screenshots/' -bindsym Shift + Print exec scrot -s '%Y-%m-%d-%T_$wx$h_scrot.png' -e 'mv $f ~/Obrazy/screenshots/' - -set $mode_system System (l) lock, (e) logout, (s) suspend, (h) hibernate, (r) reboot, (Shift+s) shutdown -mode "$mode_system" { - bindsym l exec --no-startup-id .i3/i3exit.sh lock, mode "default" - bindsym e exec --no-startup-id .i3/i3exit.sh logout, mode "default" - bindsym s exec --no-startup-id .i3/i3exit.sh suspend, mode "default" - bindsym h exec --no-startup-id .i3/i3exit.sh hibernate, mode "default" - bindsym r exec --no-startup-id .i3/i3exit.sh reboot, mode "default" - bindsym Shift+s exec --no-startup-id .i3/i3exit.sh shutdown, mode "default" - - # back to normal: Enter or Escape - bindsym Return mode "default"; exec sh .i3/lemonbar/set_mode.sh mode normal - bindsym Escape mode "default"; exec sh .i3/lemonbar/set_mode.sh mode normal -} -bindsym XF86PowerOff mode "$mode_system"; exec sh .i3/lemonbar/set_mode.sh mode power - -# resize window (you can also use the mouse for that) -mode "resize" { - # These bindings trigger as soon as you enter the resize mode - - # Pressing left will shrink the window’s width. - # Pressing right will grow the window’s width. - # Pressing up will shrink the window’s height. - # Pressing down will grow the window’s height. - bindsym j resize shrink width 10 px or 10 ppt - bindsym k resize grow height 10 px or 10 ppt - bindsym l resize shrink height 10 px or 10 ppt - bindsym semicolon resize grow width 10 px or 10 ppt - - # same bindings, but for the arrow keys - bindsym Left resize shrink width 10 px or 10 ppt - bindsym Down resize grow height 10 px or 10 ppt - bindsym Up resize shrink height 10 px or 10 ppt - bindsym Right resize grow width 10 px or 10 ppt - - # back to normal: Enter or Escape - bindsym Return mode "default" - bindsym Escape mode "default" -} - -bindsym $mod+r mode "resize" -#### -# layout settings -#### -bindsym $mod+u exec feh --bg-scale /home/kuba/Obrazy/Wallpapers/AxEcN\ -\ Imgur.jpg -#exec compton -b -#workspace 1 main -exec --no-startup-id $TERMINAL --role "ranger" -x ranger - -#exec --no-startup-id i3-msg 'workspace 5 terms" -exec --no-startup-id $TERMINAL -p terms --role "terms" -exec --no-startup-id $TERMINAL -p terms --role "terms" - -#workspace 6 stats; -exec --no-startup-id i3-msg 'append_layout /home/kuba/.i3/workspace_6.json; rename workspace to "6 stats"' -#Set appropriate background image before starting conkys -exec --no-startup-id feh --bg-scale /home/kuba/Obrazy/Wallpapers/6_stats - -#Start conky's in .i3/.autostart -exec sh ~/.i3/.autostart diff --git a/.i3/home.config b/.i3/home.config new file mode 100644 index 0000000..c126eef --- /dev/null +++ b/.i3/home.config @@ -0,0 +1,114 @@ +set $w1 1 main +set $w2 2 web +set $w3 3 mu +set $w4 4 work +set $w5 5 terms +set $w6 6 stats +set $w7 7 +set $w8 8 +set $w9 9 +set $w10 10 games + +set $below_barY 24 +#set $volX 1400 +#set $brX 1485 +#set $calX 1650 +set $htopX 400 +set $pavuX 800 + +for_window [class="Terminator"] border pixel 0 +for_window [class="YADWIN"] floating enable +for_window [class="FLOAT_PAVU"] floating enable +for_window [class="FLOAT_PAVU"] resize set 800 540 +for_window [class="FLOAT_PAVU"] border pixel 3 +for_window [class="FLOAT_PAVU"] move absolute position $pavuX px $below_barY px +for_window [window_role="FLOAT_TERM"] floating enable +for_window [window_role="FLOAT_TERM"] move absolute position $htopX px $below_barY px +for_window [window_role="FLOAT_TERM"] border pixel 3 +for_window [title="Memory"] floating enable +for_window [class="Matplotlib"] floating enable +for_window [class="Chromium"] border pixel 0 +for_window [class="^.*"] border pixel 0 +for_window [window_type="toolbar"] border pixel 3 +for_window [window_type="splash"] border pixel 3 +for_window [window_type="dialog"] border pixel 3 +for_window [window_type="utility"] border pixel 3 +for_window [window_role="pop-up"] floating enable +for_window [title="VMD 1.9.3 OpenGL Display"] floating enable +for_window [title="Figure *"] floating enable +#for_window [title="VMD"] floating enable + +assign [class="Firefox"] → $w2 +assign [class="Chromium"] → $w2 +for_window [class="Spotify"] move to workspace $w3 +#Spotify bug, assign doesn't work +assign [class="libreoffice*"] → $w4 +assign [class="soffice*"] → $w4 +assign [class="MATLAB*"] → $w4 +assign [window_role="ranger"] → $w1 +assign [window_role="terms"] → $w5 +assign [window_role="stats"] → $w6 +assign [class="Minecraft*"] → $w10 +assign [title="Feed The Beast Launcher*"] → $w10 + +# Gaps settings +#### + +gaps inner 0 +gaps outer 0 + +workspace 1 gaps inner 10 +workspace 5 gaps inner 10 +workspace 6 gaps inner 60 + +# Multimedia Bindings +#### + +# pulse audio volume control +bindsym XF86AudioRaiseVolume exec ~/.i3/scripts/level.sh -v up +bindsym XF86AudioLowerVolume exec ~/.i3/scripts/level.sh -v down +bindsym XF86AudioMute exec ~/.i3/scripts/level.sh -v toggle +#bindsym XF86Launch1 exec /usr/bin/pactl play-sample that_was_easy +#bindsym XF86MonBrightnessDown exec /usr/bin/kbdlight down 20 +bindsym XF86MonBrightnessUp exec ~/.i3/scripts/level.sh -b up +bindsym XF86MonBrightnessDown exec ~/.i3/scripts/level.sh -b down +bindsym $mod+F8 exec playerctl play-pause +bindsym $mod+F9 exec playerctl next +bindsym $mod+F7 exec playerctl previous +bindsym XF86AudioPlay exec playerctl play +bindsym XF86AudioPause exec playerctl pause +bindsym XF86AudioNext exec playerctl next +bindsym XF86AudioPrevious exec playerctl previous + +bindsym Print exec scrot '%Y-%m-%d-%T_$wx$h_scrot.png' -e 'mv $f ~/Obrazy/screenshots/' +bindsym Shift + Print exec scrot -s '%Y-%m-%d-%T_$wx$h_scrot.png' -e 'mv $f ~/Obrazy/screenshots/' + +bindsym $mod+m exec sh ~/.i3/scripts/lang.sh next + +# Exiting +#### + +bindsym XF86Sleep exec sh ~/.i3/i3exit.sh lock +bindsym XF86PowerOff mode "$mode_system"; exec sh .i3/lemonbar/set_mode.sh mode power + + + +#### +# layout settings +#### +bindsym $mod+u exec feh --bg-scale /home/kuba/Obrazy/Wallpapers/AxEcN\ -\ Imgur.jpg +#exec compton -b +#workspace 1 main +exec --no-startup-id $TERMINAL --role "ranger" -x ranger + +#exec --no-startup-id i3-msg 'workspace 5 terms" +exec --no-startup-id $TERMINAL -p terms --role "terms" +exec --no-startup-id $TERMINAL -p terms --role "terms" + +#workspace 6 stats; +exec --no-startup-id i3-msg 'append_layout /home/kuba/.i3/workspace_6.json; rename workspace to "6 stats"' +#Set appropriate background image before starting conkys +exec --no-startup-id feh --bg-scale /home/kuba/Obrazy/Wallpapers/6_stats + +#Start conky's in .i3/.autostart +exec sh ~/.i3/.autostart diff --git a/.xinitrc b/.xinitrc index 3dd26c1..ae67263 100755 --- a/.xinitrc +++ b/.xinitrc @@ -18,21 +18,30 @@ fi export EDITOR="vim" export CUPS_GSSSERVICENAME=HTTP -#srandrd conkyshit/displays [[ -f ~/.Xresources ]] && xrdb -merge ~/.Xresources volnoti & -#xxkb & owncloud & -# exec gnome-session -# exec startkde -# exec startxfce4 -#exec kdm -# ...or the Window Manager of your choice -rm ~/.i3.log.old -mv ~/.i3.log ~/.i3.log.old -rm ~/.i3.log -#exec $WM -d all -V >> ~/.i3.log -exec $WM >> ~/.i3.log +rm -f "~/${WM}.log.old" +mv -f "~/${WM}.log" "~/${WM}.log.old" +rm -f "~/${WM}.log" +rm -f "~/${WM}.log" + +if [ "$WM" = "i3" ]; then + # Generate i3 config file + i3config="/tmp/i3_${USER}_config" + rm -f $i3config + + if [ -f ~/.i3/base.config ]; then + cat ~/.i3/base.config >> $i3config + fi + + if [ "`hostname`" = "kubaArch" ] && [ -f ~/.i3/home.config ]; then + cat ~/.i3/home.config >> $i3config + fi + exec i3 -c $i3config # >> "~/${WM}.log" 2>&1 +else + exec $WM >> "~/${WM}.log" 2>&1 +fi