x11 and portage configs

This commit is contained in:
inigoortega 2019-09-01 17:22:54 +02:00
parent 88fbd8a47e
commit 4aa4c65933
99 changed files with 4309 additions and 1 deletions

2
.zshrc
View File

@ -93,7 +93,7 @@ export AUDIO_FORMATS="mp3,ogg,vorbis,opus,aac,wav,3gp,mpg,flac"
export VIDEOPLAYER="mpv"
export AUDIOPLAYER="cmus-remote"
export TERMINAL="st"
export BROWSER="palemoon-bin"
export BROWSER="firefox-bin"
export MUSIC="$HOME/Music/music"
export PASSWORD_STORE_DIR="$HOME/.password-store"
export ANDROID_MOUNTPOINT="$HOME/Android"

107
etc-configs/X11/Sessions/Xsession Executable file
View File

@ -0,0 +1,107 @@
#!/bin/sh
# $XConsortium: Xsession /main/10 1995/12/18 18:21:28 gildea $
case $# in
1)
case $1 in
failsafe)
exec xterm -geometry 80x24-0-0
;;
esac
esac
# redirect errors to a file in user's home directory if we can
for errfile in "$HOME/.xsession-errors" "${TMPDIR-/tmp}/xses-$USER" "/tmp/xses-$USER"
do
if ( cp /dev/null "$errfile" 2> /dev/null )
then
chmod 600 "$errfile"
exec > "$errfile" 2>&1
break
fi
done
# clean up after xbanner
if which freetemp 2> /dev/null ; then
freetemp
fi
startup=$HOME/.xsession
userresources=$HOME/.Xresources
usermodmap=$HOME/.Xmodmap
userxkbmap=$HOME/.Xkbmap
sysresources=/etc/X11/Xresources
sysmodmap=/etc/X11/Xmodmap
sysxkbmap=/etc/X11/Xkbmap
rh6sysresources=/etc/X11/xinit/Xresources
rh6sysmodmap=/etc/X11/xinit/Xmodmap
# merge in defaults
if [ -f "$rh6sysresources" ]; then
xrdb -merge "$rh6sysresources"
fi
if [ -f "$sysresources" ]; then
xrdb -merge "$sysresources"
fi
if [ -f "$userresources" ]; then
xrdb -merge "$userresources"
fi
# merge in keymaps
if [ -f "$sysxkbmap" ]; then
setxkbmap `cat "$sysxkbmap"`
XKB_IN_USE=yes
fi
if [ -f "$userxkbmap" ]; then
setxkbmap `cat "$userxkbmap"`
XKB_IN_USE=yes
fi
#
# Eeek, this seems like too much magic here
#
if [ -z "$XKB_IN_USE" -a ! -L /etc/X11/X ]; then
if grep '^exec.*/Xsun' /etc/X11/X > /dev/null 2>&1 && [ -f /etc/X11/XF86Config ]; then
xkbsymbols=`sed -n -e 's/^[ ]*XkbSymbols[ ]*"\(.*\)".*$/\1/p' /etc/X11/XF86Config`
if [ -n "$xkbsymbols" ]; then
setxkbmap -symbols "$xkbsymbols"
XKB_IN_USE=yes
fi
fi
fi
# xkb and xmodmap don't play nice together
if [ -z "$XKB_IN_USE" ]; then
if [ -f "$rh6sysmodmap" ]; then
xmodmap "$rh6sysmodmap"
fi
if [ -f "$sysmodmap" ]; then
xmodmap "$sysmodmap"
fi
if [ -f "$usermodmap" ]; then
xmodmap "$usermodmap"
fi
fi
unset XKB_IN_USE
if [ -x "$startup" ]; then
exec "$startup"
elif [ -x "$HOME/.Xclients" ]; then
exec "$HOME/.Xclients"
elif [ -x /etc/X11/xinit/Xclients ]; then
exec /etc/X11/xinit/Xclients
elif [ -x /etc/X11/Xclients ]; then
exec /etc/X11/Xclients
else
exec xsm
fi

11
etc-configs/X11/Sessions/dwm Executable file
View File

@ -0,0 +1,11 @@
#!/bin/sh
DIR=${HOME}/.dwm
if [ -f "${DIR}"/dwmrc ]; then
/bin/sh "${DIR}"/dwmrc &
else
while true; do
xsetroot -name "`date`"
sleep 1
done &
fi
exec /usr/bin/dwm

51
etc-configs/X11/chooser.sh Executable file
View File

