From 92c28eae4eb89ffae84d107d738e3bc49ed936ef Mon Sep 17 00:00:00 2001 From: Jeff LANCE Date: Wed, 26 Apr 2023 22:01:03 +0200 Subject: [PATCH] update config structure --- conf.d/i3/conf.d/colors.conf | 36 ++++ conf.d/i3/conf.d/keybindings.conf | 173 ++++++++++++++++++ conf.d/i3/conf.d/startup_apps.conf | 25 +++ conf.d/i3/conf.d/windows.conf | 21 +++ conf.d/i3/config | 280 +---------------------------- 5 files changed, 256 insertions(+), 279 deletions(-) create mode 100644 conf.d/i3/conf.d/colors.conf create mode 100644 conf.d/i3/conf.d/keybindings.conf create mode 100644 conf.d/i3/conf.d/startup_apps.conf create mode 100644 conf.d/i3/conf.d/windows.conf diff --git a/conf.d/i3/conf.d/colors.conf b/conf.d/i3/conf.d/colors.conf new file mode 100644 index 0000000..7ffaa52 --- /dev/null +++ b/conf.d/i3/conf.d/colors.conf @@ -0,0 +1,36 @@ +################### +# Colors settings # +################### + +# Colors set from ~/.Xresources +set_from_resource $background background +set_from_resource $foreground foreground +set_from_resource $color0 color0 +set_from_resource $color1 color1 +set_from_resource $color2 color2 +set_from_resource $color3 color3 +set_from_resource $color4 color4 +set_from_resource $color5 color5 +set_from_resource $color6 color6 +set_from_resource $color7 color7 +set_from_resource $color8 color8 +set_from_resource $color9 color9 +set_from_resource $color10 color10 +set_from_resource $color11 color11 +set_from_resource $color12 color12 +set_from_resource $color13 color13 +set_from_resource $color14 color14 +set_from_resource $color15 color15 + +# Theme colors +# class border backgr. text indic. child_border +# My colors +client.background $background + +client.focused $foreground $background $foreground $color2 $color2 +client.unfocused $foreground $background $foreground $color4 $color4 +client.focused_inactive $foreground $background $foreground $color4 $color4 +client.urgent $foreground $background $foreground $color4 $color4 +client.placeholder $foreground $background $foreground $color4 $color4 + + diff --git a/conf.d/i3/conf.d/keybindings.conf b/conf.d/i3/conf.d/keybindings.conf new file mode 100644 index 0000000..030250b --- /dev/null +++ b/conf.d/i3/conf.d/keybindings.conf @@ -0,0 +1,173 @@ +############### +# Keybindings # +############### + +# Modifier key +set $alt Mod1 +set $mod Mod4 + +# Use Mouse+$mod to drag floating windows to their wanted position +floating_modifier $mod + +# Use pactl to adjust volume in PulseAudio. +set $refresh_i3status killall -SIGUSR1 i3status +bindsym XF86AudioRaiseVolume exec --no-startup-id pactl set-sink-volume @DEFAULT_SINK@ +10% && $refresh_i3status +bindsym XF86AudioLowerVolume exec --no-startup-id pactl set-sink-volume @DEFAULT_SINK@ -10% && $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 + +# start dmenu (a program launcher) +# bindsym $mod+d exec --no-startup-id dmenu_run +# A more modern dmenu replacement is rofi: +# bindcode $mod+40 exec "rofi -modi drun,run -show drun" +bindsym $mod+space exec "rofi -show drun" +# There also is i3-dmenu-desktop which only displays applications shipping a +# .desktop file. It is a wrapper around dmenu, so you need that installed. +# bindcode $mod+40 exec --no-startup-id i3-dmenu-desktop + +# start a terminal +bindsym $mod+Return exec i3-sensible-terminal + +# start some useful apps +bindsym $mod+e exec "exo-open --launch FileManager" +bindsym Print exec "xfce4-screenshooter -fd 1" +bindsym Shift+Print exec "xfce4-screenshooter -r" +bindsym $mod+twosuperior exec "xfce4-terminal --drop-down" +# bindsym $alt+Print exec "xfce4-screenshooter -fd 1" +# bindsym XF86TouchpadToggle exec "xfce4-display-settings --minimal" +# bindsym XF86Sleep exec xflock4 + +# kill focused window +bindsym $mod+q kill + +# change focus +bindsym $mod+j focus left +bindsym $mod+k focus down +bindsym $mod+i 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 +bindsym $mod+Shift+j move left +bindsym $mod+Shift+k move down +bindsym $mod+Shift+i 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 + +# 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+m 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+f floating toggle + +# change focus between tiling / floating windows +bindsym $mod+Tab focus mode_toggle + +# focus the parent container +bindsym $mod+a focus parent + +# focus the child container +#bindsym $mod+d focus child + +# 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" + +# 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 + +bindsym $mod+Control+Left workspace prev +bindsym $mod+Control+Right workspace next + +# 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 + +# bindsym $mod+Shift+Left move container to workspace prev +# bindsym $mod+Shift+Right move container to workspace next + +# 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'" + +# 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. + bindsym j resize shrink width 10 px or 10 ppt + bindsym i resize grow height 10 px or 10 ppt + bindsym k resize shrink height 10 px or 10 ppt + bindsym l 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 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" + +workspace 1 output primary +bindsym $mod+x move workspace to output primary + + diff --git a/conf.d/i3/conf.d/startup_apps.conf b/conf.d/i3/conf.d/startup_apps.conf new file mode 100644 index 0000000..bcc337e --- /dev/null +++ b/conf.d/i3/conf.d/startup_apps.conf @@ -0,0 +1,25 @@ +########### +# Startup # +########### + +# The combination of xss-lock, nm-applet and pactl is a popular choice, so +# they are included here as an example. Modify as you see fit. + +# xss-lock grabs a logind suspend inhibit lock and will use i3lock to lock the +# screen before suspend. Use loginctl lock-session to lock your screen. +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 + +# Clipman +exec --no-startup-id clipit + +# Nitrogen: wallpaper +exec --no-startup-id nitrogen --restore + +# Polybar: desktop bar +# exec_always --no-startup-id $HOME/.config/polybar/scripts/launch.sh + + diff --git a/conf.d/i3/conf.d/windows.conf b/conf.d/i3/conf.d/windows.conf new file mode 100644 index 0000000..2081361 --- /dev/null +++ b/conf.d/i3/conf.d/windows.conf @@ -0,0 +1,21 @@ +#################### +# Windows settings # +#################### + +# Font for window titles. Will also be used by the bar unless a different font +# is used in the bar {} block below. +# font pango:monospace 12 +font pango:Delius 12, Icons 12 +# This font is widely installed, provides lots of unicode glyphs, right-to-left +# text rendering and scalability on retina/hidpi displays (thanks to pango). +#font pango:DejaVu Sans Mono 8 + +default_border pixel 2 +default_floating_border pixel 2 +hide_edge_borders none +smart_borders no_gaps +gaps inner 8 +gaps outer 8 +smart_gaps off + + diff --git a/conf.d/i3/config b/conf.d/i3/config index cc6ca6e..c55f340 100644 --- a/conf.d/i3/config +++ b/conf.d/i3/config @@ -9,284 +9,6 @@ # # Please see https://i3wm.org/docs/userguide.html for a complete reference! - -#################### -# Windows settings # -#################### - -# Font for window titles. Will also be used by the bar unless a different font -# is used in the bar {} block below. -# font pango:monospace 12 -font pango:Delius 12, Icons 12 -# This font is widely installed, provides lots of unicode glyphs, right-to-left -# text rendering and scalability on retina/hidpi displays (thanks to pango). -#font pango:DejaVu Sans Mono 8 - -default_border pixel 2 -default_floating_border pixel 2 -hide_edge_borders none -smart_borders no_gaps -gaps inner 8 -gaps outer 8 -smart_gaps off - - - -################### -# Colors settings # -################### - -# Colors set from ~/.Xresources -set_from_resource $background background -set_from_resource $foreground foreground -set_from_resource $color0 color0 -set_from_resource $color1 color1 -set_from_resource $color2 color2 -set_from_resource $color3 color3 -set_from_resource $color4 color4 -set_from_resource $color5 color5 -set_from_resource $color6 color6 -set_from_resource $color7 color7 -set_from_resource $color8 color8 -set_from_resource $color9 color9 -set_from_resource $color10 color10 -set_from_resource $color11 color11 -set_from_resource $color12 color12 -set_from_resource $color13 color13 -set_from_resource $color14 color14 -set_from_resource $color15 color15 - -# Theme colors -# class border backgr. text indic. child_border -# My colors -client.background $background - -client.focused $foreground $background $foreground $color2 $color2 -client.unfocused $foreground $background $foreground $color4 $color4 -client.focused_inactive $foreground $background $foreground $color4 $color4 -client.urgent $foreground $background $foreground $color4 $color4 -client.placeholder $foreground $background $foreground $color4 $color4 - - - -########### -# Startup # -########### - -# The combination of xss-lock, nm-applet and pactl is a popular choice, so -# they are included here as an example. Modify as you see fit. - -# xss-lock grabs a logind suspend inhibit lock and will use i3lock to lock the -# screen before suspend. Use loginctl lock-session to lock your screen. -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 - -# Clipman -exec --no-startup-id clipit - -# Nitrogen: wallpaper -exec --no-startup-id nitrogen --restore - -# Polybar: desktop bar -# exec_always --no-startup-id $HOME/.config/polybar/scripts/launch.sh - - - -############### -# Keybindings # -############### - -# Modifier key -set $alt Mod1 -set $mod Mod4 - -# Use Mouse+$mod to drag floating windows to their wanted position -floating_modifier $mod - -# Use pactl to adjust volume in PulseAudio. -set $refresh_i3status killall -SIGUSR1 i3status -bindsym XF86AudioRaiseVolume exec --no-startup-id pactl set-sink-volume @DEFAULT_SINK@ +10% && $refresh_i3status -bindsym XF86AudioLowerVolume exec --no-startup-id pactl set-sink-volume @DEFAULT_SINK@ -10% && $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 - -# start dmenu (a program launcher) -# bindsym $mod+d exec --no-startup-id dmenu_run -# A more modern dmenu replacement is rofi: -# bindcode $mod+40 exec "rofi -modi drun,run -show drun" -bindsym $mod+space exec "rofi -show drun" -# There also is i3-dmenu-desktop which only displays applications shipping a -# .desktop file. It is a wrapper around dmenu, so you need that installed. -# bindcode $mod+40 exec --no-startup-id i3-dmenu-desktop - -# start a terminal -bindsym $mod+Return exec i3-sensible-terminal - -# start some useful apps -bindsym $mod+e exec "exo-open --launch FileManager" -bindsym Print exec "xfce4-screenshooter -fd 1" -bindsym Shift+Print exec "xfce4-screenshooter -r" -bindsym $mod+twosuperior exec "xfce4-terminal --drop-down" -# bindsym $alt+Print exec "xfce4-screenshooter -fd 1" -# bindsym XF86TouchpadToggle exec "xfce4-display-settings --minimal" -# bindsym XF86Sleep exec xflock4 - -# kill focused window -bindsym $mod+q kill - -# change focus -bindsym $mod+j focus left -bindsym $mod+k focus down -bindsym $mod+i 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 -bindsym $mod+Shift+j move left -bindsym $mod+Shift+k move down -bindsym $mod+Shift+i 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 - -# 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+m 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+f floating toggle - -# change focus between tiling / floating windows -bindsym $mod+Tab focus mode_toggle - -# focus the parent container -bindsym $mod+a focus parent - -# focus the child container -#bindsym $mod+d focus child - -# 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" - -# 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 - -bindsym $mod+Control+Left workspace prev -bindsym $mod+Control+Right workspace next - -# 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 - -# bindsym $mod+Shift+Left move container to workspace prev -# bindsym $mod+Shift+Right move container to workspace next - -# 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'" - -# 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. - bindsym j resize shrink width 10 px or 10 ppt - bindsym i resize grow height 10 px or 10 ppt - bindsym k resize shrink height 10 px or 10 ppt - bindsym l 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 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" - -# Start i3bar to display a workspace bar (plus the system information i3status -# finds out, if available) -# bar { -# position top -# output primary -# tray_output primary -# separator_symbol ":|:" -# binding_mode_indicator yes -# # i3bar_command i3bar --transparency -# # status_command i3status -# # status_command exec ~/bin/i3bar-sampler -# colors { -# # background $background -# focused_workspace $color2 $color9 $color7 -# active_workspace $color2 $color9 $color7 -# inactive_workspace $background $background $color7 -# urgent_workspace $foreground $color3 $color7 -# binding_mode $foreground $background $color7 -# } -# } - -workspace 1 output primary -bindsym $mod+x move workspace to output primary - +include ./conf.d/*.conf