Skip to content

Commit

Permalink
i3: basic config
Browse files Browse the repository at this point in the history
  • Loading branch information
vitek committed Oct 2, 2022
1 parent 04e8635 commit 73e5002
Show file tree
Hide file tree
Showing 21 changed files with 880 additions and 1 deletion.
23 changes: 23 additions & 0 deletions Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,8 @@ EMACS = emacs

DESTDIR = $(HOME)

I3_DESTDIR = $(DESTDIR)/.config/i3

AWESOME_FILES = \
awesome/rc.lua \
awesome/mywibar.lua \
Expand Down Expand Up @@ -137,6 +139,22 @@ install-awesome: install-x11-utils
$(DESTDIR)/.config/awesome/scripts/start.sh; \
fi

install-i3: install-xob install-i3status install-polybar
$(INSTALL) -d $(I3_DESTDIR)
$(INSTALL) -d $(I3_DESTDIR)/config.d
$(INSTALL) -d $(I3_DESTDIR)/hostname.d
$(INSTALL) -m 0644 i3/config $(I3_DESTDIR)
$(INSTALL) -m 0644 i3/hostname.d/*.conf $(I3_DESTDIR)/hostname.d/
$(INSTALL) -m 0644 i3/config.d/*.conf $(I3_DESTDIR)/config.d/
$(INSTALL) -m 0755 i3/xkb-layout.py $(DESTDIR)/bin/i3-xkb-layout

install-i3status:
$(INSTALL) -d $(DESTDIR)/.config/i3status
$(INSTALL) -m 0644 i3/status/config $(DESTDIR)/.config/i3status/

install-polybar:
$(INSTALL) -d $(DESTDIR)/.config/polybar
$(INSTALL) -m 0644 polybar.ini $(DESTDIR)/.config/polybar/config.ini

install-waybar:
$(INSTALL) -d $(DESTDIR)/.config/waybar
Expand All @@ -157,6 +175,11 @@ install-wob:
$(INSTALL) -m 0644 wayland/wob/wob.socket wayland/wob/wob.service \
$(SYSTEMD_USER_PATH)

install-xob:
$(INSTALL) -d $(SYSTEMD_USER_PATH)
$(INSTALL) -m 0644 xob.socket xob.service \
$(SYSTEMD_USER_PATH)

install-kitty:
$(INSTALL) -d $(DESTDIR)/.config/kitty
$(INSTALL) -m 0644 kitty/kitty.conf $(DESTDIR)/.config/kitty
Expand Down
270 changes: 270 additions & 0 deletions i3/config
Original file line number Diff line number Diff line change
@@ -0,0 +1,270 @@
# -*- mode: i3wm-config -*-
# Default config for sway
#
# Copy this to ~/.config/sway/config and edit it to your liking.
#
# Read `man 5 sway` for a complete reference.

# autostart
exec --no-startup-id systemctl --user import-environment \
DISPLAY PATH
exec --no-startup-id dbus-update-activation-environment --systemd --all
exec --no-startup-id systemctl --user start emacs-29-vcs.service
exec --no-startup-id gnome-keyring-daemon
exec --no-startup-id nm-applet --indicator
exec --no-startup-id picom

# Theme setup
set $gnome-interface org.gnome.desktop.interface
set $gnome-sound org.gnome.desktop.sound

set $gtk_font 'Hack Nerd Font 16'
set $icon_theme Acid-green-folder

exec_always --no-startup-id gsettings set $gnome-interface cursor-theme 'DMZ-White'
exec --no-startup-id gsettings set $gnome-interface cursor-size 24
#exec --no-startup-id gsettings set $gnome-interface document-font-name $gtk_font
#exec --no-startup-id gsettings set $gnome-interface font-name $gtk_font
exec --no-startup-id gsettings set $gnome-interface gtk-theme 'Adwaita-dark'
#gsettings set $gnome-interface gtk-color-theme 'Gruvbox-glass'
#gsettings set $gnome-interface icon-theme '$icon_theme'
#gsettings set $gnome-interface monospace-font-name $gtk_font
#gsettings set $gnome-interface text-scaling-factor 1.0
#gsettings set $gnome-sound theme-name 'deepin'

### Variables
#
# Logo key. Use Mod1 for Alt.
set $mod Mod4
# Home row direction keys, like vim
set $left h
set $down j
set $up k
set $right l
# Your preferred terminal emulator
set $term terminal
# Your preferred application launcher
# Note: pass the final command to swaymsg so that the resulting window can be opened
# on the original workspace that the command was run on.
set $menu dmenu_path | dmenu -fn 'Noto Sans-12' | xargs swaymsg exec --
set $bg_image /usr/share/backgrounds/sway/Sway_Wallpaper_Blue_1920x1080.png

### Key bindings
#
# Basics:
#
# Start a terminal
bindsym $mod+Return exec $term

# # Start a editor
# bindsym $mod+e exec emacs

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

# Start your launcher
bindsym $mod+r exec $menu

# Reload the configuration file
bindsym $mod+Shift+r reload

# Drag floating windows by holding down $mod and left mouse button.
# Resize them with right mouse button + $mod.
# Despite the name, also works for non-floating windows.
# Change normal to inverse to use left mouse button for resizing and right
# mouse button for dragging.
floating_modifier $mod


# Exit sway (logs you out of your Wayland session)
#bindsym $mod+Shift+e exec swaynag -t warning -m 'You pressed the exit shortcut. Do you really want to exit sway? This will end your Wayland session.' -B 'Yes, exit sway' 'swaymsg exit'

#
# Moving around:
#

focus_wrapping no

# Move your focus around
bindsym $mod+$left focus left
bindsym $mod+$down focus down
bindsym $mod+$up focus up
bindsym $mod+$right focus right
# # Or use $mod+[up|down|left|right]
# bindsym $mod+Left focus left
# bindsym $mod+Down focus down
# bindsym $mod+Up focus up
# bindsym $mod+Right focus right

# Move the focused window with the same, but add Shift
bindsym $mod+Shift+$left move left
bindsym $mod+Shift+$down move down
bindsym $mod+Shift+$up move up
bindsym $mod+Shift+$right move right
# # Ditto, with arrow 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

#
# Workspaces:
#
# 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+0 workspace number 10
# Move focused container to workspace
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
bindsym $mod+Shift+0 move container to workspace number 10
# Note: workspaces can have any name you want, not just numbers.
# We just use 1-10 as the default.

#
# Move workspace to output:
#
set $output_prefix Mod1+Mod4+Shift
bindsym $output_prefix+Left move workspace to output left
bindsym $output_prefix+Right move workspace to output right
bindsym $output_prefix+Up move workspace to output up
bindsym $output_prefix+Down move workspace to output down

#
# Layout stuff:
#
# You can "split" the current object of your focus with
# $mod+b or $mod+v, for horizontal and vertical splits
# respectively.
bindsym $mod+b splith
bindsym $mod+v splitv

# Switch the current container between different layout styles
bindsym $mod+s layout stacking
bindsym $mod+w layout tabbed
bindsym $mod+e layout toggle split

# Make the current focus fullscreen
bindsym $mod+f fullscreen

# Toggle the current focus between tiling and floating mode
bindsym $mod+Shift+space floating toggle

# Swap focus between the tiling area and the floating area
bindsym $mod+space focus mode_toggle

# Move focus to the parent container
bindsym $mod+a focus parent

#
# Scratchpad:
#
# Sway has a "scratchpad", which is a bag of holding for windows.
# You can send windows there and get them back later.

# Move the currently focused window to the scratchpad
bindsym $mod+Shift+minus move scratchpad

# Show the next scratchpad window or hide the focused scratchpad window.
# If there are multiple scratchpad windows, this command cycles through them.
bindsym $mod+minus scratchpad show

#
# Resizing containers:
#
# mode "resize" {
# # left will shrink the containers width
# # right will grow the containers width
# # up will shrink the containers height
# # down will grow the containers height
# bindsym $left resize shrink width 10px
# bindsym $down resize grow height 10px
# bindsym $up resize shrink height 10px
# bindsym $right resize grow width 10px

# # Ditto, with arrow keys
# bindsym Left resize shrink width 10px
# bindsym Down resize grow height 10px
# bindsym Up resize shrink height 10px
# bindsym Right resize grow width 10px

# # Return to default mode
# bindsym Return mode "default"
# bindsym Escape mode "default"
# }
# bindsym $mod+r mode "resize"

set $resize_step 10px
set $resize_step2 20px

bindsym $mod+Control+$left resize shrink width $resize_step
bindsym $mod+Control+$down resize grow height $resize_step
bindsym $mod+Control+$up resize shrink height $resize_step
bindsym $mod+Control+$right resize grow width $resize_step

bindsym $mod+Control+Left resize shrink width $resize_step
bindsym $mod+Control+Down resize grow height $resize_step
bindsym $mod+Control+Up resize shrink height $resize_step
bindsym $mod+Control+Right resize grow width $resize_step

bindsym $mod+Control+Shift+$left resize shrink width $resize_step2
bindsym $mod+Control+Shift+$down resize grow height $resize_step2
bindsym $mod+Control+Shift+$up resize shrink height $resize_step2
bindsym $mod+Control+Shift+$right resize grow width $resize_step2

bindsym $mod+Control+Shift+Left resize shrink width $resize_step2
bindsym $mod+Control+Shift+Down resize grow height $resize_step2
bindsym $mod+Control+Shift+Up resize shrink height $resize_step2
bindsym $mod+Control+Shift+Right resize grow width $resize_step2

bindsym $mod+Left workspace prev_on_output
bindsym $mod+Right workspace next_on_output
bindsym Mod1+Control+Left workspace prev_on_output
bindsym Mod1+Control+Right workspace next_on_output

# Hide title bar
default_border pixel 1
default_floating_border pixel 1
hide_edge_borders both
new_window 1pixel

# Focus new floating windows in fullscreen mode
#for_window [floating=true] focus

# Start i3bar to display a workspace bar (plus the system information i3status
# finds out, if available)
# bar {
# position top
# status_command i3status

# font-family: Noto Sans;

# colors {
# background #323232
# statusline #ffffff

# #focused_workspace #ffffff #285577
# #active_workspace #ffffff #333333
# #inactive_workspace #888888 #222222
# #urgent_workspace #ffffff #900000
# }
# }

exec --no-startup-id polybar

include ~/.config/i3/config.d/*.conf
#include ~/.config/i3/hostname.d/$(hostname).conf
55 changes: 55 additions & 0 deletions i3/config.d/00-input.conf
Original file line number Diff line number Diff line change
@@ -0,0 +1,55 @@
# -*- mode: i3wm-config -*-

#exec_always --no-startup-id syndaemon -i 0.8 -K -t -d
exec_always --no-startup-id syndaemon -i 0.5 -t -k -R
exec_always --no-startup-id synclient VertEdgeScroll=1 TapButton1=1 TapButton2=1 TapButton3=1 HorizScrollDelta=-75 VertScrollDelta=-75 PalmDetect=1 PalmMinWidth=3 PalmMinZ=50

exec_always --no-startup-id setxkbmap -option caps:ctrl_modifier -layout us,ru

exec --no-startup-id i3-xkb-layout

bindsym Mod1+space exec --no-startup-id xkblayout-state set +1

# ### Input configuration
# #
# # Example configuration:
# #
# # input "2:14:SynPS/2_Synaptics_TouchPad" {
# # dwt enabled
# # tap enabled
# # natural_scroll enabled
# # middle_emulation enabled
# # }
# #
# # You can get the names of your inputs by running: swaymsg -t get_inputs
# # Read `man 5 sway-input` for more information about this section.

# # input
# ## laptop options
# #input "1:1:AT_Translated_Set_2_keyboard" xkb_options "caps:ctrl_modifier"
# input type:touchpad {
# accel_profile flat
# click_method button_areas
# click_method clickfinger
# drag enabled
# dwt enabled
# #events disabled_on_external_mouse
# events enabled
# middle_emulation enabled
# pointer_accel 0.8
# scroll_method two_finger
# tap enabled
# natural_scroll enabled
# }
# ## laptop options

# input "*" {
# xkb_layout "us,ru"
# xkb_options "caps:ctrl_modifier"
# #xkb_options "grp:alt_space_toggle"
# }

# bindsym --to-code --locked {
# #Mod1+space exec swaymsg 'input "*" xkb_switch_layout next'
# Mod1+space exec sway-switch-layout
# }
Loading

0 comments on commit 73e5002

Please sign in to comment.