479 lines
17 KiB
Plaintext
479 lines
17 KiB
Plaintext
# 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 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.
|
||
#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
|