Set up laptop, add support for i3+plasma, clean up configs
This commit is contained in:
Executable
+3
@@ -0,0 +1,3 @@
|
||||
#!/bin/sh
|
||||
export KDEWM=/usr/bin/sway
|
||||
/usr/bin/startplasma-wayland
|
||||
@@ -1,129 +0,0 @@
|
||||
##############
|
||||
# compositor #
|
||||
##############
|
||||
|
||||
# transparency
|
||||
# uncomment one of them to be used
|
||||
# options could need changes, related to used GPU and drivers.
|
||||
# to find the right setting consult the archwiki or ask at the forum.
|
||||
#
|
||||
# xcompmgr: https://wiki.archlinux.org/title/Xcompmgr
|
||||
# manpage: https://man.archlinux.org/man/xcompmgr.1.en
|
||||
# install xcompmgr package to use it (yay -S xcompmgr)
|
||||
#exec --no-startup-id xcompmgr -C -n &
|
||||
# or an more specialized config like this:
|
||||
#exec --no-startup-id xcompmgr -c -C -t-5 -l-5 -r4.2 -o.55 &
|
||||
#
|
||||
# or:
|
||||
#
|
||||
# picom: https://wiki.archlinux.org/title/Picom
|
||||
# manpage: https://man.archlinux.org/man/picom.1.en
|
||||
# The default configuration is available in /etc/xdg/picom.conf
|
||||
# For modifications, it can be copied to ~/.config/picom/picom.conf or ~/.config/picom.conf
|
||||
# install picom package (yay -S picom)
|
||||
# start using default config
|
||||
# exec_always --no-startup-id picom -b
|
||||
#
|
||||
# for custom config:
|
||||
exec_always --no-startup-id picom -b --config ~/.config/picom.conf
|
||||
|
||||
#############################################
|
||||
# autostart applications/services on login: #
|
||||
#############################################
|
||||
|
||||
#get auth work with polkit-gnome
|
||||
exec --no-startup-id /usr/lib/polkit-gnome/polkit-gnome-authentication-agent-1
|
||||
|
||||
# dex execute .desktop files + apps using /etc/xdg/autostart.
|
||||
# when second to i3 a DE is installed or mixed usage of i3 + xfce4 or GNOME
|
||||
# in this cases better disable dex and use manual starting apps using xdg/autostart
|
||||
# if enabled you should comment welcome app.
|
||||
# https://github.com/jceb/dex
|
||||
#exec --no-startup-id dex -a -s /etc/xdg/autostart/:~/.config/autostart/
|
||||
exec --no-startup-id dex --autostart --environment i3
|
||||
|
||||
# start welcome app
|
||||
#exec --no-startup-id sh /usr/share/endeavouros/scripts/welcome --startdelay=3
|
||||
|
||||
# num lock activated
|
||||
exec --no-startup-id numlockx on
|
||||
|
||||
# configure multiple keyboard layouts and hotkey to switch (Alt+CAPSLOCK in this example)
|
||||
#exec --no-startup-id setxkbmap -layout 'us,sk' -variant altgr-intl,qwerty -option 'grp:alt_caps_toggle'
|
||||
|
||||
# start conky:
|
||||
exec_always --no-startup-id conky -c ~/.config/conky/conkyrc-stats
|
||||
|
||||
# start a script to setup displays
|
||||
# uncomment the next line, use arandr to setup displays and save the file as default:
|
||||
exec --no-startup-id ~/.screenlayout/default.sh
|
||||
|
||||
# set wallpaper
|
||||
# exec --no-startup-id sleep 2 && nitrogen --restore
|
||||
exec --no-startup-id sleep 1 && feh --bg-fill --randomize ~/wallpapers
|
||||
|
||||
# set powersavings for display:
|
||||
# xset dpms {standby_time} {suspend_time} {off_time}
|
||||
exec --no-startup-id xset dpms 600 0 0
|
||||
|
||||
# disable power saving (for example if using xscreensaver)
|
||||
#exec --no-startup-id xset -dpms
|
||||
|
||||
# use xautolock to use autosuspend rules for mobile devices
|
||||
# https://wiki.archlinux.org/title/Session_lock#xautolock
|
||||
#exec --no-startup-id xautolock -time 60 -locker "systemctl suspend"
|
||||
|
||||
|
||||
# xscreensaver
|
||||
# https://www.jwz.org/xscreensaver
|
||||
#exec --no-startup-id xscreensaver --no-splash
|
||||
|
||||
# Desktop notifications
|
||||
# dunst config used ~/.config/dunst/dunstrc
|
||||
# set alternative config if needed:
|
||||
#exec --no-startup-id /usr/bin/dunst --config ~/.config/dunst/dunstrc
|
||||
# may need to run dbus-launch explicitly:
|
||||
#exec --no-startup-id dbus-launch /usr/bin/dunst
|
||||
exec --no-startup-id /usr/bin/dunst
|
||||
# alternative if you installed aside with XFCE4:
|
||||
# exec --no-startup-id /usr/lib/xfce4/notifyd/xfce4-notifyd &
|
||||
|
||||
# autotiling script
|
||||
# https://github.com/nwg-piotr/autotiling
|
||||
# `yay -S autotiling ;) (it is in AUR)
|
||||
exec_always --no-startup-id autotiling
|
||||
|
||||
# Autostart apps as you like
|
||||
#exec --no-startup-id sleep 2 && xfce4-terminal
|
||||
#exec --no-startup-id sleep 7 && firefox https://github.com/endeavouros-team/endeavouros-i3wm-setup/blob/main/force-knowledge.md
|
||||
exec --no-startup-id sleep 7 && firefox https://todo.bradina.haus/
|
||||
exec --no-startup-id sleep 7 && Plexamp.AppImage
|
||||
assign [class="Plexamp"] 2
|
||||
exec --no-startup-id sleep 7 && element-desktop-nightly
|
||||
assign [class="Element-Nightly"] 2
|
||||
#exec --no-startup-id openrgb
|
||||
|
||||
# Scratchpad with notes
|
||||
exec --no-startup-id alacritty --title notebook -e zsh -c 'tmuxinator start notes'
|
||||
for_window [class="^Alacritty$" title="notebook"] move scratchpad, scratchpad hide
|
||||
|
||||
# automatic set focus new window if it opens on another workspace than the current:
|
||||
#for_window [class=Alacritty] focus
|
||||
#for_window [class=(?i)firefox] focus
|
||||
#for_window [class=Thunar] focus
|
||||
#exec --no-startup-id sleep 3 && thunar
|
||||
|
||||
###############
|
||||
# system tray #
|
||||
###############
|
||||
# if you do not use dex: exec --no-startup-id dex --autostart --environment i3
|
||||
# you need to have tray apps started manually one by one:
|
||||
|
||||
# start blueberry app for managing bluetooth devices from tray:
|
||||
#exec --no-startup-id blueberry-tray
|
||||
|
||||
# networkmanager-applet
|
||||
exec --no-startup-id nm-applet
|
||||
|
||||
# clipman-applet
|
||||
exec --no-startup-id xfce4-clipman
|
||||
+24
-21
@@ -1,24 +1,27 @@
|
||||
# exec --no-startup-id ~/set_once.sh
|
||||
# This file is a modified version based on default i3-config-wizard config
|
||||
# source is available here:
|
||||
# https://raw.githubusercontent.com/endeavouros-team/endeavouros-i3wm-setup/master/.config/i3/config
|
||||
# Maintainer: joekamprad [joekamprad //a_t// endeavouros.com]
|
||||
# https://endeavouros.com
|
||||
#
|
||||
# iconic font icon search: https://fontawesome.com/v4.7/cheatsheet/
|
||||
#
|
||||
# --> to update this run the following command (will backup existing setup file)
|
||||
# wget --backups=1 https://raw.githubusercontent.com/endeavouros-team/endeavouros-i3wm-setup/main/.config/i3/config -P ~/.config/i3/
|
||||
#
|
||||
# Endeavouros-i3 config file
|
||||
# Source for complete framework of our i3 config and theming here: https://github.com/endeavouros-team/endeavouros-i3wm-setup
|
||||
# EndeavourOS wiki holds some Information also: https://discovery.endeavouros.com/window-tiling-managers/i3-wm/
|
||||
# Please see http://i3wm.org/docs/userguide.html for the official i3 reference!
|
||||
|
||||
#######################
|
||||
# config starts here: #
|
||||
#######################
|
||||
include workspace.conf
|
||||
include keybindings.conf
|
||||
include autostart.conf
|
||||
include theme.conf
|
||||
####################
|
||||
# Shared variables #
|
||||
####################
|
||||
|
||||
# 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 $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"
|
||||
|
||||
# Include configs
|
||||
include config.d/*.conf
|
||||
|
||||
@@ -0,0 +1,40 @@
|
||||
##############
|
||||
# compositor #
|
||||
##############
|
||||
|
||||
# transparency
|
||||
# picom: https://wiki.archlinux.org/title/Picom
|
||||
# manpage: https://man.archlinux.org/man/picom.1.en
|
||||
# Enable if not using compositor included with plasma
|
||||
#exec_always --no-startup-id picom --experimental-backends -b --config ~/.config/picom.conf
|
||||
|
||||
##################
|
||||
# window manager #
|
||||
##################
|
||||
|
||||
# Only enable when using i3 without a DE (eg plasma)
|
||||
# dex execute .desktop files + apps using /etc/xdg/autostart.
|
||||
#exec --no-startup-id dex --autostart --environment i3
|
||||
|
||||
|
||||
################
|
||||
# applications #
|
||||
################
|
||||
|
||||
#exec_always --no-startup-id conky -c ~/.config/conky/conkyrc-stats
|
||||
|
||||
#exec --no-startup-id sleep 7 && firefox https://todo.bradina.haus/
|
||||
|
||||
#exec --no-startup-id sleep 7 && Plexamp.AppImage
|
||||
#assign [class="Plexamp"] 2
|
||||
|
||||
#exec --no-startup-id sleep 7 && element-desktop-nightly
|
||||
#assign [class="Element-Nightly"] 2
|
||||
|
||||
#exec --no-startup-id openrgb
|
||||
|
||||
# automatic set focus new window if it opens on another workspace than the current:
|
||||
#for_window [class=Alacritty] focus
|
||||
#for_window [class=(?i)firefox] focus
|
||||
#for_window [class=Thunar] focus
|
||||
#exec --no-startup-id sleep 3 && thunar
|
||||
@@ -0,0 +1,63 @@
|
||||
#############################################
|
||||
# autostart applications/services on login: #
|
||||
#############################################
|
||||
|
||||
#get auth work with polkit-gnome
|
||||
exec --no-startup-id /usr/lib/polkit-gnome/polkit-gnome-authentication-agent-1
|
||||
|
||||
# num lock activated
|
||||
exec --no-startup-id numlockx on
|
||||
|
||||
# start a script to setup displays
|
||||
# use arandr to setup displays and save the file as default:
|
||||
exec --no-startup-id ~/.screenlayout/default.sh
|
||||
|
||||
# set wallpaper
|
||||
exec --no-startup-id sleep 1 && feh --bg-fill --randomize ~/wallpapers
|
||||
|
||||
# set powersavings for display if not handled by DE:
|
||||
# Usage: xset dpms {standby_time} {suspend_time} {off_time}
|
||||
# exec --no-startup-id xset dpms 600 0 0
|
||||
|
||||
# disable power saving (for example if using xscreensaver)
|
||||
#exec --no-startup-id xset -dpms
|
||||
|
||||
# use xautolock to use autosuspend rules for mobile devices
|
||||
# https://wiki.archlinux.org/title/Session_lock#xautolock
|
||||
#exec --no-startup-id xautolock -time 60 -locker "systemctl suspend"
|
||||
|
||||
|
||||
# xscreensaver
|
||||
# https://www.jwz.org/xscreensaver
|
||||
#exec --no-startup-id xscreensaver --no-splash
|
||||
|
||||
# Desktop notifications
|
||||
# dunst config used ~/.config/dunst/dunstrc
|
||||
# may need to run dbus-launch explicitly:
|
||||
#exec --no-startup-id dbus-launch /usr/bin/dunst
|
||||
exec --no-startup-id /usr/bin/dunst
|
||||
|
||||
# autotiling script
|
||||
# https://github.com/nwg-piotr/autotiling
|
||||
# `yay -S autotiling ;) (it is in AUR)
|
||||
# exec_always --no-startup-id autotiling
|
||||
|
||||
# Scratchpad with notes
|
||||
# `tmuxinator open notes` first for this to work
|
||||
exec --no-startup-id alacritty --title notebook -e zsh -c 'tmuxinator start notes'
|
||||
for_window [class="^Alacritty$" title="notebook"] move scratchpad, scratchpad hide
|
||||
|
||||
###############
|
||||
# system tray #
|
||||
###############
|
||||
# if you do not use dex: exec --no-startup-id dex --autostart --environment i3
|
||||
# you need to have tray apps started manually one by one:
|
||||
|
||||
# start blueberry app for managing bluetooth devices from tray:
|
||||
#exec --no-startup-id blueberry-tray
|
||||
|
||||
# networkmanager-applet
|
||||
exec --no-startup-id nm-applet
|
||||
|
||||
# clipman-applet
|
||||
exec --no-startup-id xfce4-clipman
|
||||
@@ -169,12 +169,17 @@ bindsym $mod+q kill
|
||||
#bindsym --release button2 kill
|
||||
|
||||
# exit-menu
|
||||
bindsym $mod+Shift+e exec --no-startup-id ~/.config/i3/scripts/powermenu
|
||||
#bindsym $mod+Shift+e exec --no-startup-id ~/.config/i3/scripts/powermenu
|
||||
# using plasma's logout screen instead of i3's
|
||||
bindsym $mod+Shift+t exec --no-startup-id qdbus6 org.kde.LogoutPrompt /LogoutPrompt org.kde.LogoutPrompt.promptLogout
|
||||
#bindsym $mod+Shift+t exec --no-startup-id loginctl kill-session "$USER"
|
||||
bindsym $mod+Shift+e exec --no-startup-id kill -9 -1
|
||||
|
||||
# Lock the system
|
||||
# lock with a picture:
|
||||
#bindsym $mod+l exec --no-startup-id i3lock -i ~/.config/i3/i3-lock-screen.png -p default|win -t
|
||||
# lock by blurring the screen:
|
||||
# TODO: Update to use plasma lock
|
||||
bindsym $mod+Delete exec --no-startup-id ~/.config/i3/scripts/blur-lock
|
||||
|
||||
# reload the configuration file
|
||||
@@ -193,8 +198,8 @@ bindsym F1 exec --no-startup-id ~/.config/i3/scripts/keyhint-2
|
||||
#bindsym XF86MonBrightnessUp exec --no-startup-id xbacklight +10 && notify-send "Brightness - $(xbacklight -get | cut -d '.' -f 1)%"
|
||||
#bindsym XF86MonBrightnessDown exec --no-startup-id xbacklight -10 && notify-send "Brightness - $(xbacklight -get | cut -d '.' -f 1)%"
|
||||
# Backlight setting using dunst osc
|
||||
bindsym XF86MonBrightnessUp exec --no-startup-id ~/.config/i3/scripts/volume_brightness.sh brightness_up
|
||||
bindsym XF86MonBrightnessDown exec --no-startup-id ~/.config/i3/scripts/volume_brightness.sh brightness_down
|
||||
#bindsym XF86MonBrightnessUp exec --no-startup-id ~/.config/i3/scripts/volume_brightness.sh brightness_up
|
||||
#bindsym XF86MonBrightnessDown exec --no-startup-id ~/.config/i3/scripts/volume_brightness.sh brightness_down
|
||||
|
||||
# change focus
|
||||
bindsym $mod+h focus left
|
||||
@@ -249,14 +254,17 @@ bindsym $mod+a focus parent
|
||||
bindsym $mod+Shift+n exec --no-startup-id ~/.config/i3/scripts/empty_workspace
|
||||
|
||||
# Multimedia Keys
|
||||
# TODO: These will only work if plasma is installed, update to add compatibility with bare i3
|
||||
|
||||
# volume
|
||||
# use meta keys without showing osc
|
||||
#bindsym XF86AudioRaiseVolume exec --no-startup-id amixer -D pulse sset Master 5%+ && pkill -RTMIN+1 i3blocks
|
||||
#bindsym XF86AudioLowerVolume exec --no-startup-id amixer -D pulse sset Master 5%- && pkill -RTMIN+1 i3blocks
|
||||
# use meta keys showing osc using dunst
|
||||
bindsym XF86AudioRaiseVolume exec --no-startup-id ~/.config/i3/scripts/volume_brightness.sh volume_up
|
||||
bindsym XF86AudioLowerVolume exec --no-startup-id ~/.config/i3/scripts/volume_brightness.sh volume_down
|
||||
#bindsym XF86AudioRaiseVolume exec --no-startup-id ~/.config/i3/scripts/volume_brightness.sh volume_up
|
||||
#bindsym XF86AudioLowerVolume exec --no-startup-id ~/.config/i3/scripts/volume_brightness.sh volume_down
|
||||
bindsym XF86AudioRaiseVolume exec --no-startup-id qdbus6 org.kde.kglobalaccel /component/kmix invokeShortcut "increase_volume"
|
||||
bindsym XF86AudioLowerVolume exec --no-startup-id qdbus6 org.kde.kglobalaccel /component/kmix invokeShortcut "decrease_volume"
|
||||
|
||||
# gradular volume control
|
||||
bindsym $mod+XF86AudioRaiseVolume exec --no-startup-id amixer -D pulse sset Master 1%+ && pkill -RTMIN+1 i3blocks
|
||||
@@ -265,14 +273,16 @@ bindsym $mod+XF86AudioLowerVolume exec --no-startup-id amixer -D pulse sset Mast
|
||||
# mute
|
||||
#bindsym XF86AudioMute exec --no-startup-id amixer sset Master toggle && killall -USR1 i3blocks
|
||||
# use meta keys showing osc using dunst
|
||||
bindsym XF86AudioMute exec --no-startup-id ~/.config/i3/scripts/volume_brightness.sh volume_mute
|
||||
#bindsym XF86AudioMute exec --no-startup-id ~/.config/i3/scripts/volume_brightness.sh volume_mute
|
||||
bindsym XF86AudioMute exec --no-startup-id qdbus6 org.kde.kglobalaccel /component/kmix invokeShortcut "mute"
|
||||
|
||||
# mic mute toggle
|
||||
bindsym XF86AudioMicMute exec amixer sset Capture toggle
|
||||
#bindsym XF86AudioMicMute exec amixer sset Capture toggle
|
||||
bindsym XF86AudioMicMute exec --no-startup-id qdbus6 org.kde.kglobalaccel /component/kmix invokeShortcut "mic_mute"
|
||||
|
||||
# audio control
|
||||
# TODO: Play pause doesn't work
|
||||
bindsym XF86AudioPlay exec --no-startup-id playerctl play
|
||||
# TODO: Play pause doesn't work on desktop
|
||||
bindsym XF86AudioPlay exec --no-startup-id playerctl play-pause
|
||||
bindsym XF86AudioPause exec --no-startup-id playerctl pause
|
||||
bindsym XF86AudioNext exec --no-startup-id playerctl next
|
||||
bindsym XF86AudioPrev exec --no-startup-id playerctl previous
|
||||
@@ -286,12 +296,11 @@ bindsym --whole-window $mod+button2 kill
|
||||
bindsym $mod+p exec --no-startup-id /usr/local/bin/switch-audio-port
|
||||
|
||||
## App shortcuts
|
||||
# TODO: dolphin/thunar, Spectacle/scrot
|
||||
bindsym $mod+w exec /usr/bin/firefox
|
||||
bindsym $mod+n exec /usr/bin/thunar
|
||||
bindsym Print exec scrot ~/%Y-%m-%d-%T-screenshot.png && notify-send "Screenshot saved to ~/$(date +"%Y-%m-%d-%T")-screenshot.png"
|
||||
# bindsym $mod+w exec --no-startup-id /usr/bin/firefox
|
||||
# bindsym $mod+n exec --no-startup-id /usr/bin/thunar
|
||||
# bindsym Print exec --no-startup-id scrot ~/%Y-%m-%d-%T-screenshot.png && notify-send "Screenshot saved to ~/$(date +"%Y-%m-%d-%T")-screenshot.png"
|
||||
bindsym $mod+n exec /usr/bin/dolphin
|
||||
bindsym Print exec scrot ~/Pictures/Screenshots/%Y-%m-%d-%T-screenshot.png && notify-send "Screenshot saved to ~/Pictures/Screenshots/$(date +"%Y-%m-%d-%T")-screenshot.png"
|
||||
bindsym $mod+Print exec Spectacle
|
||||
|
||||
# Power Profiles menu switcher (rofi)
|
||||
bindsym $mod+Shift+p exec --no-startup-id ~/.config/i3/scripts/power-profiles
|
||||
@@ -1,21 +1,18 @@
|
||||
# Font for window titles. Will also be used by the bar unless a different font
|
||||
# is used in the bar {} block below.
|
||||
# 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: Noto Sans Regular 10
|
||||
#font pango: Source Code Pro for Powerline 10
|
||||
font pango: Liberation Sans Regular 10
|
||||
#font pango: Hack 10
|
||||
|
||||
#border indicator on windows:
|
||||
new_window pixel 5
|
||||
# border indicator on windows:
|
||||
# larger borders are helpful to resize windows with the mouse
|
||||
default_border pixel 5
|
||||
|
||||
# thin borders
|
||||
# hide_edge_borders both
|
||||
|
||||
# Set inner/outer gaps
|
||||
gaps inner 20
|
||||
gaps outer 20
|
||||
gaps inner 10
|
||||
gaps outer 10
|
||||
|
||||
# show window title bars (not officially supported with i3gaps)
|
||||
#default_border normal
|
||||
@@ -42,17 +39,16 @@ for_window [window_role="About"] floating enable
|
||||
|
||||
# Plasma
|
||||
for_window [class="yakuake"] floating enable;
|
||||
for_window [class="lattedock"] floating enable;
|
||||
for_window [class="systemsettings"] floating enable;
|
||||
for_window [class="plasmashell"] floating enable;
|
||||
for_window [class="Kmix"] floating enable; border none
|
||||
for_window [class="kruler"] floating enable; border none
|
||||
for_window [class="Plasma"] floating enable; border none
|
||||
for_window [class="Klipper"] floating enable; border none
|
||||
for_window [class="krunner"] floating enable; border none
|
||||
for_window [class="Plasmoidviewer"] floating enable; border none
|
||||
for_window [title="plasma-desktop"] floating enable; border none
|
||||
#for_window [class="plasmashell" window_type="notification"] floating enable, border none, move position 1450px 20px
|
||||
for_window [class="plasmashell" window_type="notification"] floating enable, border none, move position 2050px 35px
|
||||
for_window [title="win7"] floating enable; border none
|
||||
for_window [class="krunner"] floating enable; border none
|
||||
for_window [class="Kmix"] floating enable; border none
|
||||
for_window [class="Klipper"] floating enable; border none
|
||||
for_window [class="Plasmoidviewer"] floating enable; border none
|
||||
for_window [class="plasmashell" window_type="notification"] floating enable, border none, move position 70 ppt 81 ppt
|
||||
no_focus [class="plasmashell" window_type="notification"]
|
||||
|
||||
for_window [window_role="pop-up"] floating enable
|
||||
@@ -63,8 +59,8 @@ for_window [window_type="dialog"] floating enable
|
||||
for_window [window_type="menu"] floating enable
|
||||
for_window [instance="__scratchpad"] floating enable
|
||||
|
||||
# set border of floating window
|
||||
#for_window [class="Alacritty"] border pixel 10
|
||||
# Kill existing Plasma desktop window if it exists
|
||||
for_window [title="Desktop @ QRect.*"] kill; floating enable; border none
|
||||
|
||||
# set size of floating window
|
||||
#for_window [window_role="(?i)GtkFileChooserDialog"] resize set 640 480 #to set size of file choose dialog
|
||||
@@ -88,12 +84,13 @@ set $purple #b16286
|
||||
set $aqua #689d6a
|
||||
set $gray #a89984
|
||||
set $darkgray #1d2021
|
||||
set $white #ebdbb2
|
||||
|
||||
# gruvbox
|
||||
# class border backgr text indicator child_border
|
||||
client.focused $blue $blue $darkgray $purple $darkgray
|
||||
client.unfocused $darkgray $darkgray $yellow $purple $darkgray
|
||||
client.focused_inactive $darkgray $darkgray $yellow $purple $darkgray
|
||||
client.focused $blue $blue $darkgray $aqua $darkgray
|
||||
client.unfocused $darkgray $darkgray $yellow $aqua $darkgray
|
||||
client.focused_inactive $darkgray $darkgray $yellow $aqua $darkgray
|
||||
client.urgent $red $red $white $red $red
|
||||
|
||||
############################################
|
||||
@@ -103,10 +100,15 @@ client.urgent $red $red $white $red $red
|
||||
# Start i3bar to display a workspace bar
|
||||
# (plus the system information i3status finds out, if available)
|
||||
bar {
|
||||
# Don't show the bar since we're using plasma bar, comment if using i3 on its own
|
||||
mode invisible
|
||||
#mode hide
|
||||
hidden_state hide
|
||||
modifier Mod4
|
||||
|
||||
# TODO: Figure out how to add an applications menu button on the left of bar
|
||||
# font pango: Source Code Pro (monospace) 10 #Noto Sans Regular 10
|
||||
font pango: Source Code Pro for Powerline 10
|
||||
#font pango: Hack Bold 10
|
||||
status_command i3blocks -c ~/.config/i3/i3blocks.conf
|
||||
position bottom
|
||||
#tray_padding 0
|
||||
@@ -143,12 +145,6 @@ bar {
|
||||
# output HDMI-0
|
||||
# position bottom
|
||||
#
|
||||
# When strip_workspace_numbers is set to yes,
|
||||
# any workspace that has a name of the form
|
||||
# “[n][:][NAME]” will display only the name.
|
||||
#strip_workspace_numbers yes
|
||||
##strip_workspace_name no
|
||||
#
|
||||
# colors {
|
||||
# separator $purple
|
||||
# background $darkbluetrans
|
||||
@@ -17,30 +17,12 @@ workspace_layout default
|
||||
# configuration for workspace behaviour: #
|
||||
##########################################
|
||||
|
||||
# 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 $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"
|
||||
|
||||
# use workspaces on different displays:
|
||||
# where you have to replace VGA-0/HDMI-0 with the names for your displays
|
||||
# you can get from xrandr command
|
||||
workspace $ws1 output DP-2
|
||||
workspace $ws3 output DP-2
|
||||
workspace $ws5 output DP-2
|
||||
workspace $ws2 output DP-4
|
||||
workspace $ws4 output DP-4
|
||||
workspace $ws6 output DP-4
|
||||
#workspace $ws1 output DP-2
|
||||
#workspace $ws3 output DP-2
|
||||
#workspace $ws5 output DP-2
|
||||
#workspace $ws2 output DP-4
|
||||
#workspace $ws4 output DP-4
|
||||
#workspace $ws6 output DP-4
|
||||
@@ -1,4 +1,4 @@
|
||||
I3_CONFIG=$HOME/.config/i3/config
|
||||
I3_CONFIG=$HOME/.config/i3/config.d/keybindings.conf
|
||||
mod_key=$(sed -nre 's/^set \$mod (.*)/\1/p' ${I3_CONFIG})
|
||||
grep "^bindsym" ${I3_CONFIG} \
|
||||
| sed "s/-\(-\w\+\)\+//g;s/\$mod/${mod_key}/g;s/Mod1/Alt/g;s/exec //;s/bindsym //;s/^\s\+//;s/^\([^ ]\+\) \(.\+\)$/\2: \1/;s/^\s\+//" \
|
||||
|
||||
@@ -0,0 +1,7 @@
|
||||
# Example / default config at /etc/libinput-gestures.conf
|
||||
gesture swipe up xdotool key super+f
|
||||
gesture swipe down xdotool key super+N
|
||||
gesture swipe left xdotool key super+shift+Tab
|
||||
gesture swipe right xdotool key super+Tab
|
||||
gesture pinch in xdotool key super+t
|
||||
gesture pinch out xdotool key super+d
|
||||
@@ -0,0 +1,101 @@
|
||||
# Source: https://www.reddit.com/r/kde/comments/p822c2/perfect_kde_plasma_compositing_combo_kwin_picom/
|
||||
# https://gist.github.com/crnisamuraj/2cd9bae3e658004d3e506492b1d9442b
|
||||
### Fading
|
||||
fading = true;
|
||||
fade-in-step = 0.06;
|
||||
fade-out-ste = 0.06;
|
||||
fade-delta = 3;
|
||||
fade-exclude = [
|
||||
"class_g = 'yakuake'"
|
||||
]
|
||||
|
||||
### Opacity
|
||||
opacity-rule = [
|
||||
"96:class_g = 'plasmashell'"
|
||||
];
|
||||
|
||||
|
||||
|
||||
### Shadows
|
||||
shadow = true;
|
||||
shadow-exclude = [
|
||||
"class_g = 'yakuake'",
|
||||
"class_g = 'lattedock'",
|
||||
"_GTK_FRAME_EXTENTS@:c",
|
||||
"QTILE_INTERNAL@:c",
|
||||
"name = 'cpt_frame_xcb_window'",
|
||||
"class_g ?= 'zoom'",
|
||||
"_NET_WM_STATE@:32a *= '_NET_WM_STATE_HIDDEN'",
|
||||
"_NET_WM_OPAQUE_REGION@:c",
|
||||
"class_g = 'TelegramDesktop' && argb",
|
||||
# "class_g = 'firefox' && argb",
|
||||
"class_g = 'firefox' && window_type = 'popup_menu'",
|
||||
"class_g = 'firefox' && window_type = 'utility'",
|
||||
"class_g = 'firefox' && window_type = 'tooltip'",
|
||||
]
|
||||
xinerama-shadow-crop = true;
|
||||
|
||||
### Blur
|
||||
blur:{
|
||||
method = "dual_kawase";
|
||||
strength = 6;
|
||||
# background-frame = true;
|
||||
# background-fixed = true;
|
||||
}
|
||||
|
||||
|
||||
blur-background-exclude = [
|
||||
# "window_type = 'desktop'",
|
||||
"_GTK_FRAME_EXTENTS@:c",
|
||||
"class_g ?= 'zoom'",
|
||||
# "class_g = 'firefox' && argb",
|
||||
"class_g = 'firefox' && window_type = 'popup_menu'",
|
||||
"class_g = 'firefox' && window_type = 'utility'",
|
||||
];
|
||||
|
||||
|
||||
### Wintypes
|
||||
wintypes:{
|
||||
# normal = { blur-background = true; };
|
||||
splash = { blur-background = false; };
|
||||
# popup_menu = { opacity = 0.8; shadow = false; full-shadow = false; };
|
||||
# dropdown_menu = { opacity = 0.8; shadow = false; };
|
||||
dock = { shadow = false; clip-shadow-above = true; };
|
||||
tooltip = { fade = true; shadow = true; opacity = 0.9; focus = true; full-shadow = false; };
|
||||
menu = { blur-background = false; };
|
||||
};
|
||||
|
||||
### Backend
|
||||
backend = "glx";
|
||||
#backend = "xrender";
|
||||
vsync = false;
|
||||
|
||||
glx-no-stencil = true;
|
||||
glx-no-rebind-pixmap = true;
|
||||
xrender-sync-fence = true;
|
||||
unredir-if-possible = true;
|
||||
|
||||
dbus=true;
|
||||
|
||||
### Corners
|
||||
detect-rounded-corners = true;
|
||||
corner-radius = 9;
|
||||
rounded-corners-exclude = [
|
||||
# "class_g = 'lattedock'",
|
||||
"window_type = 'dock'",
|
||||
"window_type = 'desktop'",
|
||||
# "window_type = 'popup_menu'",
|
||||
"window_type = 'tooltip'",
|
||||
];
|
||||
|
||||
round-borders = 9;
|
||||
|
||||
detect-client-opacity = true;
|
||||
detect-transient = true;
|
||||
detect-client-leader = true;
|
||||
|
||||
mark-wmwin-focused = true;
|
||||
mark-ovredir-focused = true;
|
||||
use-ewmh-active-win = true;
|
||||
|
||||
#transparrent-clipping = true;
|
||||
+52
-407
@@ -1,431 +1,76 @@
|
||||
#################################
|
||||
# Shadows #
|
||||
#################################
|
||||
|
||||
|
||||
# Enabled client-side shadows on windows. Note desktop windows
|
||||
# (windows with '_NET_WM_WINDOW_TYPE_DESKTOP') never get shadow,
|
||||
# unless explicitly requested using the wintypes option.
|
||||
#
|
||||
# shadow = false
|
||||
shadow = true;
|
||||
|
||||
# The blur radius for shadows, in pixels. (defaults to 12)
|
||||
# shadow-radius = 12
|
||||
shadow-radius = 7;
|
||||
|
||||
# The opacity of shadows. (0.0 - 1.0, defaults to 0.75)
|
||||
# shadow-opacity = .75
|
||||
|
||||
# The left offset for shadows, in pixels. (defaults to -15)
|
||||
# shadow-offset-x = -15
|
||||
shadow-offset-x = -7;
|
||||
|
||||
# The top offset for shadows, in pixels. (defaults to -15)
|
||||
# shadow-offset-y = -15
|
||||
shadow-offset-y = -7;
|
||||
|
||||
# Red color value of shadow (0.0 - 1.0, defaults to 0).
|
||||
# shadow-red = 0
|
||||
|
||||
# Green color value of shadow (0.0 - 1.0, defaults to 0).
|
||||
# shadow-green = 0
|
||||
|
||||
# Blue color value of shadow (0.0 - 1.0, defaults to 0).
|
||||
# shadow-blue = 0
|
||||
|
||||
# Hex string color value of shadow (#000000 - #FFFFFF, defaults to #000000). This option will override options set shadow-(red/green/blue)
|
||||
# shadow-color = "#000000"
|
||||
|
||||
# Specify a list of conditions of windows that should have no shadow.
|
||||
#
|
||||
# examples:
|
||||
# shadow-exclude = "n:e:Notification";
|
||||
#
|
||||
# shadow-exclude = []
|
||||
shadow-exclude = [
|
||||
"name = 'Notification'",
|
||||
"class_g = 'Conky'",
|
||||
"class_g ?= 'Notify-osd'",
|
||||
"class_g = 'Cairo-clock'",
|
||||
"_GTK_FRAME_EXTENTS@:c"
|
||||
];
|
||||
|
||||
# Specify a list of conditions of windows that should have no shadow painted over, such as a dock window.
|
||||
# clip-shadow-above = []
|
||||
|
||||
# Specify a X geometry that describes the region in which shadow should not
|
||||
# be painted in, such as a dock window region. Use
|
||||
# shadow-exclude-reg = "x10+0+0"
|
||||
# for example, if the 10 pixels on the bottom of the screen should not have shadows painted on.
|
||||
#
|
||||
# shadow-exclude-reg = ""
|
||||
|
||||
# Crop shadow of a window fully on a particular monitor to that monitor. This is
|
||||
# currently implemented using the X RandR extension.
|
||||
# crop-shadow-to-monitor = false
|
||||
|
||||
|
||||
#################################
|
||||
# Fading #
|
||||
#################################
|
||||
|
||||
|
||||
# Fade windows in/out when opening/closing and when opacity changes,
|
||||
# unless no-fading-openclose is used.
|
||||
# fading = false
|
||||
# Source: https://www.reddit.com/r/kde/comments/p822c2/perfect_kde_plasma_compositing_combo_kwin_picom/
|
||||
# https://gist.github.com/crnisamuraj/2cd9bae3e658004d3e506492b1d9442b
|
||||
### Fading
|
||||
fading = true;
|
||||
fade-in-step = 0.06;
|
||||
fade-out-ste = 0.06;
|
||||
fade-delta = 3;
|
||||
fade-exclude = [
|
||||
"class_g = 'yakuake'"
|
||||
]
|
||||
|
||||
# Opacity change between steps while fading in. (0.01 - 1.0, defaults to 0.028)
|
||||
# fade-in-step = 0.028
|
||||
fade-in-step = 0.03;
|
||||
|
||||
# Opacity change between steps while fading out. (0.01 - 1.0, defaults to 0.03)
|
||||
# fade-out-step = 0.03
|
||||
fade-out-step = 0.03;
|
||||
|
||||
# The time between steps in fade step, in milliseconds. (> 0, defaults to 10)
|
||||
# fade-delta = 10
|
||||
|
||||
# Specify a list of conditions of windows that should not be faded.
|
||||
# fade-exclude = []
|
||||
|
||||
# Do not fade on window open/close.
|
||||
# no-fading-openclose = false
|
||||
|
||||
# Do not fade destroyed ARGB windows with WM frame. Workaround of bugs in Openbox, Fluxbox, etc.
|
||||
# no-fading-destroyed-argb = false
|
||||
|
||||
|
||||
#################################
|
||||
# Transparency / Opacity #
|
||||
#################################
|
||||
|
||||
|
||||
# Opacity of inactive windows. (0.1 - 1.0, defaults to 1.0)
|
||||
# inactive-opacity = 1
|
||||
inactive-opacity = 0.95;
|
||||
|
||||
# Opacity of window titlebars and borders. (0.1 - 1.0, disabled by default)
|
||||
# frame-opacity = 1.0
|
||||
frame-opacity = 0.9;
|
||||
|
||||
# Let inactive opacity set by -i override the '_NET_WM_WINDOW_OPACITY' values of windows.
|
||||
# inactive-opacity-override = true
|
||||
inactive-opacity-override = false;
|
||||
|
||||
# Default opacity for active windows. (0.0 - 1.0, defaults to 1.0)
|
||||
# active-opacity = 1.0
|
||||
|
||||
# Dim inactive windows. (0.0 - 1.0, defaults to 0.0)
|
||||
# inactive-dim = 0.0
|
||||
|
||||
# Specify a list of conditions of windows that should never be considered focused.
|
||||
# focus-exclude = []
|
||||
focus-exclude = [ "class_g = 'Cairo-clock'" ];
|
||||
|
||||
# Use fixed inactive dim value, instead of adjusting according to window opacity.
|
||||
# inactive-dim-fixed = 1.0
|
||||
|
||||
# Specify a list of opacity rules, in the format `PERCENT:PATTERN`,
|
||||
# like `50:name *= "Firefox"`. picom-trans is recommended over this.
|
||||
# Note we don't make any guarantee about possible conflicts with other
|
||||
# programs that set '_NET_WM_WINDOW_OPACITY' on frame or client windows.
|
||||
# example:
|
||||
# opacity-rule = [ "80:class_g = 'URxvt'" ];
|
||||
#
|
||||
# opacity-rule = []
|
||||
|
||||
|
||||
#################################
|
||||
# Corners #
|
||||
#################################
|
||||
|
||||
# Sets the radius of rounded window corners. When > 0, the compositor will
|
||||
# round the corners of windows. Does not interact well with
|
||||
# `transparent-clipping`.
|
||||
corner-radius = 0
|
||||
|
||||
# Exclude conditions for rounded corners.
|
||||
rounded-corners-exclude = [
|
||||
"window_type = 'dock'",
|
||||
"window_type = 'desktop'"
|
||||
### Opacity
|
||||
opacity-rule = [
|
||||
"98:class_g = 'plasmashell'"
|
||||
];
|
||||
|
||||
|
||||
#################################
|
||||
# Background-Blurring #
|
||||
#################################
|
||||
|
||||
### Shadows
|
||||
shadow = true;
|
||||
shadow-exclude = [
|
||||
"class_g = 'lattedock'",
|
||||
"_GTK_FRAME_EXTENTS@:c"
|
||||
]
|
||||
xinerama-shadow-crop = true;
|
||||
|
||||
# Parameters for background blurring, see the *BLUR* section for more information.
|
||||
# blur-method =
|
||||
# blur-size = 12
|
||||
#
|
||||
# blur-deviation = false
|
||||
#
|
||||
# blur-strength = 5
|
||||
### Blur
|
||||
blur:{
|
||||
#method = "kernel";
|
||||
method = "dual_kawase";
|
||||
deviation = true;
|
||||
}
|
||||
|
||||
# Blur background of semi-transparent / ARGB windows.
|
||||
# Bad in performance, with driver-dependent behavior.
|
||||
# The name of the switch may change without prior notifications.
|
||||
#
|
||||
# blur-background = false
|
||||
|
||||
# Blur background of windows when the window frame is not opaque.
|
||||
# Implies:
|
||||
# blur-background
|
||||
# Bad in performance, with driver-dependent behavior. The name may change.
|
||||
#
|
||||
# blur-background-frame = false
|
||||
|
||||
|
||||
# Use fixed blur strength rather than adjusting according to window opacity.
|
||||
# blur-background-fixed = false
|
||||
|
||||
|
||||
# Specify the blur convolution kernel, with the following format:
|
||||
# example:
|
||||
# blur-kern = "5,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1";
|
||||
#
|
||||
# blur-kern = ""
|
||||
blur-kern = "3x3box";
|
||||
|
||||
|
||||
# Exclude conditions for background blur.
|
||||
# blur-background-exclude = []
|
||||
blur-background-exclude = [
|
||||
"window_type = 'dock'",
|
||||
"window_type = 'desktop'",
|
||||
"_GTK_FRAME_EXTENTS@:c"
|
||||
];
|
||||
|
||||
#################################
|
||||
# General Settings #
|
||||
#################################
|
||||
|
||||
# Enable remote control via D-Bus. See the man page for more details.
|
||||
# dbus = true
|
||||
### Wintypes
|
||||
wintypes:{
|
||||
normal = { blur-background = true; };
|
||||
splash = { blur-background = false; };
|
||||
popup_menu = { opacity = 0.9; };
|
||||
dropdown_menu = { opacity = 0.8; };
|
||||
dock = { shadow = false; clip-shadow-above = true; };
|
||||
tooltip = { fade = true; shadow = true; opacity = 0.9; focus = true; full-shadow = false; };
|
||||
};
|
||||
|
||||
# Daemonize process. Fork to background after initialization. Causes issues with certain (badly-written) drivers.
|
||||
# daemon = false
|
||||
|
||||
# Specify the backend to use: `xrender`, `glx`, `egl` or `xr_glx_hybrid`.
|
||||
# `xrender` is the default one.
|
||||
#
|
||||
# backend = "glx"
|
||||
backend = "xrender";
|
||||
|
||||
# Use higher precision during rendering, and apply dither when presenting the
|
||||
# rendered screen. Reduces banding artifacts, but might cause performance
|
||||
# degradation. Only works with OpenGL.
|
||||
dithered-present = false;
|
||||
|
||||
# Enable/disable VSync.
|
||||
# vsync = false
|
||||
### Backend
|
||||
backend = "glx";
|
||||
#backend = "xrender";
|
||||
vsync = true;
|
||||
|
||||
# Try to detect WM windows (a non-override-redirect window with no
|
||||
# child that has 'WM_STATE') and mark them as active.
|
||||
#
|
||||
# mark-wmwin-focused = false
|
||||
mark-wmwin-focused = true;
|
||||
glx-no-stencil = true;
|
||||
glx-no-rebind-pixmap = true;
|
||||
xrender-sync-fence = true;
|
||||
|
||||
# Mark override-redirect windows that doesn't have a child window with 'WM_STATE' focused.
|
||||
# mark-ovredir-focused = false
|
||||
mark-ovredir-focused = true;
|
||||
dbus=true;
|
||||
|
||||
# Try to detect windows with rounded corners and don't consider them
|
||||
# shaped windows. The accuracy is not very high, unfortunately.
|
||||
#
|
||||
# detect-rounded-corners = false
|
||||
### Corners
|
||||
detect-rounded-corners = true;
|
||||
corner-radius = 6;
|
||||
rounded-corners-exclude = [
|
||||
"window_type = 'dock'",
|
||||
"window_type = 'desktop'",
|
||||
"window_type = 'popup_menu'"
|
||||
];
|
||||
|
||||
# Detect '_NET_WM_WINDOW_OPACITY' on client windows, useful for window managers
|
||||
# not passing '_NET_WM_WINDOW_OPACITY' of client windows to frame windows.
|
||||
#
|
||||
# detect-client-opacity = false
|
||||
detect-client-opacity = true;
|
||||
|
||||
# Use EWMH '_NET_ACTIVE_WINDOW' to determine currently focused window,
|
||||
# rather than listening to 'FocusIn'/'FocusOut' event. Might have more accuracy,
|
||||
# provided that the WM supports it.
|
||||
#
|
||||
# use-ewmh-active-win = false
|
||||
|
||||
# Unredirect all windows if a full-screen opaque window is detected,
|
||||
# to maximize performance for full-screen windows. Known to cause flickering
|
||||
# when redirecting/unredirecting windows.
|
||||
#
|
||||
# unredir-if-possible = false
|
||||
|
||||
# Delay before unredirecting the window, in milliseconds. Defaults to 0.
|
||||
# unredir-if-possible-delay = 0
|
||||
|
||||
# Conditions of windows that shouldn't be considered full-screen for unredirecting screen.
|
||||
# unredir-if-possible-exclude = []
|
||||
|
||||
# Use 'WM_TRANSIENT_FOR' to group windows, and consider windows
|
||||
# in the same group focused at the same time.
|
||||
#
|
||||
# detect-transient = false
|
||||
detect-transient = true;
|
||||
|
||||
# Use 'WM_CLIENT_LEADER' to group windows, and consider windows in the same
|
||||
# group focused at the same time. This usually means windows from the same application
|
||||
# will be considered focused or unfocused at the same time.
|
||||
# 'WM_TRANSIENT_FOR' has higher priority if detect-transient is enabled, too.
|
||||
#
|
||||
# detect-client-leader = false
|
||||
|
||||
# Resize damaged region by a specific number of pixels.
|
||||
# A positive value enlarges it while a negative one shrinks it.
|
||||
# If the value is positive, those additional pixels will not be actually painted
|
||||
# to screen, only used in blur calculation, and such. (Due to technical limitations,
|
||||
# with use-damage, those pixels will still be incorrectly painted to screen.)
|
||||
# Primarily used to fix the line corruption issues of blur,
|
||||
# in which case you should use the blur radius value here
|
||||
# (e.g. with a 3x3 kernel, you should use `--resize-damage 1`,
|
||||
# with a 5x5 one you use `--resize-damage 2`, and so on).
|
||||
# May or may not work with *--glx-no-stencil*. Shrinking doesn't function correctly.
|
||||
#
|
||||
# resize-damage = 1
|
||||
|
||||
# Specify a list of conditions of windows that should be painted with inverted color.
|
||||
# Resource-hogging, and is not well tested.
|
||||
#
|
||||
# invert-color-include = []
|
||||
|
||||
# GLX backend: Avoid using stencil buffer, useful if you don't have a stencil buffer.
|
||||
# Might cause incorrect opacity when rendering transparent content (but never
|
||||
# practically happened) and may not work with blur-background.
|
||||
# My tests show a 15% performance boost. Recommended.
|
||||
#
|
||||
glx-no-stencil = true;
|
||||
|
||||
# GLX backend: Avoid rebinding pixmap on window damage.
|
||||
# Probably could improve performance on rapid window content changes,
|
||||
# but is known to break things on some drivers (LLVMpipe, xf86-video-intel, etc.).
|
||||
# Recommended if it works.
|
||||
#
|
||||
# glx-no-rebind-pixmap = false
|
||||
|
||||
# Disable the use of damage information.
|
||||
# This cause the whole screen to be redrawn every time, instead of the part of the screen
|
||||
# has actually changed. Potentially degrades the performance, but might fix some artifacts.
|
||||
# The opposing option is use-damage
|
||||
#
|
||||
# no-use-damage = false
|
||||
use-damage = true;
|
||||
|
||||
# Use X Sync fence to sync clients' draw calls, to make sure all draw
|
||||
# calls are finished before picom starts drawing. Needed on nvidia-drivers
|
||||
# with GLX backend for some users.
|
||||
#
|
||||
# xrender-sync-fence = false
|
||||
|
||||
# GLX backend: Use specified GLSL fragment shader for rendering window
|
||||
# contents. Read the man page for a detailed explanation of the interface.
|
||||
#
|
||||
# window-shader-fg = "default"
|
||||
|
||||
# Use rules to set per-window shaders. Syntax is SHADER_PATH:PATTERN, similar
|
||||
# to opacity-rule. SHADER_PATH can be "default". This overrides window-shader-fg.
|
||||
#
|
||||
# window-shader-fg-rule = [
|
||||
# "my_shader.frag:window_type != 'dock'"
|
||||
# ]
|
||||
|
||||
# Force all windows to be painted with blending. Useful if you
|
||||
# have a glx-fshader-win that could turn opaque pixels transparent.
|
||||
#
|
||||
# force-win-blend = false
|
||||
|
||||
# Do not use EWMH to detect fullscreen windows.
|
||||
# Reverts to checking if a window is fullscreen based only on its size and coordinates.
|
||||
#
|
||||
# no-ewmh-fullscreen = false
|
||||
|
||||
# Dimming bright windows so their brightness doesn't exceed this set value.
|
||||
# Brightness of a window is estimated by averaging all pixels in the window,
|
||||
# so this could comes with a performance hit.
|
||||
# Setting this to 1.0 disables this behaviour. Requires --use-damage to be disabled. (default: 1.0)
|
||||
#
|
||||
# max-brightness = 1.0
|
||||
|
||||
# Make transparent windows clip other windows like non-transparent windows do,
|
||||
# instead of blending on top of them.
|
||||
#
|
||||
# transparent-clipping = false
|
||||
|
||||
# Specify a list of conditions of windows that should never have transparent
|
||||
# clipping applied. Useful for screenshot tools, where you need to be able to
|
||||
# see through transparent parts of the window.
|
||||
#
|
||||
# transparent-clipping-exclude = []
|
||||
|
||||
# Set the log level. Possible values are:
|
||||
# "trace", "debug", "info", "warn", "error"
|
||||
# in increasing level of importance. Case doesn't matter.
|
||||
# If using the "TRACE" log level, it's better to log into a file
|
||||
# using *--log-file*, since it can generate a huge stream of logs.
|
||||
#
|
||||
# log-level = "debug"
|
||||
log-level = "warn";
|
||||
|
||||
# Set the log file.
|
||||
# If *--log-file* is never specified, logs will be written to stderr.
|
||||
# Otherwise, logs will to written to the given file, though some of the early
|
||||
# logs might still be written to the stderr.
|
||||
# When setting this option from the config file, it is recommended to use an absolute path.
|
||||
#
|
||||
# log-file = "/path/to/your/log/file"
|
||||
|
||||
# Show all X errors (for debugging)
|
||||
# show-all-xerrors = false
|
||||
|
||||
# Write process ID to a file.
|
||||
# write-pid-path = "/path/to/your/log/file"
|
||||
|
||||
# Window type settings
|
||||
#
|
||||
# 'WINDOW_TYPE' is one of the 15 window types defined in EWMH standard:
|
||||
# "unknown", "desktop", "dock", "toolbar", "menu", "utility",
|
||||
# "splash", "dialog", "normal", "dropdown_menu", "popup_menu",
|
||||
# "tooltip", "notification", "combo", and "dnd".
|
||||
#
|
||||
# Following per window-type options are available: ::
|
||||
#
|
||||
# fade, shadow:::
|
||||
# Controls window-type-specific shadow and fade settings.
|
||||
#
|
||||
# opacity:::
|
||||
# Controls default opacity of the window type.
|
||||
#
|
||||
# focus:::
|
||||
# Controls whether the window of this type is to be always considered focused.
|
||||
# (By default, all window types except "normal" and "dialog" has this on.)
|
||||
#
|
||||
# full-shadow:::
|
||||
# Controls whether shadow is drawn under the parts of the window that you
|
||||
# normally won't be able to see. Useful when the window has parts of it
|
||||
# transparent, and you want shadows in those areas.
|
||||
#
|
||||
# clip-shadow-above:::
|
||||
# Controls whether shadows that would have been drawn above the window should
|
||||
# be clipped. Useful for dock windows that should have no shadow painted on top.
|
||||
#
|
||||
# redir-ignore:::
|
||||
# Controls whether this type of windows should cause screen to become
|
||||
# redirected again after been unredirected. If you have unredir-if-possible
|
||||
# set, and doesn't want certain window to cause unnecessary screen redirection,
|
||||
# you can set this to `true`.
|
||||
#
|
||||
wintypes:
|
||||
{
|
||||
tooltip = { fade = true; shadow = true; opacity = 0.75; focus = true; full-shadow = false; };
|
||||
dock = { shadow = false; clip-shadow-above = true; }
|
||||
dnd = { shadow = false; }
|
||||
popup_menu = { opacity = 0.8; }
|
||||
dropdown_menu = { opacity = 0.8; }
|
||||
};
|
||||
mark-wmwin-focused = true;
|
||||
mark-ovredir-focused = true;
|
||||
use-ewmh-active-win = true;
|
||||
detect-client-leader = true;
|
||||
|
||||
@@ -1,11 +0,0 @@
|
||||
[Install]
|
||||
WantedBy=plasma-workspace.target
|
||||
|
||||
[Unit]
|
||||
Description=Plasma Custom Window Manager
|
||||
Before=plasma-workspace.target
|
||||
|
||||
[Service]
|
||||
ExecStart=/usr/bin/i3
|
||||
Slice=session.slice
|
||||
Restart=on-failure
|
||||
+96
-3
@@ -19,6 +19,19 @@
|
||||
|
||||
# TODO: Put installer script in path
|
||||
#
|
||||
# TODO: Setup fingerprint reader
|
||||
# Copy /etc/pam.d/ configs
|
||||
# auth sufficient pam_fprintd.so
|
||||
# /etc/pam.d/[kde, kde-fingerprint, login, sddm, sudo, i3lock, etc?]
|
||||
#
|
||||
# TODO: Setup touchpad gestures
|
||||
# yay -S libinput-gestures
|
||||
# sudo gpasswd -a "$USER" input
|
||||
# libinput-gestures-setup autostart
|
||||
# Need to logout here or otherwise reload groups
|
||||
# libinput-gestures-setup start
|
||||
# Config in .config/libinput-gestures.conf
|
||||
|
||||
# TODO: Install gruvbox themes
|
||||
# cd dotfiles && git submodule update --init
|
||||
# mkdir ~/dotfiles/config/themes ~/dotfiles/config/icons
|
||||
@@ -72,9 +85,19 @@ gtk-3.0
|
||||
powerline
|
||||
xfce4
|
||||
picom.conf
|
||||
picom-extended.conf
|
||||
libinput-gestures.conf
|
||||
"
|
||||
bin="
|
||||
startplasma-sway-wayland
|
||||
"
|
||||
systemd_services="
|
||||
plasma-i3.service
|
||||
"
|
||||
xsessions="
|
||||
plasma-i3.desktop
|
||||
"
|
||||
wayland_sessions="
|
||||
plasma-sway.desktop
|
||||
"
|
||||
arch="
|
||||
"
|
||||
@@ -139,6 +162,16 @@ function link_dotfiles {
|
||||
fi
|
||||
fi
|
||||
done
|
||||
for file in $bin; do
|
||||
if [[ -f bin/$file && -x $file ]]; then
|
||||
if [[ -f /usr/local/bin/$file ]]; then
|
||||
echo "Skipping: $file because /usr/local/bin/$file already exists"
|
||||
else
|
||||
echo "Copying: $file ($config_dir/bin/$file -> /usr/local/bin/$file)"
|
||||
sudo cp $config_dir/bin/$file /usr/local/bin/$file
|
||||
fi
|
||||
fi
|
||||
done
|
||||
for file in $systemd_services; do
|
||||
if [[ -f systemd/user/$file || -d systemd/user/$file ]]; then
|
||||
if [[ -f ~/.config/systemd/user/$file || -d ~/.config/systemd/user/$file ]]; then
|
||||
@@ -146,6 +179,8 @@ function link_dotfiles {
|
||||
else
|
||||
echo "Linking: $file ($config_dir/systemd/user/$file -> ~/.config/systemd/user/$file)"
|
||||
ln -s $config_dir/systemd/user/$file ~/.config/systemd/user/$file
|
||||
# TODO: Probably should also enable the service
|
||||
#systemctl --user enable --now $file
|
||||
fi
|
||||
fi
|
||||
done
|
||||
@@ -282,8 +317,66 @@ function setup_system_configs() {
|
||||
if [[ $(service_enabled bluetooth.service) == 0 ]]; then
|
||||
echo
|
||||
echo "Enabling Bluetooth"
|
||||
sudo systemctl enable bluetooth.service
|
||||
sudo systemctl start bluetooth.service
|
||||
sudo systemctl enable --now bluetooth.service
|
||||
fi
|
||||
|
||||
if [[ $(program_installed syncthing) == 1 ]]; then
|
||||
echo
|
||||
echo "Enabling Syncthing"
|
||||
systemctl enable --user --now syncthing.service
|
||||
echo "Configure syncthing here:"
|
||||
echo "http://localhost:8384"
|
||||
fi
|
||||
setup_sessions
|
||||
setup_plasma_i3
|
||||
}
|
||||
|
||||
function setup_sessions() {
|
||||
echo
|
||||
echo -n "Would you like to install X11 / Wayland sessions? (y/n) "
|
||||
read response
|
||||
if [[ "$response" == 'y' ]] || [[ "$response" == 'Y' ]]; then
|
||||
# Check if xsessions directory exists
|
||||
if [[ -d /usr/share/xsessions ]]; then
|
||||
for file in $xsessions; do
|
||||
if [[ -f xsessions/$file ]]; then
|
||||
if [[ -f /usr/share/xsessions/$file ]]; then
|
||||
echo "Skipping: $file because /usr/share/xsessions/$file already exists"
|
||||
else
|
||||
echo "Copying: $file ($config_dir/xsessions/$file -> /usr/share/xsessions/$file)"
|
||||
sudo cp $config_dir/xsessions/$file /usr/share/xsessions/$file
|
||||
fi
|
||||
fi
|
||||
done
|
||||
fi
|
||||
# Check if wayland_sessions directory exists
|
||||
if [[ -d /usr/share/xsessions ]]; then
|
||||
for file in $wayland_sessions; do
|
||||
if [[ -f wayland_sessions/$file ]]; then
|
||||
if [[ -f /usr/share/wayland_sessions/$file ]]; then
|
||||
echo "Skipping: $file because /usr/share/wayland_sessions/$file already exists"
|
||||
else
|
||||
echo "Copying: $file ($config_dir/wayland_sessions/$file -> /usr/share/wayland_sessions/$file)"
|
||||
sudo cp $config_dir/wayland_sessions/$file /usr/share/wayland_sessions/$file
|
||||
fi
|
||||
fi
|
||||
done
|
||||
fi
|
||||
fi
|
||||
}
|
||||
|
||||
function setup_plasma_i3() {
|
||||
echo
|
||||
echo -n "Would you like to run plasma alongside i3? (y/n) "
|
||||
read response
|
||||
if [[ "$response" == 'y' ]] || [[ "$response" == 'Y' ]]; then
|
||||
echo "Disabling plasma systemd autostart"
|
||||
if [[ $(program_installed kwriteconfig5) == 1 ]]; then
|
||||
kwriteconfig5 --file startkderc --group General --key systemdBoot false
|
||||
fi
|
||||
if [[ $(program_installed kwriteconfig6) == 1 ]]; then
|
||||
kwriteconfig6 --file startkderc --group General --key systemdBoot false
|
||||
fi
|
||||
fi
|
||||
}
|
||||
|
||||
|
||||
@@ -6,6 +6,10 @@ cifs-utils
|
||||
neovim
|
||||
tmux
|
||||
wget
|
||||
feh
|
||||
dmenu
|
||||
rofi
|
||||
scrot
|
||||
# clipboard manager
|
||||
xclip
|
||||
# set numlock
|
||||
@@ -14,6 +18,8 @@ python-pip
|
||||
# ag - fuzzy search anywhere, `,mag` in nvim!
|
||||
the_silver_searcher
|
||||
tree
|
||||
arandr
|
||||
nodejs
|
||||
|
||||
# zsh shell instead of bash
|
||||
zsh
|
||||
@@ -23,6 +29,12 @@ zsh-syntax-highlighting
|
||||
github-cli
|
||||
gnome-keyring
|
||||
|
||||
# needed for certain hardware support
|
||||
linux-firmware
|
||||
|
||||
# media key support
|
||||
playerctl
|
||||
|
||||
# bluetooth support
|
||||
bluez
|
||||
bluez-utils
|
||||
@@ -40,6 +52,9 @@ xorg-xev
|
||||
# for sending keystrokes from i3, currently unused
|
||||
xdotool
|
||||
|
||||
# syncing files, requires configuration
|
||||
syncthing
|
||||
|
||||
# flatpak support
|
||||
flatpak
|
||||
|
||||
|
||||
@@ -8,6 +8,7 @@ rofi-greenclip
|
||||
tmuxinator
|
||||
|
||||
# fonts with powerline glyphs
|
||||
# TODO: This fails on install because of conflict with ttf-hack
|
||||
powerline-fonts-git
|
||||
|
||||
# transparency
|
||||
|
||||
@@ -0,0 +1,7 @@
|
||||
[Desktop Entry]
|
||||
Exec=/usr/lib/plasma-dbus/run-session-if-needed /usr/local/bin/startplasma-sway-wayland
|
||||
TryExec=/usr/local/bin/startplasma-sway-wayland
|
||||
Name=Plasma with Sway (Wayland)
|
||||
Comment=Plasma with Sway (Wayland)
|
||||
DesktopNames=KDE
|
||||
X-KDE-PluginInfo-Version=6.0.1
|
||||
@@ -0,0 +1,6 @@
|
||||
[Desktop Entry]
|
||||
Type=XSession
|
||||
Exec=env KDEWM=/usr/bin/i3 /usr/bin/startplasma-x11
|
||||
DesktopNames=KDE
|
||||
Name=Plasma with i3
|
||||
Comment=Plasma with i3
|
||||
Reference in New Issue
Block a user