Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #
- # My first i3 configuration
- #
- set $mod Mod4
- font pango:monospace 12
- font pango:DejaVu Sans Mono 10
- default_border pixel 2
- hide_edge_borders smart
- # KEY BINDINGS ###############################################
- # Applications
- bindsym Ctrl+Mod1+b exec firefox
- bindsym Ctrl+Mod1+m exec thunar --class myThunar
- for_window [class="myThunar"] move scratchpad
- for_window [class="myThunar"] floating enable border pixel 4
- for_window [class="myThunar"] resize shrink width 10000px, resize grow width 400px, resize shrink height 10000px, resize grow height 400px
- for_window [class="myThunar"] scratchpad show
- # Volume control @pulseAudio
- set $refresh_i3status killall -SIGUSR1 i3status
- bindsym XF86AudioRaiseVolume exec --no-startup-id pactl set-sink-volume @DEFAULT_SINK@ +5% && $refresh_i3status
- bindsym XF86AudioLowerVolume exec --no-startup-id pactl set-sink-volume @DEFAULT_SINK@ -5% && $refresh_i3status
- bindsym XF86AudioMute exec --no-startup-id pactl set-sink-mute @DEFAULT_SINK@ toggle && $refresh_i3status
- bindsym XF86AudioMicMute exec --no-startup-id pactl set-source-mute @DEFAULT_SOURCE@ toggle && $refresh_i3status
- # Screen brightness
- bindsym XF86MonBrightnessUp exec xbacklight -inc 2 # increase screen brightness
- bindsym XF86MonBrightnessDown exec xbacklight -dec 2 # decrease screen brightness
- # start a terminal
- bindsym $mod+Return exec urxvt
- bindsym $mod+Shift+Return exec urxvt -name floaty
- for_window [class="URxvt" instance="floaty"] move scratchpad
- for_window [class="URxvt" instance="floaty"] floating enable border pixel 2
- for_window [class="URxvt" instance="floaty"] resize shrink width 10000px, resize grow width 800px, resize shrink height 10000px, resize grow height 400px
- for_window [class="URxvt" instance="floaty"] move right 475px, move down 320px
- # kill focused window
- bindsym $mod+Shift+q kill
- # start dmenu (a program launcher)
- bindsym $mod+d exec dmenu_run
- # change focus
- bindsym $mod+Left focus left
- bindsym $mod+Down focus down
- bindsym $mod+Up focus up
- bindsym $mod+Right focus right
- # move window
- 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
- 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
- # 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
- # Move window to scratchpad
- bindsym $mod+b scratchpad show
- # bindsym $mod+Shift+b scratchpad show
- # Define names for default workspaces for which we configure key bindings later on.
- # We use variables to avoid repeating the names in multiple places.
- set $ws1 "1"
- set $ws2 "2"
- set $ws3 "3"
- set $ws4 "4"
- set $ws5 "5"
- set $ws6 "6"
- set $ws7 "7"
- set $ws8 "8"
- set $ws9 "9"
- set $ws10 "10"
- assign [class="Firefox"] -> $ws1
- # Scroll through workspaces
- bindsym $mod+grave workspace next
- bindsym $mod+shift+grave workspace prev
- # switch to workspace
- bindsym $mod+1 workspace number $ws1
- bindsym $mod+2 workspace number $ws2
- bindsym $mod+3 workspace number $ws3
- bindsym $mod+4 workspace number $ws4
- bindsym $mod+5 workspace number $ws5
- bindsym $mod+6 workspace number $ws6
- bindsym $mod+7 workspace number $ws7
- bindsym $mod+8 workspace number $ws8
- bindsym $mod+9 workspace number $ws9
- bindsym $mod+0 workspace number $ws10
- # move focused container to workspace
- bindsym $mod+Shift+1 move container to workspace number $ws1
- bindsym $mod+Shift+2 move container to workspace number $ws2
- bindsym $mod+Shift+3 move container to workspace number $ws3
- bindsym $mod+Shift+4 move container to workspace number $ws4
- bindsym $mod+Shift+5 move container to workspace number $ws5
- bindsym $mod+Shift+6 move container to workspace number $ws6
- bindsym $mod+Shift+7 move container to workspace number $ws7
- bindsym $mod+Shift+8 move container to workspace number $ws8
- bindsym $mod+Shift+9 move container to workspace number $ws9
- bindsym $mod+Shift+0 move container to workspace number $ws10
- # 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'"
- # poweroff (Mod1 - includes Alt_L)
- bindsym Ctrl+Mod1+Shift+p exec poweroff
- bindsym Ctrl+Mod1+Shift+r exec reboot
- # resize window
- mode "resize" {
- 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 or $mod+r
- bindsym Return mode "default"
- bindsym Escape mode "default"
- bindsym $mod+r mode "default"
- }
- bindsym $mod+r mode "resize"
- mode "move" {
- bindsym Left move left 20px
- bindsym Right move right 20px
- bindsym Up move up 20px
- bindsym Down move down 20px
- bindsym Return mode "default"
- bindsym Escape mode "default"
- bindsym $mod+m mode "default"
- }
- bindsym $mod+m mode "move"
- # This + click & drag window in floating mode moves it around
- floating_modifier $mod
- # DYNAMIC GAPS STUFF
- set $mode_gaps Gaps: (o)uter, (i)nner, (h)orizontal, (v)ertical, (t)op, (r)ight, (b)ottom, (l)eft
- set $mode_gaps_outer Outer Gaps: +|-|0 (local), Shift + +|-|0 (global)
- set $mode_gaps_inner Inner Gaps: +|-|0 (local), Shift + +|-|0 (global)
- set $mode_gaps_horiz Horizontal Gaps: +|-|0 (local), Shift + +|-|0 (global)
- set $mode_gaps_verti Vertical Gaps: +|-|0 (local), Shift + +|-|0 (global)
- set $mode_gaps_top Top Gaps: +|-|0 (local), Shift + +|-|0 (global)
- set $mode_gaps_right Right Gaps: +|-|0 (local), Shift + +|-|0 (global)
- set $mode_gaps_bottom Bottom Gaps: +|-|0 (local), Shift + +|-|0 (global)
- set $mode_gaps_left Left Gaps: +|-|0 (local), Shift + +|-|0 (global)
- bindsym $mod+Shift+g mode "$mode_gaps"
- mode "$mode_gaps" {
- bindsym o mode "$mode_gaps_outer"
- bindsym i mode "$mode_gaps_inner"
- bindsym h mode "$mode_gaps_horiz"
- bindsym v mode "$mode_gaps_verti"
- bindsym t mode "$mode_gaps_top"
- bindsym r mode "$mode_gaps_right"
- bindsym b mode "$mode_gaps_bottom"
- bindsym l mode "$mode_gaps_left"
- bindsym Return mode "$mode_gaps"
- bindsym Escape mode "default"
- }
- mode "$mode_gaps_outer" {
- bindsym plus gaps outer current plus 5
- bindsym minus gaps outer current minus 5
- bindsym 0 gaps outer current set 0
- bindsym Shift+plus gaps outer all plus 5
- bindsym Shift+minus gaps outer all minus 5
- bindsym Shift+0 gaps outer all set 0
- bindsym Return mode "$mode_gaps"
- bindsym Escape mode "default"
- }
- mode "$mode_gaps_inner" {
- bindsym plus gaps inner current plus 5
- bindsym minus gaps inner current minus 5
- bindsym 0 gaps inner current set 0
- bindsym Shift+plus gaps inner all plus 5
- bindsym Shift+minus gaps inner all minus 5
- bindsym Shift+0 gaps inner all set 0
- bindsym Return mode "$mode_gaps"
- bindsym Escape mode "default"
- }
- mode "$mode_gaps_horiz" {
- bindsym plus gaps horizontal current plus 5
- bindsym minus gaps horizontal current minus 5
- bindsym 0 gaps horizontal current set 0
- bindsym Shift+plus gaps horizontal all plus 5
- bindsym Shift+minus gaps horizontal all minus 5
- bindsym Shift+0 gaps horizontal all set 0
- bindsym Return mode "$mode_gaps"
- bindsym Escape mode "default"
- }
- mode "$mode_gaps_verti" {
- bindsym plus gaps vertical current plus 5
- bindsym minus gaps vertical current minus 5
- bindsym 0 gaps vertical current set 0
- bindsym Shift+plus gaps vertical all plus 5
- bindsym Shift+minus gaps vertical all minus 5
- bindsym Shift+0 gaps vertical all set 0
- bindsym Return mode "$mode_gaps"
- bindsym Escape mode "default"
- }
- mode "$mode_gaps_top" {
- bindsym plus gaps top current plus 5
- bindsym minus gaps top current minus 5
- bindsym 0 gaps top current set 0
- bindsym Shift+plus gaps top all plus 5
- bindsym Shift+minus gaps top all minus 5
- bindsym Shift+0 gaps top all set 0
- bindsym Return mode "$mode_gaps"
- bindsym Escape mode "default"
- }
- mode "$mode_gaps_right" {
- bindsym plus gaps right current plus 5
- bindsym minus gaps right current minus 5
- bindsym 0 gaps right current set 0
- bindsym Shift+plus gaps right all plus 5
- bindsym Shift+minus gaps right all minus 5
- bindsym Shift+0 gaps right all set 0
- bindsym Return mode "$mode_gaps"
- bindsym Escape mode "default"
- }
- mode "$mode_gaps_bottom" {
- bindsym plus gaps bottom current plus 5
- bindsym minus gaps bottom current minus 5
- bindsym 0 gaps bottom current set 0
- bindsym Shift+plus gaps bottom all plus 5
- bindsym Shift+minus gaps bottom all minus 5
- bindsym Shift+0 gaps bottom all set 0
- bindsym Return mode "$mode_gaps"
- bindsym Escape mode "default"
- }
- mode "$mode_gaps_left" {
- bindsym plus gaps left current plus 5
- bindsym minus gaps left current minus 5
- bindsym 0 gaps left current set 0
- bindsym Shift+plus gaps left all plus 5
- bindsym Shift+minus gaps left all minus 5
- bindsym Shift+0 gaps left all set 0
- bindsym Return mode "$mode_gaps"
- bindsym Escape mode "default"
- }
- # Launch polybar
- exec_always --no-startup-id $HOME/.config/polybar/launch.sh
- # Set desktop wallpaper
- exec_always --no-startup-id exec bash $HOME/.fehbg
- # Run the window splitting script
- exec_always --no-startup-id $HOME/.config/i3/splitConfig.py
- # BACKUPS
- # SOMETHING ABOUT XSS-LOCK -> todo check what this is
- # exec --no-startup-id xss-lock --transfer-sleep-lock -- i3lock --nofork
- # NetworkManager is the most popular way to manage wireless networks on Linux,
- # and nm-applet is a desktop environment-independent system tray GUI for it.
- # exec --no-startup-id nm-applet
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement