Add i3 and nvim config

Signed-off-by: Tobias Schneider <git@cynt4k.dev>
This commit is contained in:
Tobias Schneider 2024-11-01 00:26:12 +01:00
commit d5e96fcf46
Signed by: cynt4k
SSH key fingerprint: SHA256:6cho1nggDFXkAyZBfh2fS9Hc+NAd5z+CFiFFSOc4WsE
6 changed files with 447 additions and 0 deletions

280
i3/config Normal file
View file

@ -0,0 +1,280 @@
# 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 $i3path ~/.config/i3
set $wallpaper watzmann.jpg
#set $mod Mod4
set $mod Mod1
set $sup 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:monospace 8
font pango:inconsolata 8
# 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
# 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 doesnt scale on retina/hidpi displays.
# Use Mouse+$mod to drag floating windows to their wanted position
floating_modifier $mod
# start a terminal
#bindsym $mod+Return exec i3-sensible-terminal
bindsym $mod+Return exec kitty
# kill focused window
bindsym $mod+Shift+q kill
# start dmenu (a program launcher)
#bindsym $mod+d exec dmenu_run
# bindsym $mod+d exec "rofi -combi-modi window,drun,ssh -theme Pop-Dark -font 'hack 10' -show combi"
bindsym $mod+d exec "rofi -combi-modi window,drun,ssh -show combi"
# There also is the (new) i3-dmenu-desktop which only displays applications
# shipping a .desktop file. It is a wrapper around dmenu, so you need that
# installed.
# bindsym $mod+d exec --no-startup-id i3-dmenu-desktop
# change focus
bindsym $mod+j focus left
bindsym $mod+k focus down
bindsym $mod+l focus up
bindsym $mod+semicolon 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+l move up
bindsym $mod+Shift+semicolon move right
# move focused workspace between monitors
bindsym $mod+Ctrl+l move workspace to output right
bindsym $mod+Ctrl+j move workspace to output left
# 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+f 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+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
# 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 $ws1
bindsym $mod+2 workspace $ws2
bindsym $mod+3 workspace $ws3
bindsym $mod+4 workspace $ws4
bindsym $mod+5 workspace $ws5
bindsym $mod+6 workspace $ws6
bindsym $mod+7 workspace $ws7
bindsym $mod+8 workspace $ws8
bindsym $mod+9 workspace $ws9
bindsym $mod+0 workspace $ws10
# move focused container to workspace
bindsym $mod+Shift+1 move container to workspace $ws1
bindsym $mod+Shift+2 move container to workspace $ws2
bindsym $mod+Shift+3 move container to workspace $ws3
bindsym $mod+Shift+4 move container to workspace $ws4
bindsym $mod+Shift+5 move container to workspace $ws5
bindsym $mod+Shift+6 move container to workspace $ws6
bindsym $mod+Shift+7 move container to workspace $ws7
bindsym $mod+Shift+8 move container to workspace $ws8
bindsym $mod+Shift+9 move container to workspace $ws9
bindsym $mod+Shift+0 move container to workspace $ws10
# color variables
set $bg-color #20212B
set $inactive-bg-color #20212B
set $text-color #f3f4f5
set $inactive-text-color #676E7D
set $urgent-bg-color #E53935
#window colors
# border background text indicator
client.focused $bg-color $bg-color $text-color #00ff00
client.unfocused $inactive-bg-color $inactive-bg-color $inactive-text-color #00ff00
client.focused_inactive $inactive-bg-color $inactive-bg-color $inactive-text-color #00ff00
client.urgent $urgent-bg-color $urgent-bg-color $text-color #00ff00
# disable window titlebars
for_window [class=".*"] border pixel 0
gaps inner 5
gaps outer 5
# 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'"
# Pulse Audio controls
bindsym XF86AudioRaiseVolume exec --no-startup-id pactl set-sink-volume 0 +5% #increase sound volume
bindsym XF86AudioLowerVolume exec --no-startup-id pactl set-sink-volume 0 -5% #decrease sound volume
bindsym XF86AudioMute exec --no-startup-id pactl set-sink-mute 0 toggle # mute sound
# Sreen brightness controls
bindsym XF86MonBrightnessUp exec xbacklight -inc 5 # increase screen brightness
bindsym XF86MonBrightnessDown exec xbacklight -dec 5 # decrease screen brightness
# Touchpad controls
bindsym XF86TouchpadToggle exec /some/path/toggletouchpad.sh # toggle touchpad
# Media player controls
bindsym XF86AudioPlay exec playerctl play-pause
bindsym XF86AudioNext exec playerctl next
bindsym XF86AudioPrev exec playerctl previous
# Screenshot
bindsym $sup+s exec flameshot gui
set $mode_system System (l) lock, (e) logout, (s) suspend, (f) switch, (h) hibernate, (r) reboot, (Shift+s) shutdown
mode "$mode_system" {
bindsym l exec --no-startup-id $i3path/i3exit lock, mode "default"
bindsym e exec --no-startup-id $i3path/i3exit logout, mode "default"
bindsym s exec --no-startup-id $i3path/i3exit suspend, mode "default"
bindsym f exec --no-startup-id $i3path/i3exit switch, mode "default"
bindsym h exec --no-startup-id $i3path/i3exit hibernate, mode "default"
bindsym r exec --no-startup-id $i3path/i3exit reboot, mode "default"
bindsym Shift+s exec --no-startup-id $i3path/i3exit shutdown, mode "default"
# back to normal: Enter or Escape
bindsym Return mode "default"
bindsym Escape mode "default"
}
bindsym $sup+l mode "$mode_system"
# Display change
set $mode_display Change display to (s) standalone, (w) work, (p) privat, (c) camper, (m) manual
mode "$mode_display" {
bindsym s exec --no-startup-id $i3path/displays standalone, mode "default"
bindsym w exec --no-startup-id $i3path/displays work, mode "default"
bindsym p exec --no-startup-id $i3path/displays privat, mode "default"
bindsym c exec --no-startup-id $i3path/displays camper, mode "default"
bindsym m exec --no-startup-id arandr, mode "default"
# back to normal: Enter or Escape
bindsym Return mode "default"
bindsym Escape mode "default"
}
bindsym $sup+d mode "$mode_display"
# Assign programs
assign [class="(?i)Code"] $ws2
assign [class="(?i)Firefox"] $ws3
assign [class="(?i)Riot"] $ws10
assign [class="(?i)Slack"] $ws10
assign [class="(?i)Edge"] $ws10
# 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 windows width.
# Pressing right will grow the windows width.
# Pressing up will shrink the windows height.
# Pressing down will grow the windows height.
bindsym j resize shrink width 10 px or 10 ppt
bindsym k resize grow height 10 px or 10 ppt
bindsym l resize shrink height 10 px or 10 ppt
bindsym semicolon 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 {
# status_command i3status
#}
exec_always --no-startup-id setxkbmap -option compose:ralt
# exec_always --no-startup-id compton
# exec_always --no-startup-id feh --bg-scale ~/.config/i3/wallpaper/nordic.png
# exec_always --no-startup-id feh --bg-scale ~/.config/i3/wallpaper/$wallpaper; sleep 1; picom --experimental-backend -b
exec_always --no-startup-id feh --bg-scale --auto-zoom ~/.config/i3/wallpaper/$wallpaper; sleep 1; picom --experimental-backend -b
exec_always --no-startup-id $HOME/.config/polybar/polyrun.sh
exec_always --no-startup-id nm-applet
# exec_always --no-startup-id "/usr/bin/volumeicon"
exec_always --no-startup-id nextcloud --background
exec_always --no-startup-id blueman-applet
exec_always --no-startup-id birdtray
exec_always --no-startup-id xsettingsd
exec --no-startup-id dockd --daemon
exec --no-startup-id lxqt-policykit-agent

109
i3/displays Executable file
View file

@ -0,0 +1,109 @@
#!/bin/sh
set -e
shopt -s extglob
WACOM_STYLUS="Wacom Intuos BT S Pen stylus"
disable_all_external() {
xrandr \
--output HDMI-A-0 --off \
--output DisplayPort-0 --off \
--output DisplayPort-1 --off \
--output DisplayPort-2 --off \
--output DisplayPort-3 --off \
--output DisplayPort-4 --off \
--output DisplayPort-5 --off \
--output DisplayPort-6 --off
}
set_dpi() {
DPI=$1
echo "rofi.dpi: ${DPI}" | xrdb -merge
echo "Xft.dpi: ${DPI}" | xrdb -merge
echo "Xft/DPI $(expr 1024 \* ${DPI})" > ~/.xsettingsd
killall -HUP xsettingsd
}
privat() {
# --output eDP --mode 3840x2160 --pos 7280x0 --rotate normal \
# --output DisplayPort-2 --primary --mode 3440x1440 --pos 3840x720 --rotate normal \
# --output DisplayPort-3 --mode 3840x2160 --pos 0x0 --rotate normal \
xrandr --dpi 300 \
--output eDP --mode 3840x2160 --pos 6000x0 --rotate normal \
--output DisplayPort-2 --primary --mode 3440x1440 --pos 2560x720 --rotate normal \
--output DisplayPort-5 --mode 2560x1440 --pos 0x720 --rotate normal \
--output HDMI-A-0 --off \
--output DisplayPort-0 --off \
--output DisplayPort-1 --off \
--output DisplayPort-4 --off \
--output DisplayPort-3 --off \
--output DisplayPort-6 --off
set_dpi 150
}
standalone() {
disable_all_external
xrandr \
--dpi 175 \
--output eDP --primary --mode 3840x2160 --pos 0x0 --rotate normal
#echo "rofi.dpi: 175" | xrdb -merge
#echo "Xft.dpi: 175" | xrdb -merge
set_dpi 200
}
work() {
xrandr \
--dpi 175 \
--output eDP --mode 3840x2160 --pos 0x0 --rotate normal \
--output DisplayPort-5 --primary --mode 3440x1440 --pos 3840x720 --rotate normal \
--output DisplayPort-6 --mode 3440x1440 --pos 7280x720 --rotate normal \
--output HDMI-A-0 --off \
--output DisplayPort-0 --off \
--output DisplayPort-1 --off \
--output DisplayPort-2 --off \
--output DisplayPort-3 --off \
--output DisplayPort-4 --off
set_dpi 150
}
camper() {
xrandr \
--output eDP --mode 1920x1080 --pos 0x0 --rotate normal \
--output DisplayPort-1 --primary --mode 1920x1080 --pos 1920x0 --rotate normal \
--output HDMI-A-0 --off --output DisplayPort-0 --off \
--output DisplayPort-2 --off \
--output DisplayPort-3 --off \
--output DisplayPort-4 --off \
--output DisplayPort-5 --off \
--output DisplayPort-6 --off
DPI=110
echo "rofi.dpi: ${DPI}" | xrdb -merge
echo "Xft.dpi: ${DPI}" | xrdb -merge
echo "Xft/DPI $(expr 1024 \* ${DPI})" > ~/.xsettingsd
killall -HUP xsettingsd
}
wacom() {
PRIMARY=$(xrandr --query | grep " connected" | grep "primary" | cut -d" " -f1)
xsetwacom --set "${WACOM_STYLUS}" MapToOutput $PRIMARY | true
. ~/.xinitrc
}
DISPLAYS='privat|work|camper|standalone'
DISPLAYTYPES="@(${DISPLAYS})"
case $1 in
$DISPLAYTYPES )
$1
;;
*)
echo "Displaytype ${1} not supported - use one of ${DISPLAYS}"
exit 2
esac
i3-msg restart
wacom
exit 0

