Skip to content

Commit

Permalink
i3
Browse files Browse the repository at this point in the history
  • Loading branch information
zakaria-fadli-netatmo committed Jul 12, 2024
1 parent 5029d3b commit d0806dd
Show file tree
Hide file tree
Showing 12 changed files with 272 additions and 295 deletions.
47 changes: 47 additions & 0 deletions i3/common/0_settings_base.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,47 @@
# i3 config file (v4)
#
# Please see http://i3wm.org/docs/userguide.html for a complete reference!

set $mod Mod4

# Font for window titles. Will also be used by the bar unless a different font
# is used in the bar {} block below.
font pango:System San Fransisco Display 9

# Before i3 v4.8, we used to recommend this one as the default:
# font -misc-fixed-medium-r-normal--13-120-75-75-C-70-iso10646-1
# The font above is very space-efficient, that is, it looks good, sharp and
# clear in small sizes. However, its unicode glyph coverage is limited, the old
# X core fonts rendering does not support right-to-left and this being a bitmap
# font, it doesn’t scale on retina/hidpi displays.

# Use Mouse+$mod to drag floating windows to their wanted position
floating_modifier $mod
floating_minimum_size 75 x 50

# Stay within output boundaries
force_focus_wrapping no

# Misc settings
focus_follows_mouse yes
popup_during_fullscreen smart
workspace_auto_back_and_forth yes

### GAPS configuration ###
## i3 gaps specific
for_window [class="^.*"] border pixel 1

gaps inner 2
gaps outer 1

# Only enable gaps on a workspace when there is at least one container
smart_gaps on

# Activate smart borders (always)
smart_borders on

# Hide edge borders only if there is one window with no gaps
hide_edge_borders smart_no_gaps
#########################


16 changes: 16 additions & 0 deletions i3/common/1_colors.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
set $bg-color #044000
set $inactive-bg-color #2f343f
set $text-color #ffffff
set $inactive-text-color #676E7D
set $urgent-bg-color #E53935
set $urgent-color #ffffff
set $bar-bg-color #000000

# window colors
# border background text indicator
client.focused $bg-color $bg-color $text-color #156900
client.unfocused $inactive-bg-color $inactive-bg-color $inactive-text-color #156900
client.focused_inactive $inactive-bg-color $inactive-bg-color $inactive-text-color #156900
client.urgent $urgent-bg-color $urgent-bg-color $urgent-color #156900


44 changes: 44 additions & 0 deletions i3/common/2_workspaces.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,44 @@
# switch to workspace
bindsym $mod+1 workspace number 1
bindsym $mod+2 workspace number 2
bindsym $mod+3 workspace number 3
bindsym $mod+4 workspace number 4
bindsym $mod+5 workspace number 5
bindsym $mod+6 workspace number 6
bindsym $mod+7 workspace number 7
bindsym $mod+8 workspace number 8
bindsym $mod+9 workspace number 9

bindsym $mod+KP_1 workspace number 1
bindsym $mod+KP_2 workspace number 2
bindsym $mod+KP_3 workspace number 3
bindsym $mod+KP_4 workspace number 4
bindsym $mod+KP_5 workspace number 5
bindsym $mod+KP_6 workspace number 6
bindsym $mod+KP_7 workspace number 7
bindsym $mod+KP_8 workspace number 8
bindsym $mod+KP_9 workspace number 9

# move focused container to workspace
bindsym $mod+Shift+KP_1 move container to workspace number 1
bindsym $mod+Shift+KP_2 move container to workspace number 2
bindsym $mod+Shift+KP_3 move container to workspace number 3
bindsym $mod+Shift+KP_4 move container to workspace number 4
bindsym $mod+Shift+KP_5 move container to workspace number 5
bindsym $mod+Shift+KP_6 move container to workspace number 6
bindsym $mod+Shift+KP_7 move container to workspace number 7
bindsym $mod+Shift+KP_8 move container to workspace number 8
bindsym $mod+Shift+KP_9 move container to workspace number 9

bindsym $mod+Shift+1 move container to workspace number 1
bindsym $mod+Shift+2 move container to workspace number 2
bindsym $mod+Shift+3 move container to workspace number 3
bindsym $mod+Shift+4 move container to workspace number 4
bindsym $mod+Shift+5 move container to workspace number 5
bindsym $mod+Shift+6 move container to workspace number 6
bindsym $mod+Shift+7 move container to workspace number 7
bindsym $mod+Shift+8 move container to workspace number 8
bindsym $mod+Shift+9 move container to workspace number 9

