add dk and polybar
This commit is contained in:
179
dk/.config/dk/dkrc
Executable file
179
dk/.config/dk/dkrc
Executable file
@@ -0,0 +1,179 @@
|
||||
#!/bin/sh
|
||||
|
||||
# example dkrc to provide a close-to-default setup and
|
||||
# show some basic command usage with error reporting
|
||||
|
||||
# determine where to place the log file
|
||||
logfile="$HOME/.dkrc.log"
|
||||
[ -d "$HOME/.local/share/xorg" ] && logfile="$HOME/.local/share/xorg/dkrc.log"
|
||||
: > "$logfile"
|
||||
|
||||
# load sxhkd for keybinds
|
||||
pgrep sxhkd || sxhkd -c "$HOME/.config/dk/sxhkdrc" &
|
||||
|
||||
# spawn a scratchpad terminal if not already (see sxhkdrc and rules for binds/setup)
|
||||
# pgrep -f "st -c scratchpad" || st -c scratchpad &
|
||||
|
||||
# adjust border widths based on the DPI of the monitor
|
||||
px=$(xrandr | grep ' connected' | tail -n1 | grep -o '[0-9]\+x[0-9]\+' | cut -d'x' -f2)
|
||||
mm=$(xrandr | grep ' connected' | tail -n1 | grep -o '[0-9]\+mm' | tail -n1 | sed 's/mm//')
|
||||
dpi=$(( (px / mm) * 25 ))
|
||||
|
||||
if [ $dpi -ge 140 ]; then
|
||||
border_width=5
|
||||
border_outer_width=3
|
||||
elif [ $dpi -ge 120 ]; then
|
||||
border_width=4
|
||||
border_outer_width=2
|
||||
else
|
||||
border_width=2
|
||||
border_outer_width=1
|
||||
fi
|
||||
|
||||
{ # compound command to redirect all output
|
||||
|
||||
# workspace settings
|
||||
# ------------------------
|
||||
|
||||
# initialize 6 workspaces (1-6) (default: 1/monitor)
|
||||
dkcmd set numws=10
|
||||
|
||||
# default workspace '_' values used when allocating new workspaces
|
||||
# can be applied to all existing workspaces when passed 'apply' after ws=_
|
||||
dkcmd set ws=_ apply layout=tile master=1 stack=3 gap=0 msplit=0.5 ssplit=0.5
|
||||
|
||||
# use grid layout, padding, and gaps on last workspace
|
||||
#dkcmd set ws=6 layout=grid pad left=200 right=200 top=100 bottom=100 gap=50
|
||||
|
||||
# change workspace names (default: number == name -> 1:1, 2:2, 3:3....)
|
||||
# dkcmd set \
|
||||
# ws=1 name="edit" \
|
||||
# ws=2 name="web" \
|
||||
# ws=3 name="😀" \
|
||||
# ws=4 name="😠" \
|
||||
# ws=5 name="5" \
|
||||
# ws=6 name="6" \
|
||||
|
||||
# enable static workspaces assigned to monitors (relevant for multiple monitors)
|
||||
#echo $(polybar -m | sed 's/+/:/g' | awk -F: '{print $3, $1}' | sort -n | cut -d' ' -f2) | read mon1 mon2 mon3
|
||||
monitors=$(polybar -m | sed 's/+/:/g' | awk -F: '{print $3, $1}' | sort -n | cut -d' ' -f2)
|
||||
mon1=$(echo $monitors | cut -d' ' -f1)
|
||||
mon2=$(echo $monitors | cut -d' ' -f2)
|
||||
mon3=$(echo $monitors | cut -d' ' -f3)
|
||||
if [ -z "$mon2" ]; then
|
||||
mon2="$mon1"
|
||||
mon3="$mon1"
|
||||
elif [ -z "$mon3" ]; then
|
||||
mon3="$mon1"
|
||||
fi
|
||||
dkcmd set static_ws=true \
|
||||
ws=1 mon=$mon2 \
|
||||
ws=2 mon=$mon2 \
|
||||
ws=3 mon=$mon2 \
|
||||
ws=4 mon=$mon2 \
|
||||
ws=5 mon=$mon2 \
|
||||
ws=6 mon=$mon2 \
|
||||
ws=7 mon=$mon2 \
|
||||
ws=8 mon=$mon2 \
|
||||
ws=9 mon=$mon1 \
|
||||
ws=10 mon=$mon3
|
||||
|
||||
# global settings
|
||||
# ---------------------
|
||||
|
||||
# focus windows when receiving activation and enable focus-follows-mouse
|
||||
dkcmd set focus_open=true focus_urgent=true focus_mouse=true
|
||||
|
||||
# place clients at the tail and ignore size hints on tiled windows
|
||||
dkcmd set tile_tohead=0 tile_hints=false
|
||||
|
||||
# minimum width/height for resizing, and minimum allowed on-screen when moving
|
||||
dkcmd set win_minwh=50 win_minxy=10
|
||||
|
||||
# disable gaps and borders in single window layouts
|
||||
dkcmd set smart_gap=true smart_border=true
|
||||
|
||||
# define mouse mod and move/resize buttons
|
||||
dkcmd set mouse mod=mod4 move=button1 resize=button3
|
||||
|
||||
# obey motif border hints on windows that draw their own (steam, easyeffects, etc.)
|
||||
dkcmd set obey_motif=true
|
||||
|
||||
|
||||
# borders
|
||||
# ---------
|
||||
|
||||
# traditional
|
||||
# set border width and colour for each window state
|
||||
# dkcmd set border width=$border_width colour focus='#6699cc' unfocus='#000000' urgent='#ee5555'
|
||||
|
||||
# alternative
|
||||
# enable split borders and colours, width is overall width, outer_width consumes some of width.
|
||||
# outer_width must be less than width, outer_width of 0 will be single borders
|
||||
dkcmd set border width=$border_width outer_width=$border_outer_width \
|
||||
colour \
|
||||
focus='#6699cc' \
|
||||
unfocus='#444444' \
|
||||
urgent='#ee5555' \
|
||||
outer_focus='#222222' \
|
||||
outer_unfocus='#222222' \
|
||||
outer_urgent='#222222'
|
||||
|
||||
|
||||
# window rules
|
||||
# --------------
|
||||
|
||||
# rule class, instance, and title regex are *always* case INSENSITIVE
|
||||
|
||||
# open window(s) on a specific workspace (assigned monitor)
|
||||
# dkcmd rule class="^gimp$" ws=2
|
||||
|
||||
# open window(s) on a monitor by number or name (active workspace on monitor)
|
||||
# dkcmd rule class="^chromium$" mon="HDMI-A-0"
|
||||
|
||||
# open window(s) and use a callback function (user defined in config.h)
|
||||
# we also ignore_cfg=true to stop the window from being resized on it's own from events
|
||||
# eg. mpv --x11-name=albumart /path/to/media
|
||||
# dkcmd rule class="^mpv$" instance="^albumart$" float=true ignore_cfg=true callback=albumart bw=0
|
||||
|
||||
# open window(s) in a floating state
|
||||
dkcmd rule class="^(pavucontrol|transmission-gtk|steam|lxappearance)$" float=true
|
||||
|
||||
# open window(s) with a specific geometry and coordinates (floating only!)
|
||||
# dkcmd rule class="^google-chrome$" title="^open files$" float=true w=1280 h=720
|
||||
|
||||
# open window(s) with ignore_msg=true to avoid focus being grabbed and changing workspace
|
||||
# dkcmd rule class="^TelegramDesktop$" ignore_msg=true
|
||||
|
||||
# define some terminals and allow them to be absorbed by spawned windows
|
||||
dkcmd rule class="^(st|st-256color|urxvt|kitty|alacritty|xterm|xterm-256color)$" terminal=true
|
||||
|
||||
# set a window to never absorb other windows, like the xev event tester
|
||||
dkcmd rule title="^Event Tester$" no_absorb=true
|
||||
|
||||
# send a window to the scratchpad
|
||||
dkcmd rule class="^scratchpad$" scratch=true
|
||||
|
||||
# focus window and workspace on opening
|
||||
# dkcmd rule class="^firefox$" ws=1 focus=true
|
||||
|
||||
# update or remove an existing rule with the same match patterns
|
||||
# dkcmd rule class="^firefox$" mon="HDMI-A-0"
|
||||
# dkcmd rule remove class="^firefox$"
|
||||
|
||||
# apply current rule set to all existing windows (used mainly for WM restart)
|
||||
dkcmd rule apply '*'
|
||||
|
||||
# delete all rules
|
||||
# dkcmd rule remove '*'
|
||||
|
||||
} >> "$logfile" 2>&1 # append responses
|
||||
|
||||
# inform of any errors in a notification
|
||||
if grep -q 'error:' "$logfile"; then
|
||||
hash notify-send && notify-send -t 0 -u critical "dkrc has errors" \
|
||||
"$(awk '/error:/ {sub(/^error: /, ""); gsub(/</, "\<"); print}' "$logfile")"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
exit 0
|
||||
110
dk/.config/dk/sxhkdrc
Normal file
110
dk/.config/dk/sxhkdrc
Normal file
@@ -0,0 +1,110 @@
|
||||
# sxhkdrc for use with dk
|
||||
#########################################################
|
||||
|
||||
# launcher
|
||||
mod4 + p
|
||||
dmenu_run -fn 'Fira Code Nerd Font Ret:size=13'
|
||||
|
||||
# terminal
|
||||
mod4 + shift + Return
|
||||
alacritty
|
||||
|
||||
# screenshot and selection capture
|
||||
{_,mod4 + }@Print
|
||||
scrot {_,-s}
|
||||
|
||||
# dedicated volume keys
|
||||
{XF86AudioRaiseVolume,XF86AudioLowerVolume}
|
||||
pamixer {-i,-d} 2
|
||||
|
||||
# dedicated backlight keys
|
||||
{XF86MonBrightnessUp,XF86MonBrightnessDown}
|
||||
xbacklight {+10,-10}
|
||||
|
||||
# alt volume keys
|
||||
mod4 + {Insert,Delete}
|
||||
pamixer {-i,-d} 2
|
||||
|
||||
# reload sxhkd
|
||||
mod4 + shift + x
|
||||
pkill -USR1 -x sxhkd
|
||||
|
||||
|
||||
|
||||
# quit dk
|
||||
mod4 + shift + q
|
||||
dkcmd exit
|
||||
|
||||
# reload dkrc
|
||||
mod4 + shift + r
|
||||
$HOME/.config/dk/dkrc
|
||||
|
||||
# restart dk
|
||||
mod4 + ctrl + shift + r
|
||||
dkcmd restart
|
||||
|
||||
# focus next or previous window
|
||||
mod4 + {j,k}
|
||||
dkcmd win focus {next,prev}
|
||||
|
||||
# close window, swap tiled window in/out of master, cycle tiled windows in place
|
||||
mod4 + {q,space,Tab}
|
||||
dkcmd win {kill,swap,cycle}
|
||||
|
||||
# toggle fullscreen and fake fullscreen (enable manipulating fullscreen window)
|
||||
{_,mod4 + }F11
|
||||
dkcmd win {full,fakefull}
|
||||
|
||||
# toggle floating, sticky, or scratchpad
|
||||
mod4 + shift + {space,s,u}
|
||||
dkcmd win {float,stick,scratch}
|
||||
# alternatively to scratch a window by class "scratchpad"
|
||||
#dkcmd win {float,stick,scratchpad scratch}
|
||||
|
||||
# move window, signed (+/-) for relative changes, for tiled windows
|
||||
# y coord changes will move the window up/down the stack
|
||||
mod4 + shift + {h,j,k,l}
|
||||
dkcmd win resize {x=-20,y=+20,y=-20,x=+20}
|
||||
|
||||
# resize window, signed (+/-) for relative changes
|
||||
mod4 + ctrl + {h,j,k,l}
|
||||
dkcmd win resize {w=-20,h=+20,h=-20,w=+20}
|
||||
|
||||
# view, send, or follow to a workspace (by number)
|
||||
mod4 + {_,shift + ,ctrl + }{1-9,0}
|
||||
dkcmd ws {view,send,follow} {1-9,10}
|
||||
|
||||
# view, send, or follow to the next, previous, last active,
|
||||
# next non-empty, or prev non-empty workspace
|
||||
mod4 + {_,shift + ,ctrl + }{bracketleft,bracketright,BackSpace,Left,Right}
|
||||
dkcmd ws {view,send,follow} {prev,next,last,prevne,nextne}
|
||||
|
||||
# view, send, or follow to the next, previous, or last active monitor
|
||||
mod4 + {_,shift + ,ctrl + }{comma,period,backslash}
|
||||
dkcmd mon {view,send,follow} {prev,next,last}
|
||||
|
||||
# change active workspace layout or cycle between them
|
||||
mod4 + {t,r,m,g,s,w,f,u,c}
|
||||
dkcmd set layout {tile,rtile,mono,grid,spiral,dwindle,none,tstack,cycle}
|
||||
|
||||
# change number of windows in master or first stack
|
||||
mod4 + {_,shift + }{i,d}
|
||||
dkcmd set {master,stack} {+1,-1}
|
||||
|
||||
# change gap width
|
||||
mod4 + {equal,minus}
|
||||
dkcmd set gap {+5,-5}
|
||||
|
||||
# change border widths
|
||||
mod4 + ctrl + {_,shift + }{equal,minus}
|
||||
dkcmd set border {width,outer_width} {+1,-1}
|
||||
|
||||
# lock screen
|
||||
mod4 + ctrl + shift + l
|
||||
slock
|
||||
|
||||
# suspend
|
||||
mod4 + ctrl + shift + s
|
||||
systemctl suspend
|
||||
|
||||
# vim:ft=sxhkdrc
|
||||
187
polybar/.config/polybar/config.ini
Normal file
187
polybar/.config/polybar/config.ini
Normal file
@@ -0,0 +1,187 @@
|
||||
;==========================================================
|
||||
;
|
||||
;
|
||||
; ██████╗ ██████╗ ██╗ ██╗ ██╗██████╗ █████╗ ██████╗
|
||||
; ██╔══██╗██╔═══██╗██║ ╚██╗ ██╔╝██╔══██╗██╔══██╗██╔══██╗
|
||||
; ██████╔╝██║ ██║██║ ╚████╔╝ ██████╔╝███████║██████╔╝
|
||||
; ██╔═══╝ ██║ ██║██║ ╚██╔╝ ██╔══██╗██╔══██║██╔══██╗
|
||||
; ██║ ╚██████╔╝███████╗██║ ██████╔╝██║ ██║██║ ██║
|
||||
; ╚═╝ ╚═════╝ ╚══════╝╚═╝ ╚═════╝ ╚═╝ ╚═╝╚═╝ ╚═╝
|
||||
;
|
||||
;
|
||||
; To learn more about how to configure Polybar
|
||||
; go to https://github.com/polybar/polybar
|
||||
;
|
||||
; The README contains a lot of information
|
||||
;
|
||||
;==========================================================
|
||||
|
||||
[colors]
|
||||
background = #282A2E
|
||||
background-alt = #373B41
|
||||
foreground = #C5C8C6
|
||||
primary = #F0C674
|
||||
secondary = #8ABEB7
|
||||
alert = #A54242
|
||||
disabled = #707880
|
||||
|
||||
[bar/bar]
|
||||
monitor = ${env:MONITOR:}
|
||||
width = 100%
|
||||
height = 24pt
|
||||
radius = 6
|
||||
|
||||
; dpi = 96
|
||||
|
||||
background = ${colors.background}
|
||||
foreground = ${colors.foreground}
|
||||
|
||||
line-size = 3pt
|
||||
|
||||
border-size = 4pt
|
||||
border-color = #00000000
|
||||
|
||||
padding-left = 0
|
||||
padding-right = 1
|
||||
|
||||
module-margin = 1
|
||||
|
||||
separator = |
|
||||
separator-foreground = ${colors.disabled}
|
||||
|
||||
font-0 = Fira Code Nerd Font:size=18;4
|
||||
|
||||
modules-left = xworkspaces xwindow
|
||||
modules-right = filesystem pulseaudio xkeyboard memory cpu wlan eth date
|
||||
|
||||
cursor-click = pointer
|
||||
cursor-scroll = ns-resize
|
||||
|
||||
enable-ipc = true
|
||||
|
||||
; wm-restack = generic
|
||||
; wm-restack = bspwm
|
||||
; wm-restack = i3
|
||||
|
||||
; override-redirect = true
|
||||
|
||||
; This module is not active by default (to enable it, add it to one of the
|
||||
; modules-* list above).
|
||||
; Please note that only a single tray can exist at any time. If you launch
|
||||
; multiple bars with this module, only a single one will show it, the others
|
||||
; will produce a warning. Which bar gets the module is timing dependent and can
|
||||
; be quite random.
|
||||
; For more information, see the documentation page for this module:
|
||||
; https://polybar.readthedocs.io/en/stable/user/modules/tray.html
|
||||
[module/systray]
|
||||
type = internal/tray
|
||||
|
||||
format-margin = 8pt
|
||||
tray-spacing = 16pt
|
||||
|
||||
[module/xworkspaces]
|
||||
type = internal/xworkspaces
|
||||
|
||||
group-by-monitor = false
|
||||
|
||||
label-active = %name%
|
||||
label-active-background = ${colors.background-alt}
|
||||
label-active-underline= ${colors.primary}
|
||||
label-active-padding = 1
|
||||
|
||||
label-occupied = %name%
|
||||
label-occupied-padding = 1
|
||||
|
||||
label-urgent = %name%
|
||||
label-urgent-background = ${colors.alert}
|
||||
label-urgent-padding = 1
|
||||
|
||||
label-empty = %name%
|
||||
label-empty-foreground = ${colors.disabled}
|
||||
label-empty-padding = 1
|
||||
|
||||
[module/xwindow]
|
||||
type = internal/xwindow
|
||||
label = %title:0:60:...%
|
||||
|
||||
[module/filesystem]
|
||||
type = internal/fs
|
||||
interval = 25
|
||||
|
||||
mount-0 = /
|
||||
|
||||
label-mounted = %{F#F0C674}%mountpoint%%{F-} %percentage_used%%
|
||||
|
||||
label-unmounted = %mountpoint% not mounted
|
||||
label-unmounted-foreground = ${colors.disabled}
|
||||
|
||||
[module/pulseaudio]
|
||||
type = internal/pulseaudio
|
||||
|
||||
format-volume-prefix = "VOL "
|
||||
format-volume-prefix-foreground = ${colors.primary}
|
||||
format-volume = <label-volume>
|
||||
|
||||
label-volume = %percentage%%
|
||||
|
||||
label-muted = muted
|
||||
label-muted-foreground = ${colors.disabled}
|
||||
|
||||
[module/xkeyboard]
|
||||
type = internal/xkeyboard
|
||||
blacklist-0 = num lock
|
||||
|
||||
label-layout = %layout%
|
||||
label-layout-foreground = ${colors.primary}
|
||||
|
||||
label-indicator-padding = 2
|
||||
label-indicator-margin = 1
|
||||
label-indicator-foreground = ${colors.background}
|
||||
label-indicator-background = ${colors.secondary}
|
||||
|
||||
[module/memory]
|
||||
type = internal/memory
|
||||
interval = 2
|
||||
format-prefix = "RAM "
|
||||
format-prefix-foreground = ${colors.primary}
|
||||
label = %percentage_used:2%%
|
||||
|
||||
[module/cpu]
|
||||
type = internal/cpu
|
||||
interval = 2
|
||||
format-prefix = "CPU "
|
||||
format-prefix-foreground = ${colors.primary}
|
||||
label = %percentage:2%%
|
||||
|
||||
[network-base]
|
||||
type = internal/network
|
||||
interval = 5
|
||||
format-connected = <label-connected>
|
||||
format-disconnected = <label-disconnected>
|
||||
label-disconnected = %{F#F0C674}%ifname%%{F#707880} disconnected
|
||||
|
||||
[module/wlan]
|
||||
inherit = network-base
|
||||
interface-type = wireless
|
||||
label-connected = %{F#F0C674}%ifname%%{F-} %essid% %local_ip%
|
||||
|
||||
[module/eth]
|
||||
inherit = network-base
|
||||
interface-type = wired
|
||||
label-connected = %{F#F0C674}%ifname%%{F-} %local_ip%
|
||||
|
||||
[module/date]
|
||||
type = internal/date
|
||||
interval = 1
|
||||
|
||||
date = %H:%M
|
||||
date-alt = %Y-%m-%d %H:%M:%S
|
||||
|
||||
label = %date%
|
||||
label-foreground = ${colors.primary}
|
||||
|
||||
[settings]
|
||||
screenchange-reload = true
|
||||
pseudo-transparency = true
|
||||
|
||||
; vim:ft=dosini
|
||||
@@ -6,8 +6,8 @@ fi
|
||||
|
||||
xset b off
|
||||
xrandr --auto
|
||||
xrandr --output HDMI1 --right-of DP1
|
||||
xrandr --output DP-0 --left-of DP-2
|
||||
xrandr --output DP-0 --left-of DP-2 --primary
|
||||
xrandr --output HDMI-0 --left-of DP-0
|
||||
xrdb -merge ~/.Xresources
|
||||
setxkbmap pl -option ctrl:nocaps
|
||||
|
||||
@@ -30,8 +30,12 @@ xsetroot -cursor_name left_ptr
|
||||
|
||||
picom -b -I 1 -O 1 -i 1 -e 1 --no-fading-openclose || compton -b --no-fading-openclose
|
||||
|
||||
if which awesome > /dev/null; then
|
||||
exec awesome
|
||||
if which dk > /dev/null; then
|
||||
for m in $(polybar --list-monitors | cut -d: -f1); do
|
||||
MONITOR=$m polybar --reload bar &
|
||||
done
|
||||
fi
|
||||
exec dk
|
||||
fi
|
||||
|
||||
if which dwm > /dev/null; then
|
||||
@@ -39,6 +43,10 @@ if which dwm > /dev/null; then
|
||||
exec dwm
|
||||
fi
|
||||
|
||||
if which awesome > /dev/null; then
|
||||
exec awesome
|
||||
fi
|
||||
|
||||
if which xmonad > /dev/null && test -f ~/.config/xmonad/xmonad.hs; then
|
||||
exec xmonad
|
||||
fi
|
||||
|
||||
Reference in New Issue
Block a user