@ -0,0 +1,51 @@
#!/bin/sh
# Copyright 1999-2004 Gentoo Foundation
# Distributed under the terms of the GNU General Public License, v2
# Author: Martin Schlemmer <azarah@gentoo.org>
# Find a match for $XSESSION in /etc/X11/Sessions
GENTOO_SESSION=""
for x in /etc/X11/Sessions/* ; do
if [ "`echo ${x##*/} | awk '{ print toupper($1) }'`" \
= "`echo ${XSESSION} | awk '{ print toupper($1) }'`" ]; then
GENTOO_SESSION=${x}
break
fi
done
GENTOO_EXEC=""
if [ -n "${XSESSION}" ]; then
if [ -f /etc/X11/Sessions/${XSESSION} ]; then
if [ -x /etc/X11/Sessions/${XSESSION} ]; then
GENTOO_EXEC="/etc/X11/Sessions/${XSESSION}"
else
GENTOO_EXEC="/bin/sh /etc/X11/Sessions/${XSESSION}"
fi
elif [ -n "${GENTOO_SESSION}" ]; then
if [ -x "${GENTOO_SESSION}" ]; then
GENTOO_EXEC="${GENTOO_SESSION}"
else
GENTOO_EXEC="/bin/sh ${GENTOO_SESSION}"
fi
else
x=""
y=""
for x in "${XSESSION}" \
"`echo ${XSESSION} | awk '{ print toupper($1) }'`" \
"`echo ${XSESSION} | awk '{ print tolower($1) }'`"
do
# Fall through ...
if [ -x "`which ${x} 2>/dev/null`" ]; then
GENTOO_EXEC="`which ${x} 2>/dev/null`"
break
fi
done
fi
fi
echo "${GENTOO_EXEC}"
# vim:ts=4

31
etc-configs/X11/startDM.sh Executable file
View File

@ -0,0 +1,31 @@
#!/bin/sh
# Copyright 1999-2019 Gentoo Authors
# Distributed under the terms of the GNU General Public License, v2
# We need to source /etc/profile for stuff like $LANG to work
# bug #10190.
. /etc/profile
. /lib/rc/sh/functions.sh
# Bail out early if on a non-OpenRC system:
if [ ! -d /run/openrc ]; then
eerror "$0 should only be used on OpenRC systems"
fi
# baselayout-1 compat
if ! type get_options >/dev/null 2>/dev/null ; then
[ -r "${svclib}"/sh/rc-services.sh ] && . "${svclib}"/sh/rc-services.sh
fi
export RC_SVCNAME=xdm
EXEC="$(get_options service)"
NAME="$(get_options name)"
PIDFILE="$(get_options pidfile)"
START_STOP_ARGS="$(get_options start_stop_args)"
start-stop-daemon --start --exec ${EXEC} \
${NAME:+--name} ${NAME} ${PIDFILE:+--pidfile} ${PIDFILE} ${START_STOP_ARGS} || \
eerror "ERROR: could not start the Display Manager"
# vim:ts=4

View File

@ -0,0 +1,65 @@
#!/bin/sh
userresources=$HOME/.Xresources
usermodmap=$HOME/.Xmodmap
sysresources=/etc/X11/xinit/Xresources
sysmodmap=/etc/X11/xinit/Xmodmap
# merge in defaults and keymaps
if [ -f $sysresources ]; then
xrdb -merge $sysresources
fi
if [ -f $sysmodmap ]; then
xmodmap $sysmodmap
fi
if [ -f "$userresources" ]; then
xrdb -merge "$userresources"
fi
if [ -f "$usermodmap" ]; then
xmodmap "$usermodmap"
fi
# start some nice programs
if [ -n "`/etc/X11/chooser.sh`" ]; then
command="`/etc/X11/chooser.sh`"
else
failsafe="yes"
fi
if [ -d /etc/X11/xinit/xinitrc.d ] ; then
for f in /etc/X11/xinit/xinitrc.d/?* ; do
[ -x "$f" ] && . "$f"
done
unset f
fi
if [ -n "$failsafe" ]; then
twm &
xclock -geometry 50x50-1+1 &
xterm -geometry 80x50+494+51 &
xterm -geometry 80x20+494-0 &
exec xterm -geometry 80x66+0+0 -name login
else
exec $command
fi

View File

@ -0,0 +1,7 @@
#!/bin/sh
# Allow all local connections from the current UID
# This fixes issues with hostname changes (usually by dhcp clients)
# see bug 287498 for more info
[ -x /usr/bin/xhost ] && [ -x /usr/bin/id ] &&
xhost +si:localuser:`id -un` > /dev/null 2>&1

View File

@ -0,0 +1,16 @@
#!/bin/sh
# to be sourced
case "$SESSION" in
GNOME)
# Done by gnome-settings-daemon
;;
*)
if [ -z "$GTK_MODULES" ] ; then
GTK_MODULES="canberra-gtk-module"
else
GTK_MODULES="$GTK_MODULES:canberra-gtk-module"
fi
export GTK_MODULES
;;
esac

View File

@ -0,0 +1,13 @@
#!/bin/bash
# launches a session dbus instance
dbuslaunch="`which dbus-launch 2>/dev/null`"
if [ -n "$dbuslaunch" ] && [ -x "$dbuslaunch" ] && [ -z "$DBUS_SESSION_BUS_ADDRESS" ]; then
if [ -n "$command" ]; then
command="$dbuslaunch --exit-with-session $command"
else
eval `$dbuslaunch --sh-syntax --exit-with-session`
fi
fi

View File

@ -0,0 +1,32 @@
# -*- sh -*-
# Xsession.d script for ck-launch-session.
#
#
# This file is sourced by Xsession(5), not executed.
CK_LAUNCH_SESSION=/usr/bin/ck-launch-session
is_on_console() {
session=$(dbus-send --system --dest=org.freedesktop.ConsoleKit \
--type=method_call --print-reply --reply-timeout=2000 \
/org/freedesktop/ConsoleKit/Manager \
org.freedesktop.ConsoleKit.Manager.GetCurrentSession \
| grep path | awk '{print $3}' | sed s/\"//g)
x11_display=$(dbus-send --system --dest=org.freedesktop.ConsoleKit \
--type=method_call --print-reply --reply-timeout=2000 \
$session org.freedesktop.ConsoleKit.Session.GetX11Display \
| grep string | awk '{print $2}' | sed s/\"//g)
if [ -z "$x11_display" ] ; then
return 0
else
return 1
fi
}
# gdm already creates a CK session for us, so do not run the expensive D-Bus
# calls if we have $GDMSESSION
if [ -z "$GDMSESSION" ] && [ -x "$CK_LAUNCH_SESSION" ] && \
( [ -z "$XDG_SESSION_COOKIE" ] || is_on_console ) ; then
command="$CK_LAUNCH_SESSION $command"
fi

View File

@ -0,0 +1,6 @@
#!/bin/sh
if [ -z "$XDG_VTNR" ]; then
exec /usr/bin/X -nolisten tcp "$@"
else
exec /usr/bin/X -nolisten tcp -keeptty "$@" "vt$XDG_VTNR"
fi

View File

@ -0,0 +1,84 @@
Section "Files"
FontPath "/usr/share/fonts/misc/"
FontPath "/usr/share/fonts/TTF/"
FontPath "/usr/share/fonts/OTF"
FontPath "/usr/share/fonts/Type1/"
FontPath "/usr/share/fonts/100dpi/"
FontPath "/usr/share/fonts/75dpi/"
EndSection
Section "Module"
Load "dri"
Load "dri2"
EndSection
Section "InputDevice"
Identifier "Keyboard"
Driver "kbd"
Option "XkbRules" "xorg"
Option "XkbModel" "pc105"
Option "XkbLayout" "us,ru"
Option "XkbVariant" ",winkeys"
Option "XkbOptions" "grp:caps_toggle,grp_led:caps,terminate:ctrl_alt_bksp"
EndSection
Section "InputDevice"
Identifier "TrackPoint"
Driver "mouse"
Option "Protocol" "auto"
Option "Device" "/dev/input/mice"
Option "EmulateWheel" "on"
Option "EmulateWheelButton" "2"
Option "XAxisMapping" "6 7"
Option "YAxisMapping" "4 5"
EndSection
Section "Monitor"
Identifier "Internal LCD"
DisplaySize 338.7 211.7 # 1280x800 @ 96 DPI
Gamma 0.93 0.93 0.80
Option "DPMS" "on"
EndSection
Section "Monitor"
Identifier "External LCD"
Option "Disable" "True"
Option "DPMS" "on"
EndSection
Section "Device"
Identifier "VideoCard"
Driver "intel"
VendorName "Intel Corporation"
BoardName "4500MHD"
Option "monitor-LVDS1" "Internal LCD"
Option "monitor-HDMI2" "External LCD"
Option "AccelMethod" "UXA"
Option "SwapbuffersWait" "False"
Option "Tiling" "True"
EndSection
Section "Screen"
Identifier "Screen0"
Device "VideoCard"
Monitor "Internal LCD"
SubSectionSub "Display"
Modes "1280x800"
Virtual 3200 1200
EndSubSection
EndSection
Section "ServerLayout"
Identifier "XServerLayout"
Screen 0 "Screen0" 0 0
InputDevice "TrackPoint" "CorePointer"
InputDevice "Keyboard" "CoreKeyboard"
Option "BlankTime" "0"
Option "StandbyTime" "0"
Option "SuspendTime" "0"
Option "OffTime" "5"
EndSection
Section "DRI"
Mode 0666
EndSection

View File

@ -0,0 +1,40 @@
#
# Catch-all evdev loader for udev-based systems
# We don't simply match on any device since that also adds accelerometers
# and other devices that we don't really want to use. The list below
# matches everything but joysticks.
Section "InputClass"
Identifier "evdev pointer catchall"
MatchIsPointer "on"
MatchDevicePath "/dev/input/event*"
Driver "evdev"
EndSection
Section "InputClass"
Identifier "evdev keyboard catchall"
MatchIsKeyboard "on"
MatchDevicePath "/dev/input/event*"
Driver "evdev"
EndSection
Section "InputClass"
Identifier "evdev touchpad catchall"
MatchIsTouchpad "on"
MatchDevicePath "/dev/input/event*"
Driver "evdev"
EndSection
Section "InputClass"
Identifier "evdev tablet catchall"
MatchIsTablet "on"
MatchDevicePath "/dev/input/event*"
Driver "evdev"
EndSection
Section "InputClass"
Identifier "evdev touchscreen catchall"
MatchIsTouchscreen "on"
MatchDevicePath "/dev/input/event*"
Driver "evdev"
EndSection

View File

@ -0,0 +1,38 @@
# Collection of quirks and blacklist/whitelists for specific devices.
# Accelerometer device, posts data through ABS_X/ABS_Y, making X unusable
# http://bugs.freedesktop.org/show_bug.cgi?id=22442
Section "InputClass"
Identifier "ThinkPad HDAPS accelerometer blacklist"
MatchProduct "ThinkPad HDAPS accelerometer data"
Option "Ignore" "on"
EndSection
# https://bugzilla.redhat.com/show_bug.cgi?id=523914
# Mouse does not move in PV Xen guest
# Explicitly tell evdev to not ignore the absolute axes.
Section "InputClass"
Identifier "Xen Virtual Pointer axis blacklist"
MatchProduct "Xen Virtual Pointer"
Option "IgnoreAbsoluteAxes" "off"
Option "IgnoreRelativeAxes" "off"
EndSection
# https://bugs.freedesktop.org/show_bug.cgi?id=55867
# Bug 55867 - Doesn't know how to tag XI_TRACKBALL
Section "InputClass"
Identifier "Tag trackballs as XI_TRACKBALL"
MatchProduct "trackball"
MatchDriver "evdev"
Option "TypeName" "TRACKBALL"
EndSection
# https://bugs.freedesktop.org/show_bug.cgi?id=62831
# Bug 62831 - Mionix Naos 5000 mouse detected incorrectly
Section "InputClass"
Identifier "Tag Mionix Naos 5000 mouse XI_MOUSE"
MatchProduct "La-VIEW Technology Naos 5000 Mouse"
MatchDriver "evdev"
Option "TypeName" "MOUSE"
EndSection

View File

@ -0,0 +1,2 @@
Section "Files"
EndSection

View File

@ -0,0 +1,5 @@
Section "Module"
Load "dri"
Load "dri2"
# Load "dbe"
EndSection

View File

@ -0,0 +1,23 @@
#Section "InputClass"
Section "InputDevice"
Identifier "keyboard-all"
Driver "kbd"
Option "XkbRules" "xorg"
Option "XkbModel" "pc105"
Option "XkbLayout" "gb,es"
Option "XkbVariant" ",qwerty"
Option "XkbOptions" "grp:shift_toggle,grp_led:caps,grp_led:num,terminate:ctrl_alt_bksp"
# MatchIsKeyboard "on"
EndSection
Section "InputDevice"
Identifier "TrackPoint"
Driver "mouse"
Option "Protocol" "auto"
Option "Device" "/dev/input/mice"
Option "EmulateWheel" "on"
Option "EmulateWheelButton" "2"
Option "XAxisMapping" "6 7"
Option "YAxisMapping" "4 5"
EndSection

View File

@ -0,0 +1,52 @@
# Match on all types of devices but joysticks
#
# If you want to configure your devices, do not copy this file.
# Instead, use a config snippet that contains something like this:
#
# Section "InputClass"
# Identifier "something or other"
# MatchDriver "libinput"
#
# MatchIsTouchpad "on"
# ... other Match directives ...
# Option "someoption" "value"
# EndSection
#
# This applies the option any libinput device also matched by the other
# directives. See the xorg.conf(5) man page for more info on
# matching devices.
Section "InputClass"
Identifier "libinput pointer catchall"
MatchIsPointer "on"
MatchDevicePath "/dev/input/event*"
Driver "libinput"
EndSection
Section "InputClass"
Identifier "libinput keyboard catchall"
MatchIsKeyboard "on"
MatchDevicePath "/dev/input/event*"
Driver "libinput"
EndSection
Section "InputClass"
Identifier "libinput touchpad catchall"
MatchIsTouchpad "on"
MatchDevicePath "/dev/input/event*"
Driver "libinput"
EndSection
Section "InputClass"
Identifier "libinput touchscreen catchall"
MatchIsTouchscreen "on"
MatchDevicePath "/dev/input/event*"
Driver "libinput"
EndSection
Section "InputClass"
Identifier "libinput tablet catchall"
MatchIsTablet "on"
MatchDevicePath "/dev/input/event*"
Driver "libinput"
EndSection

View File

@ -0,0 +1,27 @@
Section "Device"
Identifier "VideoCard"
# Driver "modesetting"
Driver "intel"
VendorName "Intel Corporation"
BoardName "4500MHD"
Option "monitor-LVDS1" "Internal LCD"
Option "monitor-HDMI2" "External LCD"
Option "AccelMethod" "UXA"
# Option "AccelMethod" "glamor"
# Option "DRI" "3"
Option "SwapbufferWait" "False"
Option "Tiling" "True"
EndSection
Section "Monitor"
Identifier "Internal LCD"
DisplaySize 338.7 211.7 # 1280x800 @ 96 DPI
Gamma 0.90 0.90 0.80
Option "DPMS" "on"
EndSection
Section "Monitor"
Identifier "External LCD"
Option "Disable" "True"
Option "DPMS" "on"
EndSection

View File

@ -0,0 +1,24 @@
Section "Screen"
Identifier "Screen0"
Device "VideoCard"
Monitor "Internal LCD"
SubSection "Display"
Modes "1280x800"
Virtual 3200 1200
EndSubSection
EndSection
Section "ServerLayout"
Identifier "XServerLayout"
Screen 0 "Screen0" 0 0
InputDevice "TrackPoint" "CorePointer"
InputDevice "keyboard-all" "CoreKeyboard"
Option "BlankTime" "0"
Option "StandbyTime" "0"
Option "SuspendTime" "0"
Option "OffTime" "5"
EndSection
Section "DRI"
Mode 0666
EndSection

View File

@ -0,0 +1,40 @@
#
# Catch-all evdev loader for udev-based systems
# We don't simply match on any device since that also adds accelerometers
# and other devices that we don't really want to use. The list below
# matches everything but joysticks.
Section "InputClass"
Identifier "evdev pointer catchall"
MatchIsPointer "on"
MatchDevicePath "/dev/input/event*"
Driver "evdev"
EndSection
Section "InputClass"
Identifier "evdev keyboard catchall"
MatchIsKeyboard "on"
MatchDevicePath "/dev/input/event*"
Driver "evdev"
EndSection
Section "InputClass"
Identifier "evdev touchpad catchall"
MatchIsTouchpad "on"
MatchDevicePath "/dev/input/event*"
Driver "evdev"
EndSection
Section "InputClass"
Identifier "evdev tablet catchall"
MatchIsTablet "on"
MatchDevicePath "/dev/input/event*"
Driver "evdev"
EndSection
Section "InputClass"
Identifier "evdev touchscreen catchall"
MatchIsTouchscreen "on"
MatchDevicePath "/dev/input/event*"
Driver "evdev"
EndSection

View File

@ -0,0 +1,38 @@
# Collection of quirks and blacklist/whitelists for specific devices.
# Accelerometer device, posts data through ABS_X/ABS_Y, making X unusable
# http://bugs.freedesktop.org/show_bug.cgi?id=22442
Section "InputClass"
Identifier "ThinkPad HDAPS accelerometer blacklist"
MatchProduct "ThinkPad HDAPS accelerometer data"
Option "Ignore" "on"
EndSection
# https://bugzilla.redhat.com/show_bug.cgi?id=523914
# Mouse does not move in PV Xen guest
# Explicitly tell evdev to not ignore the absolute axes.
Section "InputClass"
Identifier "Xen Virtual Pointer axis blacklist"
MatchProduct "Xen Virtual Pointer"
Option "IgnoreAbsoluteAxes" "off"
Option "IgnoreRelativeAxes" "off"
EndSection
# https://bugs.freedesktop.org/show_bug.cgi?id=55867
# Bug 55867 - Doesn't know how to tag XI_TRACKBALL
Section "InputClass"
Identifier "Tag trackballs as XI_TRACKBALL"
MatchProduct "trackball"
MatchDriver "evdev"
Option "TypeName" "TRACKBALL"
EndSection
# https://bugs.freedesktop.org/show_bug.cgi?id=62831
# Bug 62831 - Mionix Naos 5000 mouse detected incorrectly
Section "InputClass"
Identifier "Tag Mionix Naos 5000 mouse XI_MOUSE"
MatchProduct "La-VIEW Technology Naos 5000 Mouse"
MatchDriver "evdev"
Option "TypeName" "MOUSE"
EndSection

View File

@ -0,0 +1,2 @@
Section "Files"
EndSection

View File

@ -0,0 +1,5 @@
Section "Module"
Load "dri"
Load "dri2"
# Load "dbe"
EndSection

View File

@ -0,0 +1,23 @@
#Section "InputClass"
Section "InputDevice"
Identifier "keyboard-all"
Driver "evdev"
# Option "XkbRules" "xorg"
Option "XkbModel" "pc105"
Option "XkbLayout" "gb,es"
Option "XkbVariant" ",qwerty"
Option "XkbOptions" "grp:shift_toggle,grp_led:caps,grp_led:num,terminate:ctrl_alt_bksp"
# MatchIsKeyboard "on"
EndSection
Section "InputDevice"
Identifier "TrackPoint"
Driver "mouse"
Option "Protocol" "auto"
Option "Device" "/dev/input/mice"
Option "EmulateWheel" "on"
Option "EmulateWheelButton" "2"
Option "XAxisMapping" "6 7"
Option "YAxisMapping" "4 5"
EndSection

View File

@ -0,0 +1,52 @@
# Match on all types of devices but joysticks
#
# If you want to configure your devices, do not copy this file.
# Instead, use a config snippet that contains something like this:
#
# Section "InputClass"
# Identifier "something or other"
# MatchDriver "libinput"
#
# MatchIsTouchpad "on"
# ... other Match directives ...
# Option "someoption" "value"
# EndSection
#
# This applies the option any libinput device also matched by the other
# directives. See the xorg.conf(5) man page for more info on
# matching devices.
Section "InputClass"
Identifier "libinput pointer catchall"
MatchIsPointer "on"
MatchDevicePath "/dev/input/event*"
Driver "libinput"
EndSection
Section "InputClass"
Identifier "libinput keyboard catchall"
MatchIsKeyboard "on"
MatchDevicePath "/dev/input/event*"
Driver "libinput"
EndSection
Section "InputClass"
Identifier "libinput touchpad catchall"
MatchIsTouchpad "on"
MatchDevicePath "/dev/input/event*"
Driver "libinput"
EndSection
Section "InputClass"
Identifier "libinput touchscreen catchall"
MatchIsTouchscreen "on"
MatchDevicePath "/dev/input/event*"
Driver "libinput"
EndSection
Section "InputClass"
Identifier "libinput tablet catchall"
MatchIsTablet "on"
MatchDevicePath "/dev/input/event*"
Driver "libinput"
EndSection

View File

@ -0,0 +1,27 @@
Section "Device"
Identifier "VideoCard"
# Driver "modesetting"
Driver "intel"
VendorName "Intel Corporation"
BoardName "4500MHD"
Option "monitor-LVDS1" "Internal LCD"
Option "monitor-HDMI2" "External LCD"
Option "AccelMethod" "UXA"
# Option "AccelMethod" "glamor"
# Option "DRI" "3"
Option "SwapbufferWait" "False"
Option "Tiling" "True"
EndSection
Section "Monitor"
Identifier "Internal LCD"
DisplaySize 338.7 211.7 # 1280x800 @ 96 DPI
Gamma 0.90 0.90 0.80
Option "DPMS" "on"
EndSection
Section "Monitor"
Identifier "External LCD"
Option "Disable" "True"
Option "DPMS" "on"
EndSection

View File

@ -0,0 +1,24 @@
Section "Screen"
Identifier "Screen0"
Device "VideoCard"
Monitor "Internal LCD"
SubSection "Display"
Modes "1280x800"
Virtual 3200 1200
EndSubSection
EndSection
Section "ServerLayout"
Identifier "XServerLayout"
Screen 0 "Screen0" 0 0
InputDevice "TrackPoint" "CorePointer"
InputDevice "keyboard-all" "CoreKeyboard"
Option "BlankTime" "0"
Option "StandbyTime" "0"
Option "SuspendTime" "0"
Option "OffTime" "5"
EndSection
Section "DRI"
Mode 0666
EndSection

View File

@ -0,0 +1,50 @@
# These settings were set by the catalyst build script that automatically
# built this stage.
# Please consult /usr/share/portage/config/make.conf.example for a more
# detailed example.
COMMON_FLAGS="-O2 -march=native -pipe"
CHOST="x86_64-pc-linux-gnu"
CFLAGS="${COMMON_FLAGS}"
CXXFLAGS="${COMMON_FLAGS}"
FCFLAGS="${COMMON_FLAGS}"
FFLAGS="${COMMON_FLAGS}"
# NOTE: This stage was built with the bindist Use flag enabled
PORTDIR="/usr/portage"
DISTDIR="/usr/portage/distfiles"
PKGDIR="/usr/portage/packages"
# This sets the language of build output to English.
# Please keep this setting intact when reporting bugs.
LC_MESSAGES=C
# All licenses are FREE
ACCEPT_LICENSE="-* @FREE"
# Parallel compilations
MAKEOPTS="-j2"
# Hardware specific flags
ALSA_PCM_PLUGINS="*"
VIDEO_CARD="intel i965"
INPUT_DEVICES="libinput mouse keyboard evdev"
SANE_BACKENDS="hp hp3500 hp3900 hp4200 hp5400 hp5590 hpljm1005 hpsj5s hs2p"
LINGUAS="en"
GRUB_PLATFORMS="coreboot multiboot pc efi-32 efi-64 emu"
# CCACHE support
FEATURES="ccache"
CCACHE_DIR="/var/cache/ccache"
L10N="en-US en_US en es es_ES es-ES eu eu_ES eu-ES"
USE="\
-systemd -amdgpu -nouveau -radeon -radeonsi -video_cards_nouveau \
-video_cards_amdgpu -video_cards_radeon -video_cards_radeonsi \
sqlite mmx mmxext sse sse2 sse3 sse4_1 ssse3 i965 glamor savedconfig \
udisks ffmpeg jack pulseaudio dmenu zsh-completion fish-completion man"
GENTOO_MIRRORS="ftp://ftp.free.fr/mirrors/ftp.gentoo.org/ http://ftp.free.fr/mirrors/ftp.gentoo.org/ http://gentoo.modulix.net/gentoo/ http://gentoo.mirrors.ovh.net/gentoo-distfiles/ https://mirrors.soeasyto.com/distfiles.gentoo.org/ http://mirrors.soeasyto.com/distfiles.gentoo.org/ ftp://mirrors.soeasyto.com/distfiles.gentoo.org/ https://mirror.eu.oneandone.net/linux/distributions/gentoo/gentoo/ http://mirror.eu.oneandone.net/linux/distributions/gentoo/gentoo/ rsync://mirror.eu.oneandone.net/gentoo/ ftp://ftp.wh2.tu-dresden.de/pub/mirrors/gentoo ftp://mirror.netcologne.de/gentoo/ https://mirror.netcologne.de/gentoo/ http://mirror.netcologne.de/gentoo/ rsync://mirror.netcologne.de/gentoo/ https://linux.rz.ruhr-uni-bochum.de/download/gentoo-mirror/ http://linux.rz.ruhr-uni-bochum.de/download/gentoo-mirror/ https://ftp.halifax.rwth-aachen.de/gentoo/ http://ftp.halifax.rwth-aachen.de/gentoo/ ftp://ftp.halifax.rwth-aachen.de/gentoo/ rsync://ftp.halifax.rwth-aachen.de/gentoo/ https://ftp.fau.de/gentoo http://ftp.fau.de/gentoo ftp://ftp.fau.de/gentoo rsync://ftp.fau.de/gentoo https://ftp-stud.hs-esslingen.de/pub/Mirrors/gentoo/ http://ftp-stud.hs-esslingen.de/pub/Mirrors/gentoo/ ftp://ftp-stud.hs-esslingen.de/pub/Mirrors/gentoo/ rsync://ftp-stud.hs-esslingen.de/gentoo/ https://ftp.rnl.tecnico.ulisboa.pt/pub/gentoo/gentoo-distfiles/ http://ftp.rnl.tecnico.ulisboa.pt/pub/gentoo/gentoo-distfiles/ ftp://ftp.rnl.tecnico.ulisboa.pt/pub/gentoo/gentoo-distfiles/ rsync://ftp.rnl.tecnico.ulisboa.pt/pub/gentoo/gentoo-distfiles/ ftp://ftp.dei.uc.pt/pub/linux/gentoo/ http://ftp.dei.uc.pt/pub/linux/gentoo/"

View File

@ -0,0 +1 @@
../../usr/portage/profiles/default/linux/amd64/17.1/desktop

View File

@ -0,0 +1,50 @@
# required by nyancat (argument)
=games-misc/nyancat-1.5.1 ~amd64
app-laptop/tlp
sys-power/linux-x86-power-tools
# required by x11-misc/sxhkd (argument)
=x11-misc/sxhkd-0.6.0 ~amd64
x11-misc/tabbed ~amd64
www-client/qutebrowser ~amd64
=dev-python/pypeg2-2.15.2 ~amd64
app-shells/ksh ~amd64
app-admin/entr ~amd64
# required by net-p2p/transmission-remote-cli (argument)
>=net-p2p/transmission-remote-cli-1.7.1 ~amd64
# required by net-p2p/transmission-cli-2.94::sabayon-distro
# required by net-p2p/transmission-cli (argument)
>=net-p2p/transmission-base-2.94 ~amd64
# required by net-p2p/transmission-cli (argument)
>=net-p2p/transmission-cli-2.94 ~amd64
# required by net-p2p/transmission-daemon (argument)
>=net-p2p/transmission-daemon-2.94 ~amd64
# required by app-office/libreoffice-bin (argument)
>=app-office/libreoffice-bin-6.2.4.2 ~amd64
# required by app-admin/qtpass (argument)
=app-admin/qtpass-1.2.3 ~amd64
# required by app-admin/pass-import (argument)
=app-admin/pass-import-2.3 ~amd64
# required by x11-terms/termite (argument)
=x11-terms/termite-13 ~amd64
# required by x11-terms/termite-13::eroen
# required by x11-terms/termite (argument)
=x11-libs/vte-0.48.4 ~amd64
# required by net-im/signal-desktop-bin (argument)
=net-im/signal-desktop-bin-1.25.1 ~amd64
# required by sys-fs/archivemount (argument)
=sys-fs/archivemount-0.8.12 ~amd64
# required by sys-fs/fuse-zip (argument)
=sys-fs/fuse-zip-0.4.5 ~amd64
# required by app-text/docx2txt (argument)
=app-text/docx2txt-1.4 ~amd64
>=x11-wm/dwm-6.2 ~amd64
# required by app-misc/powerline (argument)
=app-misc/powerline-2.7 ~amd64
# required by app-misc/powerline-2.7::raiagent[fonts]
# required by app-misc/powerline (argument)
=media-fonts/powerline-fonts-9999-r2 ~amd64
# required by app-misc/powerline-2.7::raiagent[vim]
# required by app-misc/powerline (argument)
=app-vim/powerline-vim-2.7 ~amd64
# required by net-im/telegram-desktop-bin (argument)
>=net-im/telegram-desktop-bin-1.8.1 ~amd64

View File

@ -0,0 +1,5 @@
# x11-drivers/xf86* requiered 1.20.4
#=x11-base/xorg-server-1.20.5
# ffmpeg conflics
#=media-video/vlc-3.0.7.1
>=dev-qt/qtwebengine-5.12.3

View File

View File

@ -0,0 +1 @@
dev-python/PyQt5 declarative sql multimedia webengine webkit webchannel

View File

@ -0,0 +1,4 @@
# required by media-sound/pulseaudio-12.2-r1::gentoo[alsa-plugin,alsa]
# required by www-client/firefox-bin-67.0.2::gentoo[pulseaudio]
# required by firefox-bin (argument)
>=media-plugins/alsa-plugins-1.1.8 pulseaudio

View File

@ -0,0 +1 @@
app-shells/bash bashlogger mem-scramble afs

View File

@ -0,0 +1 @@
media-sound/cmus jack opus wavpack ffmpeg

View File

@ -0,0 +1 @@
media-gfx/feh curl

View File

@ -0,0 +1,2 @@
media-video/ffmpeg bzip2 encode opus vaapi vorbis vpx x264 x265 xvid theora pulseaudio
virtual/ffmpegbzip2 opus vaapi theora pulseaudio

View File

@ -0,0 +1 @@
app-shells/fzf vim neovim zsh-completion

View File

@ -0,0 +1 @@
sys-devel/gcc go

View File

@ -0,0 +1 @@
media-libs/gd fontconfig

View File

@ -0,0 +1 @@
media-gfx/gimp vector-icons

View File

@ -0,0 +1,3 @@
# required by net-mail/notmuch-0.24.2::gentoo[crypt]
# required by net-mail/notmuch (argument)
>=dev-libs/gmime-2.6.23:2.6 smime

View File

@ -0,0 +1 @@
dev-lang/go

View File

@ -0,0 +1 @@
>=media-libs/harfbuzz-2.3.1 icu

View File

@ -0,0 +1 @@
net-print/hplip scanner

View File

@ -0,0 +1 @@
dev-java/icedtea-bin big-endian multilib nsplugin # headless-awt

View File

@ -0,0 +1,5 @@
# required by dev-java/icedtea-bin-3.12.0-r1::gentoo[nsplugin]
# required by virtual/jdk-1.8.0-r3::gentoo
# required by @selected
# required by @world (argument)
>=dev-java/icedtea-web-1.6.2 nsplugin javascript

View File

@ -0,0 +1 @@
sys-apps/kmod lzma zlib

View File

@ -0,0 +1 @@
x11-misc/ktsuss sudo

View File

@ -0,0 +1 @@
app-portage/layman git subversion bazaar cvs mercurial

View File

@ -0,0 +1 @@
media-video/libav aac bzip2 encode opus theora vorbis vaapi x264 x265 xvid

View File

@ -0,0 +1,3 @@
# required by app-shells/fish-3.0.2::gentoo
# required by app-shells/fish (argument)
>=dev-libs/libpcre2-10.32 pcre32

View File

@ -0,0 +1 @@
sys-apps/lm_sensors contrib

View File

@ -0,0 +1 @@
media-sound/mpd jack opus wavpack ffmpeg audiofile soundcloud recorder pipe

View File

@ -0,0 +1 @@
media-video/mpv jack vaapi libmpv zsh-completion ffmpeg

View File

@ -0,0 +1 @@
mail-mta/msmtp vim-syntax daemon

View File

@ -0,0 +1 @@
mail-client/neomutt gpgme lmdb sasl

View File

@ -0,0 +1 @@
net-mail/notmuch mutt python

View File

@ -0,0 +1 @@
media-fonts/noto cjk

View File

@ -0,0 +1 @@
app-misc/powerline bash dash doc fish fonts man mksh vim zsh

View File

@ -0,0 +1 @@
media-fonts/powerline-fonts dejavusansmono hack inconsolata notomono ubuntumono

View File

@ -0,0 +1 @@
dev-python/pyyaml libyaml

View File

@ -0,0 +1 @@
dev-qt/qtsql mysql

View File

@ -0,0 +1 @@
x11-misc/rofi windowmode

View File

@ -0,0 +1 @@
x11-terms/rxvt-unicode 256-color xft blink unicode3

View File

@ -0,0 +1 @@
app-text/texlive extra graphics luatex science xetex

View File

@ -0,0 +1 @@
app-text/texlive-core xetex

View File

@ -0,0 +1 @@
app-laptop/tlp tlp_suggests tpacpi-bat

View File

@ -0,0 +1 @@
app-laptop/tp_smapi hdaps

View File

@ -0,0 +1 @@
net-p2p/transmission-cli daemon

View File

@ -0,0 +1 @@
net-p2p/transmission-remote-cli daemon

View File

@ -0,0 +1 @@
app-misc/vifm vim vim-syntax

View File

@ -0,0 +1,4 @@
# required by app-vim/powerline-vim-2.7::raiagent
# required by app-misc/powerline-2.7::raiagent[vim]
# required by app-misc/powerline (argument)
>=app-editors/vim-8.1.1486 python

View File

@ -0,0 +1 @@
media-video/vlc qt5 gnutls live lua matroska rtsp theora upnp vcdx vorbis vpx flac kate mtp opus opencv x265 x264

View File

@ -0,0 +1 @@
net-irc/weechat guile lua ruby man

View File

@ -0,0 +1 @@
app-misc/workrave doc

View File

@ -0,0 +1 @@
x11-base/xorg-server -suid

View File

@ -0,0 +1 @@
>=sys-libs/zlib-1.2.11-r2 minizip

View File

@ -0,0 +1,30 @@
# package.use# required by app-misc/neofetch-6.0.0::gentoo[X]
# required by app-misc/neofetch (argument)
>=www-client/w3m-0.5.3_p20180125 imlib
# required by dev-python/PyQt5-5.10.1-r1::gentoo[multimedia]
# required by www-client/qutebrowser-1.6.2::gentoo
# required by www-client/qutebrowser (argument)
>=dev-qt/qtmultimedia-5.12.3 widgets
# required by dev-python/PyQt5-5.10.1-r1::gentoo[webengine]
# required by www-client/qutebrowser-1.6.2::gentoo
# required by www-client/qutebrowser (argument)
>=dev-qt/qtwebengine-5.12.3 widgets
# required by dev-qt/qtwebengine-5.12.3::gentoo
# required by dev-python/PyQt5-5.10.1-r1::gentoo[webengine]
# required by www-client/qutebrowser-1.6.2::gentoo
# required by www-client/qutebrowser (argument)
>=dev-qt/qtwebchannel-5.12.3 qml
# required by dev-qt/qtwebengine-5.12.3::gentoo
# required by dev-python/PyQt5-5.10.1-r1::gentoo[webengine]
# required by www-client/qutebrowser-1.6.2::gentoo
# required by www-client/qutebrowser (argument)
>=dev-libs/libxml2-2.9.9-r1 icu
# required by sys-power/suspend-1.0_p20150810-r1::gentoo[crypt]
# required by sys-power/suspend (argument)
>=dev-libs/libgcrypt-1.8.3 static-libs
# required by sys-power/suspend-1.0_p20150810-r1::gentoo[crypt]
# required by sys-power/suspend (argument)
>=dev-libs/libgpg-error-1.36 static-libs
# required by sys-power/suspend-1.0_p20150810-r1::gentoo[lzo]
# required by sys-power/suspend (argument)
>=dev-libs/lzo-2.10 static-libs

View File

@ -0,0 +1,259 @@
From 20967685d6879bd611a856ade154df19da9ddc7b Mon Sep 17 00:00:00 2001
From: Stein Gunnar Bakkeby <bakkeby@gmail.com>
Date: Wed, 8 May 2019 08:07:14 +0200
Subject: [PATCH] Vanity gaps - allows control of both inner and outer gaps
between windows and screen edge
---
config.def.h | 21 +++++++++
dwm.c | 150 +++++++++++++++++++++++++++++++++++++++++++++++++++++++----
2 files changed, 161 insertions(+), 10 deletions(-)
diff --git a/config.def.h b/config.def.h
index 1c0b587..0927c2d 100644
--- a/config.def.h
+++ b/config.def.h
@@ -3,6 +3,11 @@
/* appearance */
static const unsigned int borderpx = 1; /* border pixel of windows */
static const unsigned int snap = 32; /* snap pixel */
+static const unsigned int gappih = 10; /* horiz inner gap between windows */
+static const unsigned int gappiv = 10; /* vert inner gap between windows */
+static const unsigned int gappoh = 10; /* horiz outer gap between windows and screen edge */
+static const unsigned int gappov = 10; /* vert outer gap between windows and screen edge */
+static const int smartgaps = 0; /* 1 means no outer gap when there is only one window */
static const int showbar = 1; /* 0 means no bar */
static const int topbar = 1; /* 0 means bottom bar */
static const char *fonts[] = { "monospace:size=10" };
@@ -70,6 +75,22 @@ static Key keys[] = {
{ MODKEY, XK_d, incnmaster, {.i = -1 } },
{ MODKEY, XK_h, setmfact, {.f = -0.05} },
{ MODKEY, XK_l, setmfact, {.f = +0.05} },
+ { MODKEY|Mod4Mask, XK_h, incrgaps, {.i = +1 } },
+ { MODKEY|Mod4Mask, XK_l, incrgaps, {.i = -1 } },
+ { MODKEY|Mod4Mask|ShiftMask, XK_h, incrogaps, {.i = +1 } },
+ { MODKEY|Mod4Mask|ShiftMask, XK_l, incrogaps, {.i = -1 } },
+ { MODKEY|Mod4Mask|ControlMask, XK_h, incrigaps, {.i = +1 } },
+ { MODKEY|Mod4Mask|ControlMask, XK_l, incrigaps, {.i = -1 } },
+ { MODKEY|Mod4Mask, XK_0, togglegaps, {0} },
+ { MODKEY|Mod4Mask|ShiftMask, XK_0, defaultgaps, {0} },
+ { MODKEY, XK_y, incrihgaps, {.i = +1 } },
+ { MODKEY, XK_o, incrihgaps, {.i = -1 } },
+ { MODKEY|ControlMask, XK_y, incrivgaps, {.i = +1 } },
+ { MODKEY|ControlMask, XK_o, incrivgaps, {.i = -1 } },
+ { MODKEY|Mod4Mask, XK_y, incrohgaps, {.i = +1 } },
+ { MODKEY|Mod4Mask, XK_o, incrohgaps, {.i = -1 } },
+ { MODKEY|ShiftMask, XK_y, incrovgaps, {.i = +1 } },
+ { MODKEY|ShiftMask, XK_o, incrovgaps, {.i = -1 } },
{ MODKEY, XK_Return, zoom, {0} },
{ MODKEY, XK_Tab, view, {0} },
{ MODKEY|ShiftMask, XK_c, killclient, {0} },
diff --git a/dwm.c b/dwm.c
index 4465af1..88f3e04 100644
--- a/dwm.c
+++ b/dwm.c
@@ -119,6 +119,10 @@ struct Monitor {
int by; /* bar geometry */
int mx, my, mw, mh; /* screen size */
int wx, wy, ww, wh; /* window area */
+ int gappih; /* horizontal gap between windows */
+ int gappiv; /* vertical gap between windows */
+ int gappoh; /* horizontal outer gaps */
+ int gappov; /* vertical outer gaps */
unsigned int seltags;
unsigned int sellt;
unsigned int tagset[2];
@@ -199,6 +203,16 @@ static void sendmon(Client *c, Monitor *m);
static void setclientstate(Client *c, long state);
static void setfocus(Client *c);
static void setfullscreen(Client *c, int fullscreen);
+static void setgaps(int oh, int ov, int ih, int iv);
+static void incrgaps(const Arg *arg);
+static void incrigaps(const Arg *arg);
+static void incrogaps(const Arg *arg);
+static void incrohgaps(const Arg *arg);
+static void incrovgaps(const Arg *arg);
+static void incrihgaps(const Arg *arg);
+static void incrivgaps(const Arg *arg);
+static void togglegaps(const Arg *arg);
+static void defaultgaps(const Arg *arg);
static void setlayout(const Arg *arg);
static void setmfact(const Arg *arg);
static void setup(void);
@@ -240,6 +254,7 @@ static char stext[256];
static int screen;
static int sw, sh; /* X display screen geometry width, height */
static int bh, blw = 0; /* bar geometry */
+static int enablegaps = 1; /* enables gaps, used by togglegaps */
static int lrpad; /* sum of left and right padding for text */
static int (*xerrorxlib)(Display *, XErrorEvent *);
static unsigned int numlockmask = 0;
@@ -638,6 +653,10 @@ createmon(void)
m->nmaster = nmaster;
m->showbar = showbar;
m->topbar = topbar;
+ m->gappih = gappih;
+ m->gappiv = gappiv;
+ m->gappoh = gappoh;
+ m->gappov = gappov;
m->lt[0] = &layouts[0];
m->lt[1] = &layouts[1 % LENGTH(layouts)];
strncpy(m->ltsymbol, layouts[0].symbol, sizeof m->ltsymbol);
@@ -1498,6 +1517,111 @@ setfullscreen(Client *c, int fullscreen)
}
void
+setgaps(int oh, int ov, int ih, int iv)
+{
+ if (oh < 0) oh = 0;
+ if (ov < 0) ov = 0;
+ if (ih < 0) ih = 0;
+ if (iv < 0) iv = 0;
+
+ selmon->gappoh = oh;
+ selmon->gappov = ov;
+ selmon->gappih = ih;
+ selmon->gappiv = iv;
+ arrange(selmon);
+}
+
+void
+togglegaps(const Arg *arg)
+{
+ enablegaps = !enablegaps;
+ arrange(selmon);
+}
+
+void
+defaultgaps(const Arg *arg)
+{
+ setgaps(gappoh, gappov, gappih, gappiv);
+}
+
+void
+incrgaps(const Arg *arg)
+{
+ setgaps(
+ selmon->gappoh + arg->i,
+ selmon->gappov + arg->i,
+ selmon->gappih + arg->i,
+ selmon->gappiv + arg->i
+ );
+}
+
+void
+incrigaps(const Arg *arg)
+{
+ setgaps(
+ selmon->gappoh,
+ selmon->gappov,
+ selmon->gappih + arg->i,
+ selmon->gappiv + arg->i
+ );
+}
+
+void
+incrogaps(const Arg *arg)
+{
+ setgaps(
+ selmon->gappoh + arg->i,
+ selmon->gappov + arg->i,
+ selmon->gappih,
+ selmon->gappiv
+ );
+}
+
+void
+incrohgaps(const Arg *arg)
+{
+ setgaps(
+ selmon->gappoh + arg->i,
+ selmon->gappov,
+ selmon->gappih,
+ selmon->gappiv
+ );
+}
+
+void
+incrovgaps(const Arg *arg)
+{
+ setgaps(
+ selmon->gappoh,
+ selmon->gappov + arg->i,
+ selmon->gappih,
+ selmon->gappiv
+ );
+}
+
+void
+incrihgaps(const Arg *arg)
+{
+ setgaps(
+ selmon->gappoh,
+ selmon->gappov,
+ selmon->gappih + arg->i,
+ selmon->gappiv
+ );
+}
+
+void
+incrivgaps(const Arg *arg)
+{
+ setgaps(
+ selmon->gappoh,
+ selmon->gappov,
+ selmon->gappih,
+ selmon->gappiv + arg->i
+ );
+}
+
+void
setlayout(const Arg *arg)
{
if (!arg || !arg->v || arg->v != selmon->lt[selmon->sellt])
@@ -1673,26 +1797,32 @@ tagmon(const Arg *arg)
void
tile(Monitor *m)
{
- unsigned int i, n, h, mw, my, ty;
+ unsigned int i, n, h, r, oe = enablegaps, ie = enablegaps, mw, my, ty;
Client *c;
for (n = 0, c = nexttiled(m->clients); c; c = nexttiled(c->next), n++);
if (n == 0)
return;
+ if (smartgaps == n) {
+ oe = 0; // outer gaps disabled
+ }
+
if (n > m->nmaster)
- mw = m->nmaster ? m->ww * m->mfact : 0;
+ mw = m->nmaster ? (m->ww + m->gappiv*ie) * m->mfact : 0;
else
- mw = m->ww;
- for (i = my = ty = 0, c = nexttiled(m->clients); c; c = nexttiled(c->next), i++)
+ mw = m->ww - 2*m->gappov*oe + m->gappiv*ie;
+ for (i = 0, my = ty = m->gappoh*oe, c = nexttiled(m->clients); c; c = nexttiled(c->next), i++)
if (i < m->nmaster) {
- h = (m->wh - my) / (MIN(n, m->nmaster) - i);
- resize(c, m->wx, m->wy + my, mw - (2*c->bw), h - (2*c->bw), 0);
- my += HEIGHT(c);
+ r = MIN(n, m->nmaster) - i;
+ h = (m->wh - my - m->gappoh*oe - m->gappih*ie * (r - 1)) / r;
+ resize(c, m->wx + m->gappov*oe, m->wy + my, mw - (2*c->bw) - m->gappiv*ie, h - (2*c->bw), 0);
+ my += HEIGHT(c) + m->gappih*ie;
} else {
- h = (m->wh - ty) / (n - i);
- resize(c, m->wx + mw, m->wy + ty, m->ww - mw - (2*c->bw), h - (2*c->bw), 0);
- ty += HEIGHT(c);
+ r = n - i;
+ h = (m->wh - ty - m->gappoh*oe - m->gappih*ie * (r - 1)) / r;
+ resize(c, m->wx + mw + m->gappov*oe, m->wy + ty, m->ww - mw - (2*c->bw) - 2*m->gappov*oe, h - (2*c->bw), 0);
+ ty += HEIGHT(c) + m->gappih*ie;
}
}
--
2.7.4

View File

@ -0,0 +1,51 @@
#!/bin/sh
# Example /etc/portage/repo.postsync.d script. Make it executable (chmod +x) for
# Portage to process it.
#
# With portage-2.2.16 and newer, all repo.postsync.d hooks will be called multiple
# times after syncing each repository.
#
# Older versions of Portage support syncing only one repository.
# In those versions, the postsync.d hooks will be called only once,
# and they will not be passed any parameters.
# On a repo.postsync.d hook call, positional parameters contain
# information about the just-synced repository.
# Your hook can control it's actions depending on any of the three
# parameters passed in to it.
#
# They are as follows:
#
# The repository name.
repository_name=${1}
# The URI to which the repository was synced.
sync_uri=${2}
# The path to the repository.
repository_path=${3}
# Portage assumes that a hook succeeded if it exits with 0 code. If no
# explicit exit is done, the exit code is the exit code of last spawned
# command. Since our script is a bit more complex, we want to control
# the exit code explicitly.
ret=0
if [ -n "${repository_name}" ]; then
# Repository name was provided, so we're in a post-repository hook.
echo "* In post-repository hook for ${repository_name}"
echo "** synced from remote repository ${sync_uri}"
echo "** synced into ${repository_path}"
# Gentoo comes with pregenerated cache but the other repositories
# usually don't. Generate them to improve performance.
if [ "${repository_name}" != "gentoo" ]; then
if ! egencache --update --repo="${repository_name}" --jobs=4
then
echo "!!! egencache failed!"
ret=1
fi
fi
fi
# Return explicit status.
exit "${ret}"

View File

@ -0,0 +1,10 @@
#!/bin/sh
repository_name=$1
repository_path=$3
if [ -n "${repository_name}" ]; then
q ${PORTAGE_QUIET:+-q} --reinitialize="${repository_path}"
fi
:

View File

@ -0,0 +1,21 @@
[DEFAULT]
main-repo = gentoo
[gentoo]
location = /usr/portage
sync-type = rsync
sync-uri = rsync://rsync.gentoo.org/gentoo-portage
auto-sync = yes
sync-rsync-verify-jobs = 1
sync-rsync-verify-metamanifest = yes
sync-rsync-verify-max-age = 24
sync-openpgp-key-path = /usr/share/openpgp-keys/gentoo-release.asc
sync-openpgp-key-refresh-retry-count = 40
sync-openpgp-key-refresh-retry-overall-timeout = 1200
sync-openpgp-key-refresh-retry-delay-exp-base = 2
sync-openpgp-key-refresh-retry-delay-max = 60
sync-openpgp-key-refresh-retry-delay-mult = 4
# for daily squashfs snapshots
#sync-type = squashdelta
#sync-uri = mirror://gentoo/../snapshots/squashfs

View File

@ -0,0 +1,42 @@
[tlp]
priority = 50
location = /var/lib/layman/tlp
layman-type = git
auto-sync = No
[go-overlay]
priority = 50
location = /var/lib/layman/go-overlay
layman-type = git
auto-sync = No
[sabayon-distro]
priority = 50
location = /var/lib/layman/sabayon-distro
layman-type = git
auto-sync = No
[wjn-overlay]
priority = 50
location = /var/lib/layman/wjn-overlay
layman-type = git
auto-sync = No
[eroen]
priority = 50
location = /var/lib/layman/eroen
layman-type = git
auto-sync = No
[palemoon]
priority = 50
location = /var/lib/layman/palemoon
layman-type = git
auto-sync = No
[raiagent]
priority = 50
location = /var/lib/layman/raiagent
layman-type = git
auto-sync = No

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,166 @@
/* modifier 0 means no modifier */
static int surfuseragent = 1; /* Append Surf version to default WebKit user agent */
static char *fulluseragent = ""; /* Or override the whole user agent string */
static char *scriptfile = "~/.surf/script.js";
static char *styledir = "~/.surf/styles/";
static char *cachedir = "~/.surf/cache/";
static char *cookiefile = "~/.surf/cookies.txt";
/* Webkit default features */
static Parameter defconfig[ParameterLast] = {
SETB(AcceleratedCanvas, 1),
SETB(CaretBrowsing, 0),
SETV(CookiePolicies, "@Aa"),
SETB(DiskCache, 1),
SETB(DNSPrefetch, 0),
SETI(FontSize, 12),
SETB(FrameFlattening, 0),
SETB(Geolocation, 0),
SETB(HideBackground, 0),
SETB(Inspector, 0),
SETB(JavaScript, 1),
SETB(KioskMode, 0),
SETB(LoadImages, 1),
SETB(MediaManualPlay, 0),
SETB(Plugins, 1),
SETV(PreferredLanguages, ((char *[]){ NULL })),
SETB(RunInFullscreen, 0),
SETB(ScrollBars, 1),
SETB(ShowIndicators, 1),
SETB(SiteQuirks, 1),
SETB(SpellChecking, 0),
SETV(SpellLanguages, ((char *[]){ "en_US", NULL })),
SETB(StrictSSL, 0),
SETB(Style, 1),
SETF(ZoomLevel, 1.0),
};
static UriParameters uriparams[] = {
{ "(://|\\.)suckless\\.org(/|$)", {
FSETB(JavaScript, 0),
FSETB(Plugins, 0),
}, },
};
static WebKitFindOptions findopts = WEBKIT_FIND_OPTIONS_CASE_INSENSITIVE |
WEBKIT_FIND_OPTIONS_WRAP_AROUND;
#define SETPROP(p, q) { \
.v = (const char *[]){ "/bin/sh", "-c", \
"prop=\"`xprop -id $2 $0 " \
"| sed \"s/^$0(STRING) = \\(\\\\\"\\?\\)\\(.*\\)\\1$/\\2/\" " \
"| xargs -0 printf %b | dmenu`\" &&" \
"xprop -id $2 -f $1 8s -set $1 \"$prop\"", \
p, q, winid, NULL \
} \
}
/* DOWNLOAD(URI, referer) */
#define DOWNLOAD(d, r) { \
.v = (const char *[]){ "/bin/sh", "-c", \
"st -e /bin/sh -c \"curl -g -L -J -O --user-agent '$1'" \
" --referer '$2' -b $3 -c $3 '$0';" \
" sleep 5;\"", \
d, useragent, r, cookiefile, NULL \
} \
}
/* PLUMB(URI) */
/* This called when some URI which does not begin with "about:",
* "http://" or "https://" should be opened.
*/
#define PLUMB(u) {\
.v = (const char *[]){ "/bin/sh", "-c", \
"xdg-open \"$0\"", u, NULL \
} \
}
/* VIDEOPLAY(URI) */
#define VIDEOPLAY(u) {\
.v = (const char *[]){ "/bin/sh", "-c", \
"mpv --really-quiet \"$0\"", u, NULL \
} \
}
/* styles */
/*
* The iteration will stop at the first match, beginning at the beginning of
* the list.
*/
static SiteStyle styles[] = {
/* regexp file in $styledir */
{ ".*", "default.css" },
};
#define MODKEY GDK_CONTROL_MASK
/* hotkeys */
/*
* If you use anything else but MODKEY and GDK_SHIFT_MASK, don't forget to
* edit the CLEANMASK() macro.
*/
static Key keys[] = {
/* modifier keyval function arg */
{ MODKEY, GDK_KEY_g, spawn, SETPROP("_SURF_URI", "_SURF_GO") },
{ MODKEY, GDK_KEY_f, spawn, SETPROP("_SURF_FIND", "_SURF_FIND") },
{ MODKEY, GDK_KEY_slash, spawn, SETPROP("_SURF_FIND", "_SURF_FIND") },
{ 0, GDK_KEY_Escape, stop, { 0 } },
{ MODKEY, GDK_KEY_c, stop, { 0 } },
{ MODKEY|GDK_SHIFT_MASK, GDK_KEY_r, reload, { .b = 1 } },
{ MODKEY, GDK_KEY_r, reload, { .b = 0 } },
{ MODKEY, GDK_KEY_l, navigate, { .i = +1 } },
{ MODKEY, GDK_KEY_h, navigate, { .i = -1 } },
/* Currently we have to use scrolling steps that WebKit2GTK+ gives us
* d: step down, u: step up, r: step right, l:step left
* D: page down, U: page up */
{ MODKEY, GDK_KEY_j, scroll, { .i = 'd' } },
{ MODKEY, GDK_KEY_k, scroll, { .i = 'u' } },
{ MODKEY, GDK_KEY_b, scroll, { .i = 'U' } },
{ MODKEY, GDK_KEY_space, scroll, { .i = 'D' } },
{ MODKEY, GDK_KEY_i, scroll, { .i = 'r' } },
{ MODKEY, GDK_KEY_u, scroll, { .i = 'l' } },
{ MODKEY|GDK_SHIFT_MASK, GDK_KEY_j, zoom, { .i = -1 } },
{ MODKEY|GDK_SHIFT_MASK, GDK_KEY_k, zoom, { .i = +1 } },
{ MODKEY|GDK_SHIFT_MASK, GDK_KEY_q, zoom, { .i = 0 } },
{ MODKEY, GDK_KEY_minus, zoom, { .i = -1 } },
{ MODKEY, GDK_KEY_plus, zoom, { .i = +1 } },
{ MODKEY, GDK_KEY_p, clipboard, { .b = 1 } },
{ MODKEY, GDK_KEY_y, clipboard, { .b = 0 } },
{ MODKEY, GDK_KEY_n, find, { .i = +1 } },
{ MODKEY|GDK_SHIFT_MASK, GDK_KEY_n, find, { .i = -1 } },
{ MODKEY|GDK_SHIFT_MASK, GDK_KEY_p, print, { 0 } },
{ MODKEY|GDK_SHIFT_MASK, GDK_KEY_a, togglecookiepolicy, { 0 } },
{ 0, GDK_KEY_F11, togglefullscreen, { 0 } },
{ MODKEY|GDK_SHIFT_MASK, GDK_KEY_o, toggleinspector, { 0 } },
{ MODKEY|GDK_SHIFT_MASK, GDK_KEY_c, toggle, { .i = CaretBrowsing } },
{ MODKEY|GDK_SHIFT_MASK, GDK_KEY_f, toggle, { .i = FrameFlattening } },
{ MODKEY|GDK_SHIFT_MASK, GDK_KEY_g, toggle, { .i = Geolocation } },
{ MODKEY|GDK_SHIFT_MASK, GDK_KEY_s, toggle, { .i = JavaScript } },
{ MODKEY|GDK_SHIFT_MASK, GDK_KEY_i, toggle, { .i = LoadImages } },
{ MODKEY|GDK_SHIFT_MASK, GDK_KEY_v, toggle, { .i = Plugins } },
{ MODKEY|GDK_SHIFT_MASK, GDK_KEY_b, toggle, { .i = ScrollBars } },
{ MODKEY|GDK_SHIFT_MASK, GDK_KEY_m, toggle, { .i = Style } },
};
/* button definitions */
/* target can be OnDoc, OnLink, OnImg, OnMedia, OnEdit, OnBar, OnSel, OnAny */
static Button buttons[] = {
/* target event mask button function argument stop event */
{ OnLink, 0, 2, clicknewwindow, { .b = 0 }, 1 },
{ OnLink, MODKEY, 2, clicknewwindow, { .b = 1 }, 1 },
{ OnLink, MODKEY, 1, clicknewwindow, { .b = 1 }, 1 },
{ OnAny, 0, 8, clicknavigate, { .i = -1 }, 1 },
{ OnAny, 0, 9, clicknavigate, { .i = +1 }, 1 },
{ OnMedia, MODKEY, 1, clickexternplayer, { 0 }, 1 },
};