# Rename workspace
bindsym $mod+n exec i3-input -F 'rename workspace to "%s"' -P 'New name for this workspace: '
18 changes: 18 additions & 0 deletions i3/common/3_bar.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
bar {
# status_command i3status
# what i prefer to use is the non defauilt i3ibar that is i3blocks -> update submodules of my config file
status_command SCRIPT_DIR=$I3BLOCKS_SCRIPTS_DIR i3blocks
# status_command 2>/tmp/i3blocks.err SCRIPT_DIR=$I3BLOCKS_SCRIPTS_DIR /usr/bin/i3blocks -vvv | tee /tmp/i3blocks.out
font pango:System San Fransisco Display 7.5

colors {
# separator #268bd2
# background #002b36
# statusline #839496
focused_workspace #fdf6e3 #6c71c4 #fdf6e3
active_workspace #fdf6e3 #6c71c4 #fdf6e3
inactive_workspace #002b36 #586e75 #002b36
urgent_workspace #d33682 #d33682 #fdf6e3
}
}

117 changes: 117 additions & 0 deletions i3/common/4_bindings.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,117 @@

# start a terminal
bindsym $mod+Return exec i3-sensible-terminal

# kill focused window
bindsym $mod+Shift+q kill

# start dmenu (a program launcher)
# -i for ignore case and - for lines mode (more visible is better)
# bindsym $mod+d exec dmenu_run -i -l 20
# rofi is a better alternative
bindsym $mod+d exec rofi -show run
bindsym $mod+shift+d exec rofi -show window

# 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

# 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+v split h
# split in vertical orientation
bindsym $mod+h split v

# change container layout (stacked, tabbed, toggle split)
bindsym $mod+t 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+q focus parent
# focus the child container
#bindsym $mod+c focus child # doesnt work

# reload the configuration file
bindsym $mod+Shift+c reload
# restart i3 inplace (preserves your layout/session, can be used to upgrade i3) (might take two)
bindsym $mod+Shift+r exec $COMPILE_I3_CONFIG_SCRIPT; restart

# windows fun actions
bindsym $mod+Shift+f floating toggle
bindsym $mod+Shift+s sticky toggle
bindsym $mod+f fullscreen

# 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 up will shrink the window’s height.
# Pressing down will grow the window’s height.
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
bindsym Return mode "default"
bindsym Escape mode "default"
}

############################################
# Screen Outputs
############################################

# Handle multiple outputs
bindsym $mod+m focus output left
bindsym $mod+shift+m move workspace to output left

############################################
### Scratchpad
############################################
# Make the currently focused window a scratchpad
bindsym $mod+shift+p move scratchpad

# Show the first scratchpad window
bindsym $mod+p scratchpad show
############################################

# Lock screen
bindsym $mod+l exec $LOCK_SCRIPT

# Set monitor to laptop layout on ctrl + j
bindsym $mod+j exec autorandr laptop

# Logout i3 (logs you out of your X session)
bindsym $mod+Shift+l 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'"

############################################
### Media keys
############################################
# Brightness
bindsym XF86MonBrightnessUp exec light -A 20
bindsym XF86MonBrightnessDown exec light -U 20

# Media player controls
bindsym XF86AudioPlay exec playerctl play
bindsym XF86AudioPause exec playerctl pause
bindsym XF86AudioNext exec playerctl next
bindsym XF86AudioPrev exec playerctl previous

# Caps lock and num lock to status bar
bindsym --release Caps_Lock exec pkill -SIGRTMIN+11 i3blocks
bindsym --release Num_Lock exec pkill -SIGRTMIN+11 i3blocks
############################################
12 changes: 12 additions & 0 deletions i3/common/6_startup.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
# Enable numpad
exec --no-startup-id setxkbmap -option keypad:pointerkeys

# Initial layout
exec --no-startup-id i3-msg "workspace 1; layout tabbed"

# Start applications
exec_always --no-startup-id yes | $WALLPAPER_SCRIPT
exec_always --no-startup-id 1password --silent
exec_always --no-startup-id xautolock -time 20 -locker fuzzy_lock -notify 20 -notifier '$LOCK_SCRIPT' &
exec_always --no-startup-id nm-applet blueman-applet
# exec_always --no-startup-id compton -b # compton is needed for transparency
Loading

0 comments on commit d0806dd

Please sign in to comment.