From cdbcae1e168822a8f7a3efd0dec5c830cf4a38b9 Mon Sep 17 00:00:00 2001 From: h7x4 Date: Wed, 9 Jun 2021 23:25:11 +0200 Subject: [PATCH] Add i3wm config --- general/.config/i3/config | 267 +++++++++++++++++++++++++++++++++ general/.x11/themes/monokai | 39 +++++ general/.x11/themes/paper | 39 +++++ laptop/.config/i3status/config | 49 ++++++ 4 files changed, 394 insertions(+) create mode 100644 general/.config/i3/config create mode 100644 general/.x11/themes/monokai create mode 100644 general/.x11/themes/paper create mode 100644 laptop/.config/i3status/config diff --git a/general/.config/i3/config b/general/.config/i3/config new file mode 100644 index 0000000..b4e1e2f --- /dev/null +++ b/general/.config/i3/config @@ -0,0 +1,267 @@ +# This file has been auto-generated by i3-config-wizard(1). +# It will not be overwritten, so edit it as you like. +# +# Should you change your keyboard layout some time, delete +# this file and re-run i3-config-wizard(1). +# + +# i3 config file (v4) +# +# Please see https://i3wm.org/docs/userguide.html for a complete reference! + +set $mod Mod4 + +set $term alacritty + +# 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 8 +font pango: Fira Code 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 + +# 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 + +exec --no-startup-id feh --bg-fill pictures/Wallpapers/paper_bg/Megumin_minimal.jpg + + +##### KEYS ##### + +# 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 + +bindsym XF86MonBrightnessUp exec "light -A 5" +bindsym XF86MonBrightnessDown exec "light -U 5" + +# Use Mouse+$mod to drag floating windows to their wanted position +floating_modifier $mod + +# start a terminal +bindsym $mod+Return exec $term + +# kill focused window +bindsym $mod+BackSpace kill + +# start dmenu (a program launcher) +# bindsym $mod+d exec --no-startup-id dmenu_run +# A more modern dmenu replacement is rofi: +bindsym $mod+r 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 + +# 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 + +# 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+d focus child + +bindsym $mod+b exec "fcitx-remote -s mozc" +bindsym $mod+n exec "fcitx-remote -s fcitx-keyboard-no" +bindsym $mod+m exec "fcitx-remote -s fcitx-keyboard-us" + + +# reload the configuration file +bindsym $mod+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+c 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'" + +bindsym $mod+q exec "alacritty --title ncmpcppScratchpad -e ncmpcpp" +bindsym $mod+p exec "mpc toggle" +bindsym $mod+F7 exec "amixer set Master 2%-" +bindsym $mod+F8 exec "amixer set Master 2%+" + +##### COMMANDS ##### + +# 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 h resize shrink width 10 px or 10 ppt + bindsym j 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+Shift+x mode "default" +} + +bindsym $mod+Shift+x mode "resize" + +mode "layout" { + # change container layout (stacked, tabbed, toggle split) + bindsym $mod+s layout stacking + bindsym $mod+w layout tabbed + bindsym $mod+e layout toggle split + + # back to normal: Enter or Escape or $mod+r + bindsym Return mode "default" + bindsym Escape mode "default" + bindsym $mod+semicolon mode "default" +} + +bindsym $mod+semicolon mode "layout" + + +##### Windows ##### + +# 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:gen" +set $ws2 "2:www" +set $ws3 "3:emx" +set $ws4 "4:dev" +set $ws5 "5:slk" +set $ws6 "6" +set $ws7 "7" +set $ws8 "8" +set $ws9 "9:com" +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 + +# 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 + +# change focus +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 +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 + +assign [class=Discord] $ws9 +for_window [class=Viewnior|feh|Audacious|File-roller|Lxappearance|Lxtask|Pavucontrol] floating enable +for_window [class=URxvt|Firefox|Geany|Evince|Soffice|libreoffice*|mpv|Ghb|Xfburn|Gimp*|Inkscape|Vlc|Lxappearance|Audacity] focus +for_window [class=Xfburn|GParted|System-config-printer.py|Lxtask|Pavucontrol|Exo-helper*|Lxrandr|Arandr] focus + +##### LAYOUT ##### + +for_window [class=".*"] border pixel 3 + +set $grey #2f343f +set $lightgrey #4b5262 +set $darkwhite #d8dee8 +set $red #c30771 +set $cyan #20a5ba +set $paper #f2e3bd +set $darkpaper #ebcb8b + +# colour of border background text indicator child_border +client.focused $red $grey $darkwhite $red $red +client.focused_inactive $grey $grey $darkwhite $grey $paper +client.unfocused $grey $grey $darkwhite $grey $paper +client.urgent $grey $grey $darkwhite $grey $red +client.placeholder $grey $grey $darkwhite $grey $grey +client.background $grey + +# Start i3bar to display a workspace bar (plus the system information i3status +# finds out, if available) +bar { + workspace_buttons yes + + position top + + status_command i3status + + # 1:gen -> gen + strip_workspace_numbers yes + + separator_symbol " " + + font pango:Fira Code 12 + + colors { + background $paper + statusline $paper + separator $lightgrey + + # colour of border background text + focused_workspace $red $darkpaper $red + active_workspace $paper $paper $grey + inactive_workspace $paper $paper $grey + urgent_workspace $red $paper $red + } +} + +# vim:filetype=i3 diff --git a/general/.x11/themes/monokai b/general/.x11/themes/monokai new file mode 100644 index 0000000..288c239 --- /dev/null +++ b/general/.x11/themes/monokai @@ -0,0 +1,39 @@ + +! special +*.foreground: #f8f8f2 +*.background: #272822 +*.cursorColor: #f8f8f2 + +! black +*.color0: #272822 +*.color8: #75715e + +! red +*.color1: #f92672 +*.color9: #f92672 + +! green +*.color2: #a6e22e +*.color10: #a6e22e + +! yellow +*.color3: #f4bf75 +*.color11: #f4bf75 + +! blue +*.color4: #66d9ef +*.color12: #66d9ef + +! magenta +*.color5: #ae81ff +*.color13: #ae81ff + +! cyan +*.color6: #a1efe4 +*.color14: #a1efe4 + +! white +*.color7: #f8f8f2 +*.color15: #f9f8f5 + +! vim: filetype=xdefaults diff --git a/general/.x11/themes/paper b/general/.x11/themes/paper new file mode 100644 index 0000000..79a84e5 --- /dev/null +++ b/general/.x11/themes/paper @@ -0,0 +1,39 @@ + +! special +*.foreground: #222222 +*.background: #f2e3bd +*.cursorColor: #20fccf + +! black +*.color0: #222222 +*.color8: #303030 + +! red +*.color1: #C30771 +*.color9: #E32791 + +! green +*.color2: #10A778 +*.color10: #5FD7A7 + +! yellow +*.color3: #A89C14 +*.color11: #F3E430 + +! blue +*.color4: #008ec4 +*.color12: #B6D6FD + +! magenta +*.color5: #523C79 +*.color13: #6855DE + +! cyan +*.color6: #20A5BA +*.color14: #4FB8CC + +! white +*.color7: #f7f3ee +*.color15: #f7f3ee + +! vim: filetype=xdefaults diff --git a/laptop/.config/i3status/config b/laptop/.config/i3status/config new file mode 100644 index 0000000..7b42722 --- /dev/null +++ b/laptop/.config/i3status/config @@ -0,0 +1,49 @@ +general { + output_format = "i3bar" + colors = false + markup = pango + interval = 5 + color_good = '#2f343f' + color_degraded = '#ebcb8b' + color_bad = '#ba5e57' +} + +order += "wireless wlp59s0" +order += "disk /" +order += "volume master" +order += "battery 0" +order += "tztime local" + +wireless wlp59s0 { + format_up = " Ꮃ %essid " + format_down = " Ꮃ ✗ " +} + +disk "/" { + format = "  %avail/%total " +} + +volume master { + format = " V %volume " + format_muted = " ℣ %volume " + device = "default" + mixer = "Master" + mixer_idx = 0 +} + +battery 0 { + last_full_capacity = true + format = " %status %percentage " + format_down = "No Battery" + status_chr = "🔌" + status_bat = "🗲" + status_unk = "???" + status_full = "✔" + path = "/sys/class/power_supply/BAT%d/uevent" + low_threshold = 10 +} + +tztime local { + format = " %time " + format_time = " %a %-d %b %H:%M" +}