View File

@ -0,0 +1,23 @@
/* See LICENSE file for copyright and license details. */
/* Default settings; can be overriden by command line. */
static int topbar = 1; /* -b option; if 0, dmenu appears at bottom */
/* -fn option overrides fonts[0]; default X11 font or font set */
static const char *fonts[] = {
"monospace:size=10"
};
static const char *prompt = NULL; /* -p option; prompt to the left of input field */
static const char *colors[SchemeLast][2] = {
/* fg bg */
[SchemeNorm] = { "#bbbbbb", "#222222" },
[SchemeSel] = { "#eeeeee", "#005577" },
[SchemeOut] = { "#000000", "#00ffff" },
};
/* -l option; if nonzero, dmenu uses vertical list with given number of lines */
static unsigned int lines = 0;
/*
* Characters not considered part of a word while deleting words
* for example: " /?\"&[]"
*/
static const char worddelimiters[] = " ";

View File

@ -0,0 +1 @@
dmenu-4.8

View File

@ -0,0 +1,58 @@
/* See LICENSE file for copyright and license details. */
/* appearance */
static const char font[] = "-*-*-medium-*-*-*-14-*-*-*-*-*-*-*";
static const char* normbgcolor = "#222222";
static const char* normfgcolor = "#cccccc";
static const char* selbgcolor = "#555555";
static const char* selfgcolor = "#ffffff";
static const char before[] = "<";
static const char after[] = ">";
static const int tabwidth = 200;
static const Bool foreground = True;
/*
* Where to place a new tab when it is opened. When npisrelative is True,
* then the current position is changed + newposition. If npisrelative
* is False, then newposition is an absolute position.
*/
static int newposition = 0;
static Bool npisrelative = False;
#define SETPROP(p) { \
.v = (char *[]){ "/bin/sh", "-c", \
"prop=\"`xwininfo -children -id $1 | grep '^ 0x' | sed -e's@^ *\\(0x[0-9a-f]*\\) \"\\([^\"]*\\)\".*@\\1 \\2@' | xargs -0 printf %b | dmenu -l 10`\" &&" \
"xprop -id $1 -f $0 8s -set $0 \"$prop\"", \
p, winid, NULL \
} \
}
#define MODKEY ControlMask
static Key keys[] = { \
/* modifier key function argument */
{ MODKEY|ShiftMask, XK_Return, focusonce, { 0 } },
{ MODKEY|ShiftMask, XK_Return, spawn, { 0 } },
{ MODKEY, XK_t, spawn, SETPROP("_TABBED_SELECT_TAB") },
{ MODKEY|ShiftMask, XK_l, rotate, { .i = +1 } },
{ MODKEY|ShiftMask, XK_h, rotate, { .i = -1 } },
{ MODKEY|ShiftMask, XK_j, movetab, { .i = -1 } },
{ MODKEY|ShiftMask, XK_k, movetab, { .i = +1 } },
{ MODKEY, XK_Tab, rotate, { .i = 0 } },
{ MODKEY, XK_1, move, { .i = 0 } },
{ MODKEY, XK_2, move, { .i = 1 } },
{ MODKEY, XK_3, move, { .i = 2 } },
{ MODKEY, XK_4, move, { .i = 3 } },
{ MODKEY, XK_5, move, { .i = 4 } },
{ MODKEY, XK_6, move, { .i = 5 } },
{ MODKEY, XK_7, move, { .i = 6 } },
{ MODKEY, XK_8, move, { .i = 7 } },
{ MODKEY, XK_9, move, { .i = 8 } },
{ MODKEY, XK_0, move, { .i = 9 } },
{ MODKEY, XK_q, killclient, { 0 } },
{ 0, XK_F11, fullscreen, { 0 } },
};

