dotfiles/i3/.config/i3/config

479 lines
17 KiB
Plaintext
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# vim:filetype=i3
#
# i3 config file
#
# Please see http://i3wm.org/docs/userguide.html for a complete reference!
#
# Set mod key (Mod1=<Alt>, Mod4=<Super>)
set $mod Mod4
# set default desktop layout (default is tiling)
# workspace_layout tabbed <stacking|tabbed>
# big monitors:
workspace_layout stacking
# small monitors:
#workspace_layout tabbed
####################
## Visual Section ##
####################
# Configure border style <normal|1pixel|pixel xx|none|pixel>
#new_window pixel 1
new_float normal
# thin borders
hide_edge_borders both
# change borders
bindsym $mod+u border none
bindsym $mod+y border pixel 1
bindsym $mod+n border normal
# Font for window titles. Will also be used by the bar unless a different font
# is used in the bar {} block below.
font pango:Hack, Fira Sans, FontAwesome, PowerlineSymbols 8
#-> Colors
# Use custom colors for black
set $black #282828
set $darkblack #1d2021
set $transparent #000000
set $bg-color #444444
set $inactive-bg-color #2f343f
set $text-color #f3f4f5
set $inactive-text-color #676E7D
set $urgent-bg-color #E53935
# window colors
# border background text indicator
client.focused $bg-color $bg-color $text-color #00ff00
client.unfocused $inactive-bg-color $inactive-bg-color $inactive-text-color #00ff00
client.focused_inactive $inactive-bg-color $inactive-bg-color $inactive-text-color #00ff00
client.urgent $urgent-bg-color $urgent-bg-color $text-color #00ff00
#################
## Bar Section ##
#################
bar {
status_command i3blocks -c ~/.config/i3/i3blocks.conf
colors {
background $inactive-bg-color
separator #757575
# border background text
focused_workspace $bg-color $bg-color $text-color
inactive_workspace $inactive-bg-color $inactive-bg-color $inactive-text-color
urgent_workspace $urgent-bg-color $urgent-bg-color $text-color
}
position bottom
}
########################
## Workspaces Section ##
########################
# Cheat: http://fontawesome.io/cheatsheet/
# Terminal 
set $workspace1 "1 "
# Web, Downloads and Transfers     
set $workspace2 "2 "
# Work GUI dependent     
set $workspace3 "3 "
# Development      
set $workspace4 "4 "
set $workspace5 "5 "
set $workspace6 "6 "
set $workspace7 "7 "
set $workspace8 "8 "
# Mailing and Chatting  (icons for smartphone handling ->  )
set $workspace9 "9 "
# Multimedia / Graphical Work   
set $workspace10 "10 "
# Open applications on specific workspaces
assign [class="Thunderbird"] $workspace9
assign [class="Rhythmbox"] $workspace10
#assign [class="Firefox"] $workspace2
assign [class="Atril"] $workspace3
assign [class="TelegramDesktop"] $workspace9
assign [class="Hexchat"] $workspace9
# Display the popup if it belongs to the fullscreen application only. This is
# the default and should be reasonable behavior for most users.
# Modes are smart|ignore|leave_fullscreen
popup_during_fullscreen smart
# Open specific applications in floating mode
for_window [title="alsamixer"] floating enable border pixel 1
for_window [class="Calamares"] floating enable border normal
for_window [class="Clipgrab"] floating enable
for_window [title="File Transfer*"] floating enable
for_window [class="^ThunarHome$"] floating enable
for_window [title="^File Operation Progress$"] floating enable
for_window [class="Galculator"] floating enable border pixel 1
for_window [class="Qalculate-gtk"] floating enable border pixel 1
for_window [class="GParted"] floating enable border normal
for_window [title="i3_help"] floating enable sticky enable border normal
for_window [class="Lightdm-gtk-greeter-settings"] floating enable
for_window [class="Lxappearance"] floating enable sticky enable border normal
for_window [class="Cinnamon-settings.py"] floating enable border normal
for_window [title="MuseScore: Play Panel"] floating enable
for_window [class="Nitrogen"] floating enable sticky enable border normal
for_window [class="Oblogout"] fullscreen enable
for_window [class="octopi"] floating enable
for_window [title="About Pale Moon"] floating enable
for_window [class="Pamac-manager"] floating enable
for_window [class="Pavucontrol"] floating enable
for_window [class="qt5ct"] floating enable sticky enable border normal
for_window [class="Qtconfig-qt4"] floating enable sticky enable border normal
for_window [class="Simple-scan"] floating enable border normal
for_window [class="(?i)System-config-printer.py"] floating enable border normal
for_window [class="Skype"] floating enable border normal
for_window [class="Thus"] floating enable border normal
for_window [class="Timeset-gui"] floating enable border normal
for_window [class="Xfburn"] floating enable
for_window [class="qTox"] floating enable
for_window [class="Gnome-system-monitor"] floating enable
for_window [class="Gpk-update-viewer"] floating enable
for_window [title="^Current Media Information$"] floating enable
for_window [class="^Xfrun4$"] floating enable
for_window [class="^Xfce4-appfinder$"] floating enable
no_focus [class="^Xfce4-notifyd$" ]
for_window [class="^cameraclient$"] floating enable
for_window [class="^blueman-manager$"] floating enable
for_window [class="^galculator$"] floating enable
for_window [class="^vlc$"] floating enable
for_window [class="Vlc"] floating enable
for_window [class="^Vlc$"] floating enable
for_window [class="^ffplay$"] floating enable
for_window [class="^mpv$"] floating enable
for_window [class="^Yad$"] floating enable border normal
for_window [class="^xpad$"] floating enable
for_window [class="^Rsvg-view-3$"] floating enable
for_window [class="^Volumeicon$"] floating enable
for_window [class="^Pavucontrol$"] floating enable
for_window [class="^Nm-connection-editor"] floating enable
for_window [class="Gdebi-gtk"] floating enable border normal
for_window [class="TelegramDesktop"] floating enable border normal
# GNUplot and Virtualbox dislike i3 although I tried
for_window [class="^gnuplot$"] floating enable
#for_window [class="(?i)virtualbox"] floating enable border normal
# Gajim stuff
assign [class="^Gajim$"] → $workspace1
for_window [class="^Gajim$" window_role="buddy_list"] layout splith, resize shrink width 0 px or 30 ppt, move right
for_window [class="^Gajim$" window_role="conversation"] resize grow width 0 px or 30 ppt, move left
bindsym $mod+i [class="^Gajim$" window_role="(?i)conversation"] focus; [class="^Gajim$"] focus
##########################
## Key-Bindings Section ##
##########################
#-> Workspace related
# switch to workspace
bindsym $mod+1 workspace $workspace1
bindsym $mod+2 workspace $workspace2
bindsym $mod+3 workspace $workspace3
bindsym $mod+4 workspace $workspace4
bindsym $mod+5 workspace $workspace5
bindsym $mod+6 workspace $workspace6
bindsym $mod+7 workspace $workspace7
bindsym $mod+8 workspace $workspace8
bindsym $mod+9 workspace $workspace9
bindsym $mod+0 workspace $workspace10
# move focused container to workspace
bindsym $mod+Shift+1 move container to workspace $workspace1
bindsym $mod+Shift+2 move container to workspace $workspace2
bindsym $mod+Shift+3 move container to workspace $workspace3
bindsym $mod+Shift+4 move container to workspace $workspace4
bindsym $mod+Shift+5 move container to workspace $workspace5
bindsym $mod+Shift+6 move container to workspace $workspace6
bindsym $mod+Shift+7 move container to workspace $workspace7
bindsym $mod+Shift+8 move container to workspace $workspace8
bindsym $mod+Shift+9 move container to workspace $workspace9
bindsym $mod+Shift+0 move container to workspace $workspace10
# workspace back and forth (with/without active container)
workspace_auto_back_and_forth yes
bindsym $mod+b workspace back_and_forth
bindsym $mod+Shift+b move container to workspace back_and_forth; workspace back_and_forth
# Cycle through active workspaces
bindsym $mod+Tab workspace next
bindsym $mod+Shift+Tab workspace prev
# switch to workspace with urgent window automatically
for_window [urgent=latest] focus
# sticky window
bindsym $mod+Shift+s sticky toggle
# Make the currently focused window a scratchpad
bindsym $mod+Shift+minus move scratchpad
# Show the first scratchpad window
bindsym $mod+minus scratchpad show
#-> General Behavior
# Use Mouse+$mod to drag floating windows to their wanted position
floating_modifier $mod
# change focus (VIM like setup)
bindsym $mod+h focus left
bindsym $mod+j focus down
bindsym $mod+k focus up
bindsym $mod+l 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 (VIM like setup)
bindsym $mod+Shift+h move left
bindsym $mod+Shift+j move down
bindsym $mod+Shift+k move up
bindsym $mod+Shift+l 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
# kill focused window
bindsym $mod+Shift+q kill
# Alias for the command above
bindsym Mod1+F4 kill
# split in horizontal orientation (VIM like setup)
bindsym $mod+comma 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+c focus child
# 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
# 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 windows width.
# Pressing right will grow the windows width.
# Pressing up will shrink the windows height.
# Pressing down will grow the windows height.
#commented for VIM like setup
#bindsym j resize shrink width 5 px or 5 ppt
#bindsym k resize grow height 5 px or 5 ppt
#bindsym l resize shrink height 5 px or 5 ppt
#bindsym semicolon resize grow width 5 px or 5 ppt
bindsym $mod+h resize shrink width 5 px or 5 ppt
bindsym $mod+j resize grow height 5 px or 5 ppt
bindsym $mod+k resize shrink height 5 px or 5 ppt
bindsym $mod+l resize grow width 5 px or 5 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
# exit resize mode: Enter or Escape
bindsym Return mode "default"
bindsym Escape mode "default"
}
bindsym $mod+r mode "resize"
####################
## System Control ##
####################
#--> Volume Control
# Pulse Audio controls
bindsym XF86AudioRaiseVolume exec --no-startup-id ~/.config/i3/scripts/volume_level.sh up #increase sound volume
bindsym XF86AudioLowerVolume exec --no-startup-id ~/.config/i3/scripts/volume_level.sh down #decrease sound volume
bindsym XF86AudioMute exec --no-startup-id ~/.config/i3/scripts/volume_level.sh toggle # mute sound
bindsym $mod+o exec pavucontrol
# Sreen brightness controls
bindsym XF86MonBrightnessUp exec --no-startup-id xbright +90 # increase screen brightness
bindsym XF86MonBrightnessDown exec --no-startup-id xbright -90 # decrease screen brightness
# Media player controls
#bindsym XF86AudioPause exec "playerctl play-pause || cmus-remote -u"
#bindsym $mod+backslash exec "sh -c 'i3-msg \"workspace $workspace10; exec kitty -e ~/.config/i3/scripts/cmus-play.sh \"'"
#bindsym XF86AudioNext exec "playerctl next || cmus-remote --next"
#bindsym XF86AudioPrev exec "playerctl previous || cmus-remote --prev"
# Disable touchpad
bindsym XF86Sleep exec --no-startup-id ~/.config/i3/scripts/touchpad.sh
########################
## Start Applications ##
########################
bindsym $mod+Return exec kitty #i3-sensible-terminal
bindsym $mod+F3 exec kitty -e 'ranger'
bindsym Print exec xfce4-screenshooter
bindsym $mod+Ctrl+x --release exec --no-startup-id xkill
bindsym $mod+Shift+f exec firefox
bindsym $mod+Shift+m exec thunderbird
bindsym Ctrl+Shift+1 exec gnome-system-monitor
bindsym $mod+Shift+t exec pcmanfm
bindsym $mod+Shift+n exec netbeans
################
## Start Menu ##
################
# start dmenu (a program launcher)
bindsym Mod1+F2 exec --no-startup-id dmenu_run
#bindsym Mod1+F2 exec --no-startup-id j4-dmenu-desktop [--dmenu="dmenu -i"] [--term="i3-sensible-terminal"]
# start j4-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
bindsym $mod+d exec --no-startup-id j4-dmenu-desktop [--dmenu="dmenu -i"] [--term="i3-sensible-terminal"]
# launch categorized menu
bindsym $mod+z exec --no-startup-id ~/.config/i3/scripts/morc_menu.sh
################
## Power Menu ##
################
# lock
bindsym $mod+Shift+x exec light-locker-command -l
# alias for the command above
bindsym Ctrl+Mod1+l exec light-locker-command -l
set $mode_system "System (l) lock, (e) logout, (s) suspend, (r) reboot, (Shift+s) shutdown"
mode $mode_system {
bindsym l exec --no-startup-id ~/.config/i3/scripts/exit_menu.sh lock, mode "default"
bindsym e exec --no-startup-id ~/.config/i3/scripts/exit_menu.sh logout, mode "default"
bindsym s exec --no-startup-id ~/.config/i3/scripts/exit_menu.sh suspend, mode "default"
bindsym r exec --no-startup-id ~/.config/i3/scripts/exit_menu.sh reboot, mode "default"
bindsym Shift+s exec --no-startup-id ~/.config/i3/scripts/exit_menu.sh poweroff, mode "default"
# back to normal: Enter or Escape
bindsym Return mode "default"
bindsym Escape mode "default"
}
#bindsym $mod+Pause mode $mode_system
bindsym $mod+Home mode $mode_system
#bindsym XF86Sleep exec --no-startup-id ~/.config/i3/scripts/exit_menu.sh suspend, mode "default"
############################
######## KEYBOARD ##########
############################
#exec --no-startup-id xmodmap /home/xellos/.Xmodmap &
#bindsym mod3+Tab exec --no-startup-id xdotool key Caps_Lock
bindsym mod3+Escape exec --no-startup-id ~/.config/i3/scripts/exit_menu.sh poweroff
############################
## Autostart applications ##
############################
#-> System related
exec --no-startup-id /usr/bin/fcitx5 &
exec --no-startup-id nm-applet &
exec --no-startup-id /usr/lib/policykit-1-gnome/polkit-gnome-authentication-agent-1 &
exec --no-startup-id package-update-indicator &
exec --no-startup-id xfsettingsd --sm-client-disable &
exec --no-startup-id xfce4-power-manager &
exec --no-startup-id picom &
exec --no-startup-id light-locker &
exec --no-startup-id nitrogen --restore &
#-> Session AutoStart
exec --no-startup-id ~/.config/i3/scripts/autostart.sh
exec --no-startup-id parcellite &
#exec --no-startup-id blueman-applet &
#exec --no-startup-id redshift-gtk &
#exec --no-startup-id indicator-kdeconnect &
exec --no-startup-id nextcloud &
#exec --no-startup-id gajim &
#exec --no-startup-id hexchat --minimize=2 &
exec --no-startup-id Telegram -startintray &
#exec --no-startup-id /opt/spotlight.sh &
# DPI because XFCE hardcoded it
## workstation
#exec --no-startup-id "sleep 5; xrandr --dpi 109 &"
## laptop
exec --no-startup-id "sleep 5; xrandr --dpi 158 &"
# Display Mode
bindsym $mod+p mode "$mode_display"
set $mode_display Ext Screen: (z) VGA, (x) HDMI, (c) External OFF
mode "$mode_display" {
bindsym z mode "$mode_display_vga"
bindsym x mode "$mode_display_hdmi"
bindsym c exec --no-startup-id xrandr --output VGA1 --off --output HDMI2 --off --output DP2-3 --off, mode "default"
# Return to exit out, Escape to go back to external output
bindsym Return mode "default"
bindsym Escape mode "default"
}
# VGA settings
set $mode_display_vga Ext Screen (VGA): (z) On, (x) Mirrored
# Set the shortcuts and what they do
mode "$mode_display_vga" {
bindsym z exec --no-startup-id xrandr --output VGA1 --auto --left-of LVDS1, mode "default"
bindsym x exec --no-startup-id xrandr --output VGA1 --auto --output LVDS1 --auto --same-as LVDS1, mode "default"
# Return to exit out, Escape to go back to external output
bindsym Return mode "default"
bindsym Escape mode "$mode_display"
}
# HDMI settings
set $mode_display_hdmi Ext Screen (HDMI): (z) On, (x) Mirrored
# Set the shortcuts and what they do
mode "$mode_display_hdmi" {
bindsym z exec --no-startup-id xrandr --output HDMI2 --auto --left-of LVDS1, mode "default"
bindsym x exec --no-startup-id xrandr --output HDMI2 --auto --output LVDS1 --auto --same-as HDMI2, mode "default"
bindsym c exec --no-startup-id xrandr --output HDMI2 --auto --off, mode "default"
# Return to exit out, Escape to go back to external output
bindsym Return mode "default"
bindsym Escape mode "$mode_display"
}
exec --no-startup-id ~/.config/i3/scripts/remaps.sh