54
i3/i3exit Executable file
View file

@ -0,0 +1,54 @@
#!/bin/sh
lock() {
IMAGE=/tmp/i3lock.png
SCREENSHOT="scrot $IMAGE" # 0.46s
# Alternate screenshot method with imagemagick. NOTE: it is much slower
# SCREENSHOT="import -window root $IMAGE" # 1.35s
# Here are some imagemagick blur types
# Uncomment one to use, if you have multiple, the last one will be used
# All options are here: http://www.imagemagick.org/Usage/blur/#blur_args
BLURTYPE="0x5" # 7.52s
#BLURTYPE="0x2" # 4.39s
#BLURTYPE="5x2" # 3.80s
#BLURTYPE="2x8" # 2.90s
#BLURTYPE="2x3" # 2.92s
# Get the screenshot, add the blur and lock the screen with it
$SCREENSHOT
convert $IMAGE -blur $BLURTYPE $IMAGE
i3lock -i $IMAGE
rm $IMAGE
}
case "$1" in
lock)
lock
;;
logout)
i3-msg exit
;;
suspend)
lock && systemctl suspend
;;
switch)
dm-tool switch-to-greeter
;;
hibernate)
lock && systemctl hibernate
;;
reboot)
systemctl reboot
;;
shutdown)
systemctl poweroff
;;
*)
echo "Usage: $0 {lock|logout|suspend|hibernate|reboot|shutdown}"
exit 2
esac
exit 0

BIN
i3/wallpaper/nordic.png (Stored with Git LFS) Normal file

Binary file not shown.

BIN
i3/wallpaper/watzmann.jpg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 185 KiB

1
nvim Submodule

@ -0,0 +1 @@
Subproject commit d172d9bbba15a72e9dc8ad86b8cd6cc0a02cde25