View File

@ -0,0 +1 @@
/etc/portage/savedconfig/x11-terms/st-0.8.1

View File

@ -0,0 +1,136 @@
/* See LICENSE file for copyright and license details. */
/* appearance */
static const char *fonts[] = {
"monospace:size=10"
};
static const char dmenufont[] = "monospace:size=10";
static const char normbordercolor[] = "#444444";
static const char normbgcolor[] = "#222222";
static const char normfgcolor[] = "#bbbbbb";
static const char selbordercolor[] = "#005577";
static const char selbgcolor[] = "#005577";
static const char selfgcolor[] = "#eeeeee";
static const unsigned int borderpx = 2; /* border pixel of windows */
static const unsigned int snap = 32; /* snap pixel */
static const unsigned int gappih = 10; /* horiz inner gap between windows */
static const unsigned int gappiv = 10; /* vert inner gap between windows */
static const unsigned int gappoh = 10; /* horiz outer gap between windows and screen edge */
static const unsigned int gappov = 10; /* vert outer gap between windows and screen edge */
static const int smartgaps = 1; /* 1 means no outer gap when there is only one window */
static const int showbar = 1; /* 0 means no bar */
static const int topbar = 1; /* 0 means bottom bar */
/* tagging */
static const char *tags[] = { "1", "2", "3", "4", "5", "6", "7", "8", "9" };
static const Rule rules[] = {
/* xprop(1):
* WM_CLASS(STRING) = instance, class
* WM_NAME(STRING) = title
*/
/* class instance title tags mask isfloating monitor */
{ "Gimp", NULL, NULL, 0, 1, -1 },
{ "Firefox", NULL, NULL, 1 << 8, 0, -1 },
{ "TelegramDesktop", NULL, NULL, 1 << 6, 0, -1 },
{ "Workrave", NULL, NULL, ~0, 1, -1 },
};
/* layout(s) */
static const float mfact = 0.55; /* factor of master area size [0.05..0.95] */
static const int nmaster = 1; /* number of clients in master area */
static const int resizehints = 1; /* 1 means respect size hints in tiled resizals */
static const Layout layouts[] = {
/* symbol arrange function */
{ "[]=", tile }, /* first entry is default */
{ "><>", NULL }, /* no layout function means floating behavior */
{ "[M]", monocle },
};
/* key definitions */
#define MODKEY Mod1Mask
#define TAGKEYS(KEY,TAG) \
{ MODKEY, KEY, view, {.ui = 1 << TAG} }, \
{ MODKEY|ControlMask, KEY, toggleview, {.ui = 1 << TAG} }, \
{ MODKEY|ShiftMask, KEY, tag, {.ui = 1 << TAG} }, \
{ MODKEY|ControlMask|ShiftMask, KEY, toggletag, {.ui = 1 << TAG} },
/* helper for spawning shell commands in the pre dwm-5.0 fashion */
#define SHCMD(cmd) { .v = (const char*[]){ "/bin/sh", "-c", cmd, NULL } }
/* commands */
static char dmenumon[2] = "0"; /* component of dmenucmd, manipulated in spawn() */
static const char *dmenucmd[] = { "dmenu_run", "-m", dmenumon, "-fn", dmenufont, "-nb", normbgcolor, "-nf", normfgcolor, "-sb", selbgcolor, "-sf", selfgcolor, NULL };
static const char *termcmd[] = { "st", NULL };
static Key keys[] = {
/* modifier key function argument */
{ MODKEY, XK_p, spawn, {.v = dmenucmd } },
{ MODKEY|ShiftMask, XK_Return, spawn, {.v = termcmd } },
{ MODKEY, XK_b, togglebar, {0} },
{ MODKEY, XK_j, focusstack, {.i = +1 } },
{ MODKEY, XK_k, focusstack, {.i = -1 } },
{ MODKEY, XK_i, incnmaster, {.i = +1 } },
{ MODKEY, XK_d, incnmaster, {.i = -1 } },
{ MODKEY, XK_h, setmfact, {.f = -0.05} },
{ MODKEY, XK_l, setmfact, {.f = +0.05} },
{ MODKEY|Mod4Mask, XK_h, incrgaps, {.i = +1 } },
{ MODKEY|Mod4Mask, XK_l, incrgaps, {.i = -1 } },
{ MODKEY|Mod4Mask|ShiftMask, XK_h, incrogaps, {.i = +1 } },
{ MODKEY|Mod4Mask|ShiftMask, XK_l, incrogaps, {.i = -1 } },
{ MODKEY|Mod4Mask|ControlMask, XK_h, incrigaps, {.i = +1 } },
{ MODKEY|Mod4Mask|ControlMask, XK_l, incrigaps, {.i = -1 } },
{ MODKEY|Mod4Mask, XK_0, togglegaps, {0} },
{ MODKEY|Mod4Mask|ShiftMask, XK_0, defaultgaps, {0} },
{ MODKEY, XK_y, incrihgaps, {.i = +1 } },
{ MODKEY, XK_o, incrihgaps, {.i = -1 } },
{ MODKEY|ControlMask, XK_y, incrivgaps, {.i = +1 } },
{ MODKEY|ControlMask, XK_o, incrivgaps, {.i = -1 } },
{ MODKEY|Mod4Mask, XK_y, incrohgaps, {.i = +1 } },
{ MODKEY|Mod4Mask, XK_o, incrohgaps, {.i = -1 } },
{ MODKEY|ShiftMask, XK_y, incrovgaps, {.i = +1 } },
{ MODKEY|ShiftMask, XK_o, incrovgaps, {.i = -1 } },
{ MODKEY, XK_Return, zoom, {0} },
{ MODKEY, XK_Tab, view, {0} },
{ MODKEY|ShiftMask, XK_c, killclient, {0} },
{ MODKEY, XK_t, setlayout, {.v = &layouts[0]} },
{ MODKEY, XK_f, setlayout, {.v = &layouts[1]} },
{ MODKEY, XK_m, setlayout, {.v = &layouts[2]} },
{ MODKEY, XK_space, setlayout, {0} },
{ MODKEY|ShiftMask, XK_space, togglefloating, {0} },
{ MODKEY, XK_0, view, {.ui = ~0 } },
{ MODKEY|ShiftMask, XK_0, tag, {.ui = ~0 } },
{ MODKEY, XK_comma, focusmon, {.i = -1 } },
{ MODKEY, XK_period, focusmon, {.i = +1 } },
{ MODKEY|ShiftMask, XK_comma, tagmon, {.i = -1 } },
{ MODKEY|ShiftMask, XK_period, tagmon, {.i = +1 } },
TAGKEYS( XK_1, 0)
TAGKEYS( XK_2, 1)
TAGKEYS( XK_3, 2)
TAGKEYS( XK_4, 3)
TAGKEYS( XK_5, 4)
TAGKEYS( XK_6, 5)
TAGKEYS( XK_7, 6)
TAGKEYS( XK_8, 7)
TAGKEYS( XK_9, 8)
{ MODKEY|ShiftMask, XK_q, quit, {0} },
};
/* button definitions */
/* click can be ClkLtSymbol, ClkStatusText, ClkWinTitle, ClkClientWin, or ClkRootWin */
static Button buttons[] = {
/* click event mask button function argument */
{ ClkLtSymbol, 0, Button1, setlayout, {0} },
{ ClkLtSymbol, 0, Button3, setlayout, {.v = &layouts[2]} },
{ ClkWinTitle, 0, Button2, zoom, {0} },
{ ClkStatusText, 0, Button2, spawn, {.v = termcmd } },
{ ClkClientWin, MODKEY, Button1, movemouse, {0} },
{ ClkClientWin, MODKEY, Button2, togglefloating, {0} },
{ ClkClientWin, MODKEY, Button3, resizemouse, {0} },
{ ClkTagBar, 0, Button1, view, {0} },
{ ClkTagBar, 0, Button3, toggleview, {0} },
{ ClkTagBar, MODKEY, Button1, tag, {0} },
{ ClkTagBar, MODKEY, Button3, toggletag, {0} },
};

