dotfiles

Personal dotfiles
git clone https://git.bracken.jp/dotfiles.git
Log | Files | Refs | LICENSE

commit aacff32bb14b9d9a80d9ef143ca7b25d610676c8
parent 8e0188b724e0c13bf0ff7e72442fc53dee2674b8
Author: Chris Bracken <chris@bracken.jp>
Date:   Wed, 22 Apr 2020 13:53:13 -0700

i3: organise config consistent with Sway config

Makes it easier to keep the two in sync.

Diffstat:
M.i3/config | 303++++++++++++++++++++++++++++++++++++++++++++++++++++++-------------------------
M.xinitrc | 1-
2 files changed, 207 insertions(+), 97 deletions(-)

diff --git a/.i3/config b/.i3/config @@ -4,16 +4,16 @@ # Should you change your keyboard layout somewhen, 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 -# Font for window titles. Will also be used by the bar unless a different font -# is used in the bar {} block below. ISO 10646 = Unicode -font pango:IPAGothic 12, DejaVu Sans Mono 10 +############################################################ +# Startup + +# Configure Xresources settings. +exec --no-startup-id xrdb ~/.Xresources # Use Japanese keyboard layout with caps-lock as control. exec --no-startup-id setxkbmap -layout jp -option ctrl:nocaps @@ -21,80 +21,130 @@ exec --no-startup-id setxkbmap -layout jp -option ctrl:nocaps # Use 'natural' mouse-wheel scrolling. exec --no-startup-id xmodmap -e "pointer = 1 2 3 5 4 6 7 8 9 10 11 12" -# The font above is very space-efficient, that is, it looks good, sharp and -# clear in small sizes. However, if you need a lot of unicode glyphs or -# right-to-left text rendering, you should instead use pango for rendering and -# chose a FreeType font, such as: -# font pango:DejaVu Sans Mono 10 +# Set desktop background. +exec --no-startup-id xsetroot -solid "#333333" -# Use Mouse+$mod to drag floating windows to their wanted position -floating_modifier $mod +# Start compton compositor. +exec --no-startup-id compton --config ~/.config/compton.conf -b -# start a terminal -bindsym $mod+Return exec urxvt +# Start up Dunst notification system. +exec --no-startup-id dunst -# kill focused window -bindsym $mod+Shift+q kill +# Set the window title font. +font pango:IPAGothic 12, DejaVu Sans Mono 10 -# start compton compositor -exec --no-startup-id compton --config ~/.config/compton.conf -b -# Lock, suspend -set $lock_screen i3lock -d -c 000000 +############################################################ +# Variables + +# Logo key. Use Mod1 for Alt. +set $mod Mod4 + +# Home row direction keys, like vim. +set $left h +set $down j +set $up k +set $right l + +# Your preferred terminal emulator. +set $term urxvt + +# Your preferred application launcher. +# Note: it's recommended that you pass the final command to i3. +set $menu dmenu_path | dmenu | xargs i3-msg exec -- + +# Set lock screen handler. +set $lock_screen i3lock -c 000000 + + +############################################################ +# Idle configuration + +# Lock screen after 300 seconds of inactivity, then turn off displays after +# another 300 seconds, and turn screens back on when resumed. Also lock screen +# before the computer goes to sleep. exec --no-startup-id xautolock -time 10 -locker "$lock_screen" -bindsym Control+$mod+l exec $lock_screen -# bindsym Control+$mod+s exec dbus-send --system --dest=org.freedesktop.UPower --type=method_call - -# start dmenu (a program launcher) -bindsym $mod+d exec PATH=$HOME/bin:$PATH 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+d exec --no-startup-id i3-dmenu-desktop - -# audio volume -bindsym XF86AudioLowerVolume exec --no-startup-id pactl set-sink-volume @DEFAULT_SINK@ '-5%' -bindsym XF86AudioRaiseVolume exec --no-startup-id pactl set-sink-volume @DEFAULT_SINK@ '+5%' -bindsym Control+$mod+F11 exec --no-startup-id pactl set-sink-volume @DEFAULT_SINK@ '-5%' -bindsym Control+$mod+F12 exec --no-startup-id pactl set-sink-volume @DEFAULT_SINK@ '+5%' - -# change focus -bindsym $mod+h focus left -bindsym $mod+j focus down -bindsym $mod+k focus up -bindsym $mod+l focus right - -# move focused window -bindsym $mod+Shift+h move left -bindsym $mod+Shift+j move down -bindsym $mod+Shift+k move up -bindsym $mod+Shift+l move right - -# horizontal/vertical split -bindsym $mod+Shift+semicolon split h -bindsym $mod+semicolon split v - -# enter fullscreen mode for the focused container -bindsym $mod+f fullscreen -# 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 +############################################################ +# Key bindings: Basics -# changg/recus between tiling / floating windows -bindsym $mod+space exec ~/bin/ibus-next +# Start a terminal. +bindsym $mod+Return exec $term -# focus the parent container -bindsym $mod+a focus parent +# Kill focused window. +bindsym $mod+Shift+q kill + +# Start the launcher. +bindsym $mod+d exec $menu + +# Drag floating windows by holding down $mod and left mouse button. +# Resize them with right mouse button + $mod. +# Despite the name, also works for non-floating windows. +floating_modifier $mod + +# Reload the configuration file. +bindsym $mod+Shift+c reload + +# Restart i3 in-place (preserves layout/session, can be used to upgrade i3). +bindsym $mod+Shift+r restart + +# Lock the screen. +bindsym Control+$mod+l exec $lock_screen + +# Exit i3 (logs you out of your X session). +bindsym $mod+Shift+e exec ~/.i3/exit_check.sh -# focus the child container -#bindsym $mod+d focus child -# switch to workspace +############################################################ +# Key bindings: Volume control + +# Increase and decrease volume. +bindsym Control+$mod+F12 exec --no-startup-id pactl set-sink-volume @DEFAULT_SINK@ +5% +bindsym Control+$mod+F11 exec --no-startup-id pactl set-sink-volume @DEFAULT_SINK@ -5% +bindsym XF86AudioRaiseVolume exec pactl set-sink-volume @DEFAULT_SINK@ +5% +bindsym XF86AudioLowerVolume exec pactl set-sink-volume @DEFAULT_SINK@ -5% + +# Handle media keys. +bindsym XF86AudioMute exec pactl set-sink-mute @DEFAULT_SINK@ toggle +bindsym XF86AudioMicMute exec pactl set-source-mute @DEFAULT_SOURCE@ toggle +bindsym XF86MonBrightnessDown exec brightnessctl set 5%- +bindsym XF86MonBrightnessUp exec brightnessctl set +5% +bindsym XF86AudioPlay exec playerctl play-pause +bindsym XF86AudioNext exec playerctl next +bindsym XF86AudioPrev exec playerctl previous + + +############################################################ +# Key bindings: Moving around + +# Move your focus around. +bindsym $mod+$left focus left +bindsym $mod+$down focus down +bindsym $mod+$up focus up +bindsym $mod+$right focus right +# Or use $mod+[up|down|left|right]. +bindsym $mod+Left focus left +bindsym $mod+Down focus down +bindsym $mod+Up focus up +bindsym $mod+Right focus right + +# Move the focused window with the same, but add Shift +bindsym $mod+Shift+$left move left +bindsym $mod+Shift+$down move down +bindsym $mod+Shift+$up move up +bindsym $mod+Shift+$right move right +# Ditto, with arrow 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 + + +############################################################ +# Key bindings: Workspaces + +# Switch to workspace. bindsym $mod+1 workspace 1 bindsym $mod+2 workspace 2 bindsym $mod+3 workspace 3 @@ -106,7 +156,7 @@ bindsym $mod+8 workspace 8 bindsym $mod+9 workspace 9 bindsym $mod+0 workspace 10 -# move focused container to workspace +# Move focused container to workspace. bindsym $mod+Shift+1 move container to workspace 1 bindsym $mod+Shift+2 move container to workspace 2 bindsym $mod+Shift+3 move container to workspace 3 @@ -118,41 +168,102 @@ bindsym $mod+Shift+8 move container to workspace 8 bindsym $mod+Shift+9 move container to workspace 9 bindsym $mod+Shift+0 move container to workspace 10 -# 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/exit_check.sh -# resize window (you can also use the mouse for that) +############################################################ +# Key bindings: Layout + +# You can "split" the current object of your focus with $mod+b or $mod+v, for +# horizontal and vertical splits respectively. +bindsym $mod+b splith +bindsym $mod+v splitv +# Ditto, but with $mod-; and $mod-Shift-;. +bindsym $mod+Shift+semicolon splith +bindsym $mod+semicolon splitv + +# Switch the current container between different layout styles. +bindsym $mod+s layout stacking +bindsym $mod+w layout tabbed +bindsym $mod+e layout toggle split + +# Make the current focus fullscreen. +bindsym $mod+f fullscreen + +# Toggle the current focus between tiling and floating mode. +bindsym $mod+Shift+space floating toggle + +# Swap focus between the tiling area and the floating area. +bindsym $mod+space focus mode_toggle + +# Move focus to the parent container. +bindsym $mod+a focus parent + + +############################################################ +# Key bindings: Scratchpad +# +# i3 has a "scratchpad", which is a bag of holding for windows. +# You can send windows there and get them back later. + +# Move the currently focused window to the scratchpad. +bindsym $mod+Shift+minus move scratchpad + +# Show the next scratchpad window or hide the focused scratchpad window. +# If there are multiple scratchpad windows, this command cycles through them. +bindsym $mod+minus scratchpad show + + +############################################################ +# Key bindings: Resizing containers + 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 l resize shrink width 10 px or 10 ppt - bindsym j resize shrink height 10 px or 10 ppt - bindsym k resize grow height 10 px or 10 ppt - bindsym h resize grow width 10 px or 10 ppt - - # back to normal: Enter or Escape - bindsym Return mode "default" - bindsym Escape mode "default" + # Shrink or grow the container's width, height. + bindsym $left resize shrink width 10px + bindsym $down resize grow height 10px + bindsym $up resize shrink height 10px + bindsym $right resize grow width 10px + + # Ditto, with arrow keys. + bindsym Left resize shrink width 10px + bindsym Down resize grow height 10px + bindsym Up resize shrink height 10px + bindsym Right resize grow width 10px + + # Return to default mode on Return or Esc. + bindsym Return mode "default" + bindsym Escape mode "default" } - bindsym $mod+r mode "resize" + +############################################################ +# Key bindings: Input manager + +bindsym $mod+i mode "j: japanese; e: english" + +mode "j: japanese; e: english" { + bindsym j exec ibus engine mozc-jp; mode "default" + bindsym e exec ibus engine xkb:jp::jpn; mode "default" + bindsym Return mode "default" + bindsym Escape mode "default" +} + + +############################################################ +# Status Bar +# + # Start i3bar to display a workspace bar (plus the system information i3status # finds out, if available) bar { - status_command i3status -} + position top -# Set desktop background -exec --no-startup-id xsetroot -solid "#333333" + # When the status_command prints a new line to stdout, swaybar updates. + # The default just shows the current date and time. + status_command i3status -# lock screen on idle -exec --no-startup-id xautolock -time 10 -locker "$lock_screen" + colors { + statusline #ffffff + background #323232 + inactive_workspace #32323200 #32323200 #5c5c5c + } +} diff --git a/.xinitrc b/.xinitrc @@ -6,5 +6,4 @@ export XMODIFIERS=@im=ibus # Start ibus daemon. ibus-daemon --xim & -xrdb -load $HOME/.Xresources /usr/local/bin/i3