forked from extern/nix-config
64646500be
This commit adds theme support (through .Xresources) for i3 and polybar. As an added bonus, theme.cr has been updated to make changing these colors automatic. The termite config has been updated to reflect the new settings from theme.cr.
226 lines
7.7 KiB
INI
226 lines
7.7 KiB
INI
##################################################################################
|
|
#
|
|
# New Start: A modern Arch workflow built with an emphasis on functionality.
|
|
# Copyright (C) 2017 Donovan Glover
|
|
#
|
|
# This program is free software: you can redistribute it and/or modify
|
|
# it under the terms of the GNU General Public License as published by
|
|
# the Free Software Foundation, either version 3 of the License, or
|
|
# (at your option) any later version.
|
|
#
|
|
# This program is distributed in the hope that it will be useful,
|
|
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
# GNU General Public License for more details.
|
|
#
|
|
# You should have received a copy of the GNU General Public License
|
|
# along with this program. If not, see <https://www.gnu.org/licenses/>.
|
|
#
|
|
##################################################################################
|
|
|
|
# Set the command key for i3 to super
|
|
set $mod Mod4
|
|
|
|
# Set the secondary command key to alt
|
|
set $alt Mod1
|
|
|
|
# Use Hack as our preferred font of choice
|
|
font pango:Hack 12
|
|
|
|
# Add a subtle border to all windows (allows us to easily see which one has focus)
|
|
for_window [class="^.*"] border pixel 1
|
|
new_window pixel 1
|
|
|
|
####################################################################
|
|
# i3 Controls - These are the core keys that you use to manage
|
|
# your windows, some of which are already i3 defaults
|
|
####################################################################
|
|
|
|
# ========================= Managing Windows =========================
|
|
|
|
# Open a new terminal
|
|
bindsym $mod+Return exec termite
|
|
|
|
# Close the currently focused window
|
|
bindsym $mod+q kill
|
|
bindsym $mod+Shift+q kill
|
|
|
|
# Change the focus between windows, vim style
|
|
bindsym $mod+h focus left
|
|
bindsym $mod+j focus down
|
|
bindsym $mod+k focus up
|
|
bindsym $mod+l focus right
|
|
|
|
# Move the currently focused window, vim style
|
|
bindsym $mod+Shift+h move left
|
|
bindsym $mod+Shift+j move down
|
|
bindsym $mod+Shift+k move up
|
|
bindsym $mod+Shift+l move right
|
|
|
|
# Toggle fullscreen (also bind F11 so certain programs use i3's fullscreen)
|
|
bindsym $mod+f fullscreen toggle
|
|
bindsym F11 fullscreen toggle
|
|
|
|
# Switch to an updated window (useful for opening URLs and jumping to the browser)
|
|
bindsym $mod+p [urgent=latest] focus
|
|
|
|
# Open new windows horizontally (to the right) or vertically (below)
|
|
bindsym $mod+semicolon split horizontal
|
|
bindsym $mod+v split vertical
|
|
|
|
# ========================= Floating Windows =========================
|
|
|
|
# Toggle floating mode
|
|
bindsym $mod+Shift+space floating toggle
|
|
|
|
# Hold down $mod and use the pointer to move floating windows around
|
|
floating_modifier $mod
|
|
|
|
# Switch between focusing floating windows and regular windows
|
|
bindsym $mod+space focus mode_toggle
|
|
|
|
# ========================= Program-Specific Windows =========================
|
|
|
|
for_window [class="^feh$"] floating enable
|
|
for_window [instance="^feh$"] floating enable
|
|
|
|
# ========================= Workspaces =========================
|
|
|
|
# Easily switch between your two most recently used workspaces
|
|
bindsym $alt+a workspace back_and_forth
|
|
|
|
# Easily switch between all workspaces
|
|
bindsym $alt+Tab workspace next
|
|
bindsym $alt+Shift+Tab workspace prev
|
|
|
|
# Easily open a new workspace
|
|
bindsym $alt+f exec --no-startup-id ~/.config/i3/new_workspace.sh
|
|
|
|
# Move directly to workspace N without tabbing through all of them
|
|
bindsym $mod+1 workspace 1
|
|
bindsym $mod+2 workspace 2
|
|
bindsym $mod+3 workspace 3
|
|
bindsym $mod+4 workspace 4
|
|
bindsym $mod+5 workspace 5
|
|
bindsym $mod+6 workspace 6
|
|
bindsym $mod+7 workspace 7
|
|
bindsym $mod+8 workspace 8
|
|
bindsym $mod+9 workspace 9
|
|
bindsym $mod+0 workspace 10
|
|
|
|
# Move the currently focused window to workspace N
|
|
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
|
|
bindsym $mod+Shift+4 move container to workspace 4
|
|
bindsym $mod+Shift+5 move container to workspace 5
|
|
bindsym $mod+Shift+6 move container to workspace 6
|
|
bindsym $mod+Shift+7 move container to workspace 7
|
|
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
|
|
|
|
# ========================= Resize Mode =========================
|
|
|
|
# Set the re-size size (rss) to 10
|
|
set $rss 10
|
|
|
|
# Keybindings for resize mode (Enter or Return to exit)
|
|
mode "resize" {
|
|
bindsym h resize shrink width $rss px or $rss ppt
|
|
bindsym j resize grow height $rss px or $rss ppt
|
|
bindsym k resize shrink height $rss px or $rss ppt
|
|
bindsym l resize grow width $rss px or $rss ppt
|
|
|
|
bindsym Return mode "default"
|
|
bindsym Escape mode "default"
|
|
}
|
|
|
|
# Keybinding to enter resize mode
|
|
bindsym $mod+r mode "resize"
|
|
|
|
# ========================= Lock Screen =========================
|
|
|
|
# Add a keybinding to instantly lock the screen
|
|
bindsym $mod+Ctrl+l exec i3lock -i ~/.config/i3/lock.png
|
|
|
|
# ========================= i3-Specific =========================
|
|
|
|
# Restart i3 (layout is preserved and open programs are still open)
|
|
# This is particularly useful when you want to test out new i3/config settings
|
|
bindsym $mod+Shift+r restart
|
|
|
|
# ========================= Disabled Keys =========================
|
|
|
|
# Disable F1 (useful for programs that open a help window)
|
|
bindsym F1 nop
|
|
|
|
# ========================= Program Shortcuts =========================
|
|
|
|
# Easily open a new browser window with []
|
|
bindsym $mod+braceleft exec inox
|
|
bindsym $mod+braceright exec waterfox
|
|
|
|
# ========================= Music Player (cmus) =========================
|
|
|
|
# Easily pause and resume music playback
|
|
bindsym $mod+m exec --no-startup-id cmus-remote --pause
|
|
|
|
# Easily jump to the next and previous songs
|
|
bindsym $mod+b exec --no-startup-id cmus-remote --prev
|
|
bindsym $mod+n exec --no-startup-id cmus-remote --next
|
|
|
|
# ========================= Screenshot tool (shotgun) =========================
|
|
|
|
# Bind Print Scren to screenshot the desktop and open the output png
|
|
bindsym Print exec ~/.config/i3/screenshot.sh
|
|
|
|
# ========================= Information Bar (polybar) =========================
|
|
|
|
# Easily show and hide polybar
|
|
bindsym $mod+o exec --no-startup-id ~/.config/i3/polybar.sh
|
|
|
|
####################################################################
|
|
# Configuration and keybindings specific to i3-gaps
|
|
####################################################################
|
|
|
|
# Our preferred gap size of choice
|
|
set $inner 20
|
|
set $outer 5
|
|
|
|
# Enable gaps with our size of choice
|
|
gaps inner $inner
|
|
gaps outer $outer
|
|
|
|
# Only show gaps when there's more than one window open
|
|
# smart_gaps on
|
|
|
|
# Only show borders when there's more than one window open
|
|
# smart_borders on
|
|
|
|
# Make it easy to switch between gaps and no gaps
|
|
bindsym $mod+g gaps inner all set 0; gaps outer all set 0
|
|
bindsym $mod+Shift+g gaps inner all set $inner; gaps outer all set $outer
|
|
|
|
# Make it easy to disable and re-enable borders on a per-window basis
|
|
bindsym $mod+u border none
|
|
bindsym $mod+y border pixel 1
|
|
|
|
####################################################################
|
|
# Sane defaults for border colors in i3 - Here we set the focused
|
|
# color to green and everything else to a light grey
|
|
####################################################################
|
|
|
|
set_from_resource $text i3wm.color8
|
|
set_from_resource $focused i3wm.color18
|
|
set_from_resource $unfocused i3wm.color19
|
|
set_from_resource $urgent i3wm.color3
|
|
|
|
# Colors: Border Background Text Indicator
|
|
client.focused $focused $focused $text $focused
|
|
client.focused_inactive $unfocused $unfocused $text $unfocused
|
|
client.unfocused $unfocused $unfocused $text $unfocused
|
|
client.urgent $urgent $urgent $text $urgent
|
|
|
|
# vim:ft=dosini
|