View File

@ -0,0 +1 @@
/etc/portage/savedconfig/x11-wm/dwm-6.1-r1

View File

@ -0,0 +1,139 @@
/* See LICENSE file for copyright and license details. */
/* appearance */
static const unsigned int borderpx = 2; /* border pixel of windows */
static const unsigned int snap = 32; /* snap pixel */
static const unsigned int gappih = 6; /* horiz inner gap between windows */
static const unsigned int gappiv = 6; /* vert inner gap between windows */
static const unsigned int gappoh = 6; /* horiz outer gap between windows and screen edge */
static const unsigned int gappov = 6; /* vert outer gap between windows and screen edge */
static const int smartgaps = 1; /* 1 means no outer gap when there is only one window */
static const int showbar = 1; /* 0 means no bar */
static const int topbar = 1; /* 0 means bottom bar */
static const char *fonts[] = { "monospace:size=10" };
static const char dmenufont[] = "monospace:size=10";
static const char col_gray1[] = "#222222";
static const char col_gray2[] = "#444444";
static const char col_gray3[] = "#bbbbbb";
static const char col_gray4[] = "#eeeeee";
static const char col_cyan[] = "#005577";
static const char col_green[] = "#28ef36";
static const char *colors[][3] = {
/* fg bg border */
[SchemeNorm] = { col_gray3, col_gray1, col_gray2 },
[SchemeSel] = { col_gray4, col_cyan, col_cyan },
};
/* tagging */
static const char *tags[] = { "1", "2", "3", "4", "5", "6", "7", "8", "9" };
static const Rule rules[] = {
/* xprop(1):
* WM_CLASS(STRING) = instance, class
* WM_NAME(STRING) = title
*/
/* class instance title tags mask isfloating monitor */
{ "Gimp", NULL, NULL, 0, 1, -1 },
{ "Firefox", NULL, NULL, 1 << 8, 0, -1 },
{ "TelegramDesktop", NULL, NULL, 1 << 6, 0, -1 },
{ "Workrave", NULL, NULL, ~0, 1, -1 },
};
/* layout(s) */
static const float mfact = 0.55; /* factor of master area size [0.05..0.95] */
static const int nmaster = 1; /* number of clients in master area */
static const int resizehints = 1; /* 1 means respect size hints in tiled resizals */
static const Layout layouts[] = {
/* symbol arrange function */
{ "[]=", tile }, /* first entry is default */
{ "><>", NULL }, /* no layout function means floating behavior */
{ "[M]", monocle },
};
/* key definitions */
#define MODKEY Mod1Mask
#define TAGKEYS(KEY,TAG) \
{ MODKEY, KEY, view, {.ui = 1 << TAG} }, \
{ MODKEY|ControlMask, KEY, toggleview, {.ui = 1 << TAG} }, \
{ MODKEY|ShiftMask, KEY, tag, {.ui = 1 << TAG} }, \
{ MODKEY|ControlMask|ShiftMask, KEY, toggletag, {.ui = 1 << TAG} },
/* helper for spawning shell commands in the pre dwm-5.0 fashion */
#define SHCMD(cmd) { .v = (const char*[]){ "/bin/sh", "-c", cmd, NULL } }
/* commands */
static char dmenumon[2] = "0"; /* component of dmenucmd, manipulated in spawn() */
static const char *dmenucmd[] = { "dmenu_run", "-m", dmenumon, "-fn", dmenufont, "-nb", col_gray1, "-nf", col_gray3, "-sb", col_cyan, "-sf", col_gray4, NULL };
static const char *termcmd[] = { "st", NULL };
static Key keys[] = {
/* modifier key function argument */
{ MODKEY, XK_p, spawn, {.v = dmenucmd } },
{ MODKEY|ShiftMask, XK_Return, spawn, {.v = termcmd } },
{ MODKEY, XK_b, togglebar, {0} },
{ MODKEY, XK_j, focusstack, {.i = +1 } },
{ MODKEY, XK_k, focusstack, {.i = -1 } },
{ MODKEY, XK_i, incnmaster, {.i = +1 } },
{ MODKEY, XK_d, incnmaster, {.i = -1 } },
{ MODKEY, XK_h, setmfact, {.f = -0.05} },
{ MODKEY, XK_l, setmfact, {.f = +0.05} },
{ MODKEY|Mod4Mask, XK_h, incrgaps, {.i = +1 } },
{ MODKEY|Mod4Mask, XK_l, incrgaps, {.i = -1 } },
{ MODKEY|Mod4Mask|ShiftMask, XK_h, incrogaps, {.i = +1 } },
{ MODKEY|Mod4Mask|ShiftMask, XK_l, incrogaps, {.i = -1 } },
{ MODKEY|Mod4Mask|ControlMask, XK_h, incrigaps, {.i = +1 } },
{ MODKEY|Mod4Mask|ControlMask, XK_l, incrigaps, {.i = -1 } },
{ MODKEY|Mod4Mask, XK_0, togglegaps, {0} },
{ MODKEY|Mod4Mask|ShiftMask, XK_0, defaultgaps, {0} },
{ MODKEY, XK_y, incrihgaps, {.i = +1 } },
{ MODKEY, XK_o, incrihgaps, {.i = -1 } },
{ MODKEY|ControlMask, XK_y, incrivgaps, {.i = +1 } },
{ MODKEY|ControlMask, XK_o, incrivgaps, {.i = -1 } },
{ MODKEY|Mod4Mask, XK_y, incrohgaps, {.i = +1 } },
{ MODKEY|Mod4Mask, XK_o, incrohgaps, {.i = -1 } },
{ MODKEY|ShiftMask, XK_y, incrovgaps, {.i = +1 } },
{ MODKEY|ShiftMask, XK_o, incrovgaps, {.i = -1 } },
{ MODKEY, XK_Return, zoom, {0} },
{ MODKEY, XK_Tab, view, {0} },
{ MODKEY|ShiftMask, XK_c, killclient, {0} },
{ MODKEY, XK_t, setlayout, {.v = &layouts[0]} },
{ MODKEY, XK_f, setlayout, {.v = &layouts[1]} },
{ MODKEY, XK_m, setlayout, {.v = &layouts[2]} },
{ MODKEY, XK_space, setlayout, {0} },
{ MODKEY|ShiftMask, XK_space, togglefloating, {0} },
{ MODKEY, XK_0, view, {.ui = ~0 } },
{ MODKEY|ShiftMask, XK_0, tag, {.ui = ~0 } },
{ MODKEY, XK_comma, focusmon, {.i = -1 } },
{ MODKEY, XK_period, focusmon, {.i = +1 } },
{ MODKEY|ShiftMask, XK_comma, tagmon, {.i = -1 } },
{ MODKEY|ShiftMask, XK_period, tagmon, {.i = +1 } },
TAGKEYS( XK_1, 0)
TAGKEYS( XK_2, 1)
TAGKEYS( XK_3, 2)
TAGKEYS( XK_4, 3)
TAGKEYS( XK_5, 4)
TAGKEYS( XK_6, 5)
TAGKEYS( XK_7, 6)
TAGKEYS( XK_8, 7)
TAGKEYS( XK_9, 8)
{ MODKEY|ShiftMask, XK_q, quit, {0} },
};
/* button definitions */
/* click can be ClkTagBar, ClkLtSymbol, ClkStatusText, ClkWinTitle, ClkClientWin, or ClkRootWin */
static Button buttons[] = {
/* click event mask button function argument */
{ ClkLtSymbol, 0, Button1, setlayout, {0} },
{ ClkLtSymbol, 0, Button3, setlayout, {.v = &layouts[2]} },
{ ClkWinTitle, 0, Button2, zoom, {0} },
{ ClkStatusText, 0, Button2, spawn, {.v = termcmd } },
{ ClkClientWin, MODKEY, Button1, movemouse, {0} },
{ ClkClientWin, MODKEY, Button2, togglefloating, {0} },
{ ClkClientWin, MODKEY, Button3, resizemouse, {0} },
{ ClkTagBar, 0, Button1, view, {0} },
{ ClkTagBar, 0, Button3, toggleview, {0} },
{ ClkTagBar, MODKEY, Button1, tag, {0} },
{ ClkTagBar, MODKEY, Button3, toggletag, {0} },
};

View File

@ -0,0 +1 @@
/etc/portage/savedconfig/x11-wm/dwm-6.2

View File

@ -3,7 +3,9 @@
# Not working if there is no navigation bar
xdotool key ctrl+l
xdotool key ctrl+c
# xdotool type yy
# link="$(xclip -o -selection clipboard | sed -E 's|([^&]*)(&)(.*)|\1|')"
link="$(xclip -o | sed -E 's|([^&]*)(&)(.*)|\1|')"
dash $SCRIPTS/tube.sh "$link"