###################################################################################################################### ##################################################################################################################### ################# Start of all the settings ################# ##################################################################################################################### ##################################################################################################################### # KEY DEFINITIONS TO REMEMBER # $Mod = WINDOWS key or Super key or Mod4 # Mod1 = ALT key # Control = CTRL key # Shift = SHIFT key # Escape = ESCAPE key # Return = ENTER or RETURN key # KP_Enter = Keypad Enter # Pause = PAUSE key # Print = PRINT key # Tab = TAB key ##################################################################################################################### ################# Define the $mod variable/key ################# ##################################################################################################################### # Key to rule them all : Super(Windows) or Alt key? # Mod4 = Windows or Super key on keyboard # Mod1 = Alt key on keyboard #Set Alt key #set $mod Mod1 #set Super key set $mod Mod4 ##################################################################################################################### ################# Define the movements keys - variables ################# ##################################################################################################################### #This is setup for qwerty set $up l set $down k set $left j set $right semicolon #This is setup for azerty #set $up l #set $down k #set $left j #set $right m ##################################################################################################################### ################# Workspaces location ################# ##################################################################################################################### # setting variables for later use # use xrandr and/or arandr to know the names of your monitors #exec --no-startup-id xrandr --output LVDS1 --mode 1366x768 --output DP3 --mode 1920x1080 --right-of LVDS1 #exec --no-startup-id xrandr --output DVI-I-0 --right-of HDMI-0 --auto #exec --no-startup-id xrandr --output DVI-1 --right-of DVI-0 --auto #exec --no-startup-id xrandr --output DVI-D-1 --right-of DVI-I-1 --auto exec --no-startup-id xrandr --output eDP1 --primary --mode 1920x1080 --pos 0x0 --rotate normal --output HDMI1 --off --output VIRTUAL1 --off exec --no-startup-id xrandr --output HDMI2 --right-of HDMI1 --auto # my current setup #set $firstMonitor DP3 #set $secondMonitor LVDS1 #set $firstMonitor DVI-I-0 #set $secondMonitor HDMI-0 #set $firstMonitor DVI-0 #set $secondMonitor DVI-1 #set $firstMonitor DVI-I-1 #set $secondMonitor DVI-D-1 set $firstMonitor HDMI1 set $secondMonitor HDMI2 workspace 1 output $firstMonitor workspace 2 output $firstMonitor workspace 3 output $firstMonitor workspace 4 output $firstMonitor workspace 5 output $firstMonitor workspace 6 output $secondMonitor workspace 7 output $secondMonitor workspace 8 output $secondMonitor workspace 9 output $secondMonitor workspace 10 output $secondMonitor # switch to workspace 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 focused container to workspace bindsym $mod+Shift+1 move container to workspace 1; workspace 1 bindsym $mod+Shift+2 move container to workspace 2; workspace 2 bindsym $mod+Shift+3 move container to workspace 3; workspace 3 bindsym $mod+Shift+4 move container to workspace 4; workspace 4 bindsym $mod+Shift+5 move container to workspace 5; workspace 5 bindsym $mod+Shift+6 move container to workspace 6; workspace 6 bindsym $mod+Shift+7 move container to workspace 7; workspace 7 bindsym $mod+Shift+8 move container to workspace 8; workspace 8 bindsym $mod+Shift+9 move container to workspace 9; workspace 9 bindsym $mod+Shift+0 move container to workspace 10; workspace 10 ##################################################################################################################### ################# how to exit, logoff, suspend, ... ################# ##################################################################################################################### #Press $mod (super) and X to exit - check toolbar for next choices bindsym $mod+X mode "$mode_system" set $mode_system System (k) lock, (l) logout, (u) suspend, (h) hibernate, (r) reboot, (s) shutdown mode "$mode_system" { bindsym k exec --no-startup-id ~/.config/i3/scripts/i3exit.sh lock, mode "default" bindsym l exec --no-startup-id ~/.config/i3/scripts/i3exit.sh logout, mode "default" bindsym u exec --no-startup-id ~/.config/i3/scripts/i3exit.sh suspend, mode "default" bindsym h exec --no-startup-id ~/.config/i3/scripts/i3exit.sh hibernate, mode "default" bindsym r exec --no-startup-id ~/.config/i3/scripts/i3exit.sh reboot, mode "default" bindsym s exec --no-startup-id ~/.config/i3/scripts/i3exit.sh shutdown, mode "default" # back to normal: Enter or Escape bindsym Return mode "default" bindsym Escape mode "default" } ##################################################################################################################### ################# reload changed configuration ################# ##################################################################################################################### # restart i3 inplace (preserves your layout/session, can be used to upgrade i3) bindsym $mod+Shift+r restart # reload the configuration file bindsym $mod+Shift+c reload ##################################################################################################################### ################# Stopping an application ################# ##################################################################################################################### # kill focused window bindsym $mod+Shift+q kill bindsym $mod+q kill ##################################################################################################################### ################# Moving around in i3 ################# ##################################################################################################################### # Use Mouse+$mod to drag floating windows to their wanted position floating_modifier $mod # toggle tiling / floating bindsym $mod+Shift+f floating toggle # change focus bindsym $mod+$left focus left bindsym $mod+$down focus down bindsym $mod+$up focus up bindsym $mod+$right 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 bindsym $mod+Shift+$left move left bindsym $mod+Shift+$down move down bindsym $mod+Shift+$up move up bindsym $mod+Shift+$right 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 ##################################################################################################################### ################# moving around workspaces ################# ##################################################################################################################### # next/previous workspace bindsym $mod+Tab workspace next bindsym $mod+Shift+Tab workspace prev # switch to workspace with urgent window automatically for_window [urgent=latest] focus ##################################################################################################################### ################# Tiling parameters ################# ##################################################################################################################### # orientation for new workspaces default_orientation horizontal # split in horizontal orientation bindsym $mod+h 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) # qwerty/azerty issue for letter z bindsym $mod+s layout stacking bindsym $mod+z layout tabbed bindsym $mod+e layout toggle split # 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 ##################################################################################################################### ################# resize ################# ##################################################################################################################### # resize window (you can also use the mouse for that) bindsym $mod+r mode "resize" 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 down will shrink the window’s height. # Pressing up will grow the window’s height. bindsym $left resize shrink width 10 px or 10 ppt bindsym $up resize grow height 10 px or 10 ppt bindsym $down resize shrink height 10 px or 10 ppt bindsym $right resize grow width 10 px or 10 ppt # same bindings, but for the arrow keys bindsym Left resize shrink width 10 px or 10 ppt bindsym Up resize grow height 10 px or 10 ppt bindsym Down resize shrink height 10 px or 10 ppt bindsym Right resize grow width 10 px or 10 ppt # back to normal: Enter or Escape bindsym Return mode "default" bindsym Escape mode "default" } ##################################################################################################################### ################# gaming ################# ##################################################################################################################### # launch gaming focused programs bindsym $mod+g mode "$gaming" set $gaming Steam (s), Lutris (l) mode "$gaming" { bindsym s exec --no-startup-id steam-native;focus bindsym l exec --no-startup-id lutris;focus bindsym Return mode "default" bindsym Escape mode "default" } ##################################################################################################################### ################# ################# ##################################################################################################################### # change xrandr display configuration bindsym $mod+t mode "$xrandr" set $xrandr Main (m) mode "$xrandr" { bindsym l exec --no-startup-id xrandr --output eDP1 --primary --mode 1920x1080 --pos 0x0 --rotate normal --output HDMI1 --off --output VIRTUAL1 --off bindsym Return mode "default" bindsym Escape mode "default" } ##################################################################################################################### ################# choose the font ################# ##################################################################################################################### # Font for window titles. Will also be used by the bar unless a different font # is used in the bar {} block below. # choose your font font pango:Noto Mono Regular 13 ##################################################################################################################### ################# execute applications at boot time ################# ##################################################################################################################### # USER APPLICATIONS TO START AT BOOT #Terminal exec --no-startup-id termite;focus # TRAY APPLICATIONS # applications that are not installed will not start # you may see a wheel - hashtag out things you do not want #Authentication dialog exec --no-startup-id /usr/lib/polkit-gnome/polkit-gnome-authentication-agent-1 & # pCloud # change location! exec /home/marc/pcloud # bluetooth #exec --no-startup-id blueberry-tray # network #exec --no-startup-id nm-applet # num lock activated exec_always --no-startup-id numlockx on # volume #exec --no-startup-id volumeicon #variety exec --no-startup-id variety #Conky #exec --no-startup-id conky -c ~/.config/i3/system-overview #Polybar exec_always --no-startup-id ~/.config/polybar/launch.sh & #startup functions exec_always --no-startup-id ~/.config/scritps/startup.sh ##################################################################################################################### ################# system applications ################# ##################################################################################################################### exec --no-startup-id xfce4-power-manager & # ommitted next line to get super key to bring up the menu in xfce and avoid error then in i3 # IF xfsettingsd is activated you can not change themes #exec --no-startup-id xfsettingsd & exec --no-startup-id /usr/lib/xfce4/notifyd/xfce4-notifyd & ##################################################################################################################### ################# applications keyboard shortcuts ################# ##################################################################################################################### #terminal bindsym ctrl+mod1+Return exec --no-startup-id termite;focus #bindsym ctrl+mod1+Return exec --no-startup-id fish;focus #keepass bindsym ctrl+mod1+k exec --no-startup-id keepassxc;focus #System monitor bindsym ctrl+mod1+r exec --no-startup-id xfce4-taskmanager;focus #settings bindsym control+mod1+s exec --no-startup-id xfce4-settings-manager #pavucontrol bindsym control+mod1+u exec --no-startup-id pavucontrol # start xfce-appfinder bindsym control+mod1+a exec --no-startup-id xfce4-appfinder #texteditors #bindsym ctrl+mod1+e exec --no-startup-id atom;focus bindsym ctrl+mod1+e exec --no-startup-id subl3;focus #variety bindsym control+mod1+i exec --no-startup-id variety;focus #thunar bindsym ctrl+mod1+t exec --no-startup-id thunar;focus #discord bindsym ctrl+mod1+d exec --no-startup-id discord;focus #libreoffice bindsym ctrl+mod1+l exec --no-startup-id libreoffice;focus #browsers bindsym control+mod1+f exec --no-startup-id firefox;focus bindsym control+mod1+v exec --no-startup-id vivaldi-stable;focus bindsym control+mod1+c exec --no-startup-id chromium;focus #vlc bindsym ctrl+mod1+m exec --no-startup-id vlc;focus #telegram bindsym ctrl+mod1+b exec --no-startup-id bettergram;focus #pragha bindsym ctrl+mod1+n exec --no-startup-id pragha;focus ##################################################################################################################### ################# screenshots ################# ##################################################################################################################### bindsym Print exec --no-startup-id xfce4-screenshooter bindsym Control+Print exec --no-startup-id xfce4-screenshooter ##################################################################################################################### ################# floating or tiled ################# ##################################################################################################################### #floating enabled from some programs - find with xprop for_window [class="Bleachbit"] floating disable for_window [class="Blueberry.py"] floating enable for_window [class="Brasero"] floating disable for_window [class="Galculator"] floating enable for_window [class="Gnome-disks"] floating disable for_window [class="^Gnome-font-viewer$"] floating enable for_window [class="^Gpick$"] floating enable for_window [class="Hexchat"] floating disable for_window [class="Imagewriter"] floating enable for_window [class="Font-manager"] floating enable for_window [class="Nitrogen"] floating disable for_window [class="Pavucontrol"] floating disable for_window [class="Peek"] floating enable for_window [class="^Skype$"] floating enable for_window [class="^Spotify$"] floating disable for_window [class="System-config-printer.py"] floating enable for_window [class="Unetbootin.elf"] floating enable for_window [class="Usb-creator-gtk"] floating enable for_window [class="^Vlc$"] floating disable for_window [class="Wine"] floating enable for_window [class="Xfburn"] floating disable for_window [class="Xfce4-appfinder"] floating enable for_window [class="Xfce4-settings-manager"] floating disable for_window [class="Xfce4-taskmanager"] floating enable for_window [instance="script-fu"] border normal for_window [instance="variety"] floating disable for_window [title="Copying"] floating enable for_window [title="Deleting"] floating enable for_window [title="Moving"] floating enable for_window [title="^Terminator Preferences$"] floating enable for_window [window_role="pop-up"] floating enable for_window [window_role="^Preferences$"] floating enable for_window [window_role="setup"] floating enable ##################################################################################################################### ################# variety for your wallpapers ################# ##################################################################################################################### #Variety keybindings mod1 = ALT # next wallpaper bindsym mod1+n exec --no-startup-id variety -n bindsym mod1+Right exec --no-startup-id variety -n # previous wallpaper bindsym mod1+p exec --no-startup-id variety -p bindsym mod1+Left exec --no-startup-id variety -p ##################################################################################################################### ################# variety with pywal for your wallpapers ################# ##################################################################################################################### # next wallpaper bindsym mod1+Shift+n exec --no-startup-id variety -n && wal -i $(cat $HOME/.config/variety/wallpaper/wallpaper.jpg.txt)& # previous wallpaper bindsym mod1+Shift+p exec --no-startup-id variety -p && wal -i $(cat $HOME/.config/variety/wallpaper/wallpaper.jpg.txt)& # Update Wallpaper bindsym mod1+Shift+u exec --no-startup-id wal -i $(cat $HOME/.config/variety/wallpaper/wallpaper.jpg.txt) ##################################################################################################################### ################# audio settings ################# ##################################################################################################################### bindsym XF86AudioRaiseVolume exec --no-startup-id "amixer -D pulse sset Master '5%+'" bindsym XF86AudioLowerVolume exec --no-startup-id "amixer -D pulse sset Master '5%-'" bindsym XF86AudioMute exec --no-startup-id "amixer -D pulse set Master toggle" #https://github.com/acrisci/playerctl/ bindsym XF86AudioPlay exec --no-startup-id playerctl play-pause bindsym XF86AudioNext exec --no-startup-id playerctl next bindsym XF86AudioPrev exec --no-startup-id playerctl previous bindsym XF86AudioStop exec --no-startup-id playerctl stop #bindsym XF86AudioPlay exec --no-startup-id "dbus-send --print-reply --dest=org.mpris.MediaPlayer2.spotify /org/mpris/MediaPlayer2 org.mpris.MediaPlayer2.Player.PlayPause" #bindsym XF86AudioNext exec --no-startup-id "dbus-send --print-reply --dest=org.mpris.MediaPlayer2.spotify /org/mpris/MediaPlayer2 org.mpris.MediaPlayer2.Player.Next" #bindsym XF86AudioPrev exec --no-startup-id "dbus-send --print-reply --dest=org.mpris.MediaPlayer2.spotify /org/mpris/MediaPlayer2 org.mpris.MediaPlayer2.Player.Previous" #bindsym XF86AudioStop exec --no-startup-id "dbus-send --print-reply --dest=org.mpris.MediaPlayer2.spotify /org/mpris/MediaPlayer2 org.mpris.MediaPlayer2.Player.Stop" ##################################################################################################################### ################# xbacklight ################# ##################################################################################################################### bindsym XF86MonBrightnessUp exec --no-startup-id xbacklight -inc 5 # increase screen brightness bindsym XF86MonBrightnessDown exec --no-startup-id xbacklight -dec 5 # decrease screen brightness ##################################################################################################################### ################# bar toggle ################# ##################################################################################################################### # bar toggle, hide or show bindsym $mod+b bar mode toggle ##################################################################################################################### ################# border control ################# ##################################################################################################################### # Border control hide_edge_borders both bindsym $mod+u mode "$border" set $border none (o), pixel (p), normal (n) mode "$border" { bindsym o border none bindsym p border pixel 1 bindsym n border normal 1 bindsym Return mode "default" bindsym Escape mode "default" } #new_window pixel 1 #new_window normal 1 new_window none #new_float pixel 1 #new_float normal 1 new_float none ##################################################################################################################### ################# Popups control ################# ##################################################################################################################### #Popups during fullscreen mode popup_during_fullscreen smart ##################################################################################################################### ################# i3 gaps next ################# ##################################################################################################################### # Settings for I3 next gap git # https://github.com/Airblader/i3/tree/gaps-next # delete or uncomment the following lines if you do not have it or do not # want it for_window [class="^.*"] border none gaps inner 10 gaps outer 0 ##################################################################################################################### ################# compton (now picom) of i3wm ################# ##################################################################################################################### #if you want transparency on non-focused windows, ... #exec_always --no-startup-id compton --config ~/.config/i3/compton.conf exec_always --no-startup-id picom -b --config ~/.config/i3/picom.conf ##################################################################################################################### ##################################################################################################################### ##################################################################################################################### ################# bar appearance ################# ##################################################################################################################### ##################################################################################################################### ##################################################################################################################### #bar { # # height 25 # workspace_buttons yes # font pango:Noto Sans 14 # # #position top # position bottom # # #system icons # #tray_output none # #tray_output $firstMonitor # #tray_output $secondMonitor # OPTION 1 : i3status # type status_command i3status without the config file and # you will get the standard i3status bar # Second one is the standard statusbar with my personal settings #status_command i3status #status_command i3status -c ~/.config/i3/i3status.conf # OPTION 2 : i3blocks # https://github.com/vivien/i3blocks # another way to provide text in the statusbar # put hastag in front if not installed #status_command i3blocks #status_command i3blocks -c ~/.config/i3/i3blocks.conf #status_command i3blocks -c ~/.config/i3/i3blocks-rainbow.conf #status_command i3blocks -c ~/.config/i3/i3blocks-original.conf #status_command i3blocks -c ~/.config/i3/i3blocks-awesome.conf # OPTION 3 : conky # You can also replace the istatus bar with a conky # start-conky-i3statusbar.sh is started and conky will follow # documentation : https://i3wm.org/docs/user-contributed/conky-i3bar.html # conky configuration is in conky-i3statusbar #status_command ~/.config/i3/start-conky-i3statusbar.sh # OPTION 4 : polybar # polybar is launched elsewhere - search for the word # from the opening of the "bar {...}" till the end has to go or hashtagged out # in order for the system trayicons to show up in polybar #colors { # background #2F2F2F # statusline #eeeeee # separator #666666 # # border backgr. text # focused_workspace #a9a9a9 #5f676a #eeeeee # active_workspace #a9a9a9 #5f676a #a9a9a9 # inactive_workspace #a9a9a9 #222222 #a9a9a9 # urgent_workspace #a9a9a9 #d42121 #FFFFFF # } # # } # DarkGrey background with white text - not focus grey background - black text # Windows decoration colors # class border backgr. text indicator #client.placeholder #242424 #242424 #242424 #client.background #242424 #242424 #242424 #client.focused #4A4A4A #4A4A4A #e5e5e5 #4A4A4A #client.unfocused #222222 #222222 #aaaaaa #222222 #client.focused_inactive #222222 #222222 #a9a9a9 #222222 #client.urgent #d42121 #d42121 #f7f7f7 #d42121 ################################################################# ################### BAR APPEARANCE ARCHIVE ###################### ################################################################# # Orange background with black text - not focus grey background - white text # Windows decoration colors # class border backgr. text indicator # client.background color #222222 # client.focused #FFAF00 #FFAF00 #333333 #00AA00 # client.unfocused #222222 #222222 #aaaaaa #2e9ef4 # client.focused_inactive #333333 #5f676a #ffffff #484e50 # client.urgent #2f343a #900000 #ffffff #900000 # DarkGrey background with white text - not focus grey background - black text # Windows decoration colors # https://i3wm.org/docs/userguide.html#_changing_colors # client.background color # class border backgr. text indicator # client.focused #4c7899 #285577 #ffffff #2e9ef4 # client.focused_inactive #333333 #5f676a #ffffff #484e50 # client.unfocused #333333 #222222 #888888 #292d2e # client.urgent #2f343a #900000 #ffffff #900000 # client.placeholder #000000 #0c0c0c #ffffff #000000 # colors { # background #222222 # statusline #eeeeee # separator #666666 # border backgr. text # focused_workspace #4c7899 #285577 #ffffff # active_workspace #333333 #5f676a #ffffff # inactive_workspace #333333 #222222 #888888 # urgent_workspace #2f343a #900000 #ffffff # } # Alternatives # BLue and grey Colors # https://github.com/Gravemind/ArchLinux/blob/master/.i3/config # class border backgr. text indicator # client.focused #000000 #285577 #dddddd #0099ff # client.focused_inactive #000000 #333333 #888888 #484e50 # client.unfocused #000000 #000000 #555555 #292d2e # client.urgent #2f343a #900000 #ffffff #900000 # blue background with white text # Windows decoration colors # class border backgr. text indicator # client.background color #222222 # client.focused #4c7899 #285577 #ffffff #2e9ef4 # client.focused_inactive #333333 #5f676a #ffffff #484e50 # client.unfocused #333333 #222222 #888888 #292d2e # client.urgent #2f343a #900000 #ffffff #900000 # Blue-green background - orange text # Windows decoration colors # http://www.fastlinux.eu/_archiv/index.php?page=linux047 # class border backgr. text # client.focused #2B6473 #2B6473 #FFA000 # client.focused_inactive #004050 #004050 #FFA000 # client.unfocused #004050 #004050 #cccccc # client.urgent #900000 #900000 #ffffff # Red background - black text # Windows decoration colors # https://github.com/Blueblur/dotfiles/blob/master/.i3/config # class border backgr. text indicator # client.focused #d64937 #d64937 #2D2D2D #2e9ef4 # client.focused_inactive #2d2d2d #2d2d2d #dcdcdc #484e50 # client.unfocused #2D2D2D #2d2d2d #dcdcdc #292d2e # client.urgent #2D2D2D #2D2D2D #dcdcdc #900000 ##################################################################################################################### ##################################################################################################################### ##################################################################################################################### ##################################################################################################################### ##################################################################################################################### ######################################## THE END ########################################### ##################################################################################################################### ##################################################################################################################### ##################################################################################################################### ##################################################################################################################### #####################################################################################################################