This commit is contained in:
Tyler Starr 2022-02-11 17:56:52 -08:00
parent a24355f618
commit dad57ba054
51 changed files with 235 additions and 770 deletions

View File

@ -1,60 +0,0 @@
# Fail if not in Windows Subsystem for Linux
function DetectWSL() {
grep -i -q microsoft /proc/version &>/dev/null
return $?
}
# Fail if not in a container / virtual machine / WSL
function DetectVM() {
# https://www.freedesktop.org/software/systemd/man/systemd-detect-virt.html
systemd-detect-virt --quiet &>/dev/null
return $?
}
# Fail if not in VirtualBox
function DetectVirtualBox() {
systemd-detect-virt | grep -i -q oracle
return $?
}
# Fail if not on an AMD processor
function DetectAMD() {
grep -i -q AMD /proc/cpuinfo &>/dev/null
return $?
}
# Fail if not on an Intel processor
function DetectIntel() {
grep -i -q Intel /proc/cpuinfo &>/dev/null
return $?
}
# Fail if no NVME drives are found
function DetectNVME() {
find /dev -maxdepth 1 -name '*nvme*' | grep -i -q nvme &>/dev/null
return $?
}
# Fail if no AMD GPU is found
function DetectAMDGPU() {
lspci -v | grep -i 'amd/ati' | grep -i -q 'vga' &>/dev/null
return $?
}
# Fail if no Intel GPU is found
function DetectIntelGPU() {
lspci -v | grep -i 'intel' | grep -i -q 'vga' &>/dev/null
return $?
}
# Fail if no Nvidia GPU is found
function DetectNvidia() {
lspci -v | grep -i -q nvidia &>/dev/null
return $?
}
# Fail if no encrypted devices are listed in /etc/fstab
function DetectCrypt() {
grep -q '/dev/mapper/' /etc/fstab
return $?
}

View File

@ -1,33 +0,0 @@
# Boot binaries
IgnorePath '/boot/*'
# Certificate databases
IgnorePath '/etc/ca-certificates/extracted/*'
IgnorePath '/etc/ssl/certs/*'
IgnorePath '/etc/pacman.d/gnupg/*'
# Cache and generated files
IgnorePath '/etc/*.cache'
IgnorePath '/etc/*.gen'
# Password files
IgnorePath '/etc/*shadow*'
IgnorePath '/usr/share/*'
# Configuration database
IgnorePath '/etc/dconf'
# Mount files
IgnorePath '*/.updated'
IgnorePath '*/lost+found/*'
# Opt packages (check that they don't include config)
IgnorePath '/opt/*'
# Binary libraries
IgnorePath '/usr/lib/*'
# Local binaries
IgnorePath '/usr/local/include/*'
IgnorePath '/usr/local/lib/*'
IgnorePath '/usr/local/share/applications/mimeinfo.cache'
# Var databases, logs, swap and temp files
IgnorePath '/var/db/sudo'
IgnorePath '/var/lib/*'
IgnorePath '/var/log/*'
IgnorePath '/var/swap*'
IgnorePath '/var/tmp/*'
# BTRFS snapshots
IgnorePath '/.snapshots/*'

View File

@ -1,97 +0,0 @@
# Minimal system
AddPackage archlinux-keyring # Arch Linux PGP keyring
AddPackage base # Minimal package set to define a basic Arch Linux installation
CreateFile /etc/ld.so.preload >/dev/null
CopyFile /etc/locale.conf
CopyFile /etc/locale.gen
CreateLink /etc/localtime /usr/share/zoneinfo/America/Los_Angeles
# Package management
AddPackageGroup base-devel # Required for building AUR packages
AddPackage --foreign aconfmgr-git # A configuration manager for Arch Linux
AddPackage pacman-contrib # Contributed scripts and tools for pacman systems
AddPackage --foreign paru # Feature packed AUR helper
AddPackage pkgfile # a pacman .files metadata explorer
AddPackage reflector # A Python 3 module and script to retrieve and filter the latest Pacman mirror list.
CopyFile /etc/makepkg.conf
CopyFile /etc/pacman.conf
CopyFile /etc/group
CopyFile /etc/group-
CopyFile /etc/passwd
CopyFile /etc/passwd-
CopyFile /etc/sudoers
# Default kernel
AddPackage linux # The Linux kernel and modules
AddPackage linux-headers # Headers and scripts for building modules for the Linux kernel
# Zen kernel
AddPackage linux-zen # The Linux kernel and modules
AddPackage linux-zen-headers # Headers and scripts for building modules for the Linux kernel
# Backup kernel
AddPackage linux-lts # The LTS Linux kernel and modules
AddPackage linux-lts-headers # Headers and scripts for building modules for the LTS Linux kernel
# Boot
AddPackage --foreign systemd-boot-pacman-hook # Pacman hook to upgrade systemd-boot after systemd upgrade.
# Firmware
AddPackage linux-firmware # Firmware files for Linux
# EFI filesystem support
AddPackage exfat-utils # Utilities for exFAT file system
# Main filesystem support
AddPackage e2fsprogs # Ext2/3/4 filesystem utilities
if ! DetectVM; then
# Processor support
DetectAMD && AddPackage amd-ucode # Microcode update image for AMD CPUs
DetectIntel && AddPackage intel-ucode # Microcode update files for Intel CPUs
# Hardware support
AddPackage fwupd # Simple daemon to allow session software to update firmware
DetectNVME && AddPackage nvme-cli # NVM-Express user space tooling for Linux
# Extra file system support... just in case
AddPackage afpfs-ng # A client for the Apple Filing Protocol (AFP)
AddPackage btrfs-progs # Btrfs filesystem utilities
AddPackage dosfstools # DOS filesystem utilities
AddPackage f2fs-tools # Tools for Flash-Friendly File System (F2FS)
AddPackage jfsutils # JFS filesystem utilities
AddPackage kbfs # The Keybase filesystem
AddPackage mtools # A collection of utilities to access MS-DOS disks
AddPackage mtpfs # A FUSE filesystem that supports reading and writing from any MTP device
AddPackage nilfs-utils # A log-structured file system supporting continuous snapshotting (userspace utils)
AddPackage ntfs-3g # NTFS filesystem driver and utilities
AddPackage reiserfsprogs # Reiserfs utilities
AddPackage squashfs-tools # Tools for squashfs, a highly compressed read-only filesystem for Linux.
AddPackage sysfsutils # System Utilities Based on Sysfs
AddPackage truecrypt # Free open-source cross-platform disk encryption software
AddPackage xfsprogs # XFS filesystem utilities
# Sensors
AddPackage lm_sensors # Collection of user space tools for general SMBus access and hardware monitoring
CreateLink /etc/systemd/system/multi-user.target.wants/lm_sensors.service /usr/lib/systemd/system/lm_sensors.service
fi
# Reduce timeouts to sane values
cat >>"$(GetPackageOriginalFile systemd /etc/systemd/system.conf)" <<-EOF
RuntimeWatchdogSec=10min
ShutdownWatchdogSec=10min
DefaultTimeoutStartSec=30s
DefaultTimeoutStopSec=30s
EOF
# Arch linux enables these GPG agent systemd user sockets by default
CreateLink /etc/systemd/user/sockets.target.wants/dirmngr.socket /usr/lib/systemd/user/dirmngr.socket
CreateLink /etc/systemd/user/sockets.target.wants/gpg-agent-browser.socket /usr/lib/systemd/user/gpg-agent-browser.socket
CreateLink /etc/systemd/user/sockets.target.wants/gpg-agent-extra.socket /usr/lib/systemd/user/gpg-agent-extra.socket
CreateLink /etc/systemd/user/sockets.target.wants/gpg-agent.socket /usr/lib/systemd/user/gpg-agent.socket
CreateLink /etc/systemd/user/sockets.target.wants/gpg-agent-ssh.socket /usr/lib/systemd/user/gpg-agent-ssh.socket
# Network Time Protocol
CreateLink /etc/systemd/system/dbus-org.freedesktop.timesync1.service /usr/lib/systemd/system/systemd-timesyncd.service
CreateLink /etc/systemd/system/sysinit.target.wants/systemd-timesyncd.service /usr/lib/systemd/system/systemd-timesyncd.service

View File

@ -1,34 +0,0 @@
# Firewall
CreateLink /etc/systemd/system/multi-user.target.wants/iptables.service /usr/lib/systemd/system/iptables.service
# NetworkManager
AddPackage networkmanager # Network connection manager and user applications
CreateLink /etc/systemd/system/dbus-org.freedesktop.NetworkManager.service /usr/lib/systemd/system/NetworkManager.service
CreateLink /etc/systemd/system/dbus-org.freedesktop.nm-dispatcher.service /usr/lib/systemd/system/NetworkManager-dispatcher.service
CreateLink /etc/systemd/system/multi-user.target.wants/NetworkManager.service /usr/lib/systemd/system/NetworkManager.service
# Tools
AddPackage iproute2 # IP Routing Utilities
AddPackage zerotier-one # Creates virtual Ethernet networks of almost unlimited size.
AddPackage wireguard-tools # next generation secure network tunnel - tools for configuration
# Hosts file
cat >>"$(GetPackageOriginalFile filesystem /etc/hosts)" <<-EOF
127.0.0.1 localhost $HOSTNAME
::1 localhost $HOSTNAME
EOF
# SSH
AddPackage sshfs # FUSE client based on the SSH File Transfer Protocol
CreateLink /etc/systemd/system/multi-user.target.wants/sshd.service /usr/lib/systemd/system/sshd.service
CreateLink /etc/systemd/user/sockets.target.wants/gcr-ssh-agent.socket /usr/lib/systemd/user/gcr-ssh-agent.socket
## SSH server configuration hardening
sshd_conf="$(GetPackageOriginalFile openssh /etc/ssh/sshd_config)"
sed -i 's/^#LoginGraceTime.*$/LoginGraceTime 30s/g' "$sshd_conf"
sed -i 's/^#PermitRootLogin.*$/PermitRootLogin no/g' "$sshd_conf"
sed -i 's/^MaxAuthTries.*$/MaxAuthTries 3/g' "$sshd_conf"
sed -i 's/^MaxSessions.*$/MaxSessions 5/g' "$sshd_conf"
sed -i 's/^#PasswordAuthentication.*$/PasswordAuthentication no/g' "$sshd_conf"
sed -i 's/^KbdInteractiveAuthentication.*$/KbdInteractiveAuthentication no/g' "$sshd_conf"
sed -i 's/^AllowAgentForwarding.*$/AllowAgentForwarding no/g' "$sshd_conf"

View File

@ -1,9 +0,0 @@
# Nvidia Drivers
AddPackage lib32-nvidia-utils # NVIDIA drivers utilities 32 bit
AddPackage nvidia-dkms # NVIDIA drivers - module sources
AddPackage nvidia-settings # Tool for configuring the NVIDIA graphics driver
AddPackage nvidia-utils # NVIDIA drivers utilities
# Android Phone
AddPackage android-file-transfer # Android MTP client with minimalistic UI
AddPackage kdeconnect # Adds communication between KDE and your smartphone

View File

@ -1,23 +0,0 @@
if ! DetectVM; then
AddPackage libvirt # API for controlling virtualization engines (openvz,kvm,qemu,virtualbox,xen,etc)
AddPackage dmidecode # OPTIONAL DEPENDENCY (libvirt)
AddPackage dnsmasq # OPTIONAL DEPENDENCY (libvirt)
AddPackage --foreign ebtables # OPTIONAL DEPENDENCY (libvirt)
AddPackage gettext # OPTIONAL DEPENDENCY (libvirt)
AddPackage lvm2 # OPTIONAL DEPENDENCY (libvirt)
AddPackage openbsd-netcat # OPTIONAL DEPENDENCY (libvirt)
AddPackage qemu # OPTIONAL DEPENDENCY (libvirt)
AddPackage edk2-ovmf # Firmware for Virtual Machines (x86_64, i686)
AddPackage qemu-arch-extra # QEMU for foreign architectures
AddPackage swtpm # Libtpms-based TPM emulator with socket, character device, and Linux CUSE interface
AddPackage virt-manager # Desktop user interface for managing virtual machines
AddPackage virt-viewer # A lightweight interface for interacting with the graphical display of virtualized guest OS.
AddPackage --foreign virtio-win # virtio drivers for Windows (2000, XP, Vista, 7, 8, 10) guests and floppy images for Windows XP
CreateLink /etc/systemd/system/multi-user.target.wants/libvirtd.service /usr/lib/systemd/system/libvirtd.service
CreateLink /etc/systemd/system/sockets.target.wants/libvirtd-ro.socket /usr/lib/systemd/system/libvirtd-ro.socket
CreateLink /etc/systemd/system/sockets.target.wants/libvirtd.socket /usr/lib/systemd/system/libvirtd.socket
CreateLink /etc/systemd/system/sockets.target.wants/virtlockd.socket /usr/lib/systemd/system/virtlockd.socket
CreateLink /etc/systemd/system/sockets.target.wants/virtlogd.socket /usr/lib/systemd/system/virtlogd.socket
fi

View File

@ -1,51 +0,0 @@
# Terminal Emulators
AddPackage alacritty # A cross-platform, GPU-accelerated terminal emulator
AddPackage screen # Full-screen window manager that multiplexes a physical terminal
AddPackage zsh # A very advanced and programmable command interpreter (shell) for UNIX
# System Monitor
AddPackage bashtop # Linux resource monitor
# Build Tools
AddPackage autoconf # A GNU tool for automatically configuring source code
AddPackage automake # A GNU tool for automatically creating Makefiles
AddPackage binutils # A set of programs to assemble and manipulate binary and object files
AddPackage pkgconf # Package compiler and linker metadata toolkit
# Desktop Tools
AddPackage imwheel # Mouse wheel configuration tool for XFree86/Xorg
# Gaming
AddPackage gamemode # A daemon/lib combo that allows games to request a set of optimisations be temporarily applied to the host OS
# Dev Tools
AddPackage git # the fast distributed version control system
#AddPackage --foreign platformio # A cross-platform code builder and library manager
# Archives
AddPackage arj # Free and portable clone of the ARJ archiver
AddPackage cabextract # A program to extract Microsoft cabinet (.CAB) files
AddPackage cpio # A tool to copy files into or out of a cpio or tar archive
AddPackage lhasa # Free LZH/LHA archive tool
AddPackage lrzip # Multi-threaded compression with rzip/lzma, lzo, and zpaq
AddPackage pax # Portable Archive Interchange - the POSIX standard archive tool for cpio and tar formats
AddPackage p7zip # Command-line file archiver with high compression ratio
AddPackage rpmextract # Script to convert or extract RPM archives (contains rpm2cpio)
AddPackage sharutils # Makes so-called shell archives out of many files
AddPackage unace # An extraction tool for the proprietary ace archive format
AddPackage unrar # The RAR uncompression program
AddPackage unzip # For extracting and viewing files in .zip archives
AddPackage zip # Compressor/archiver for creating and modifying zipfiles
# $EDITOR
AddPackage neovim # Fork of Vim aiming to improve user experience, plugins, and GUIs
#AddPackage --foreign emacs-native-comp-git-enhanced # GNU Emacs. Development master branch.
# File Management
AddPackage rsync # A fast and versatile file copying tool for remote and local files
AddPackage smbclient # Tools to access a server's filespace and printers via SMB
AddPackage trash-cli # Command line trashcan (recycle bin) interface
AddPackage vifm # A file manager with curses interface, which provides Vi[m]-like environment
# Dotfile Management
AddPackage stow # Manage installation of multiple softwares in the same directory tree

View File

@ -1,12 +0,0 @@
if ! DetectVM; then # No audio needed in VMs
AddPackage alsa-utils # Advanced Linux Sound Architecture - Utilities
AddPackage pipewire # Low-latency audio/video router and processor
AddPackage pipewire-alsa # Low-latency audio/video router and processor - ALSA configuration
AddPackage pipewire-pulse # Low-latency audio/video router and processor - PulseAudio replacement
AddPackage wireplumber # Session / policy manager implementation for PipeWire
CreateLink /etc/systemd/user/pipewire.service.wants/wireplumber.service /usr/lib/systemd/user/wireplumber.service
CreateLink /etc/systemd/user/pipewire-session-manager.service /usr/lib/systemd/user/wireplumber.service
CreateLink /etc/systemd/user/sockets.target.wants/pipewire.socket /usr/lib/systemd/user/pipewire.socket
CreateLink /etc/systemd/user/sockets.target.wants/pipewire-pulse.socket /usr/lib/systemd/user/pipewire-pulse.socket
fi

View File

@ -1,17 +0,0 @@
AddPackage xorg-server # Xorg X server
AddPackage xorg-server-xephyr # A nested X server that runs as an X application
AddPackage xorg-xev # Print contents of X events
AddPackage xorg-xinit # X.Org initialisation program
AddPackage xorg-xsetroot # Classic X utility to set your root window background to a given pattern or color
AddPackage xorg-xwayland # run X clients under wayland
AddPackage picom # X compositor that may fix tearing issues
AddPackage rofi # A window switcher, application launcher and dmenu replacement
AddPackage lxappearance # Feature-rich GTK+ theme switcher of the LXDE Desktop
AddPackage lxsession # Lightweight X11 session manager
AddPackage flameshot # Powerful yet simple to use screenshot software
AddPackage feh # Fast and light imlib2-based image viewer
AddPackage dunst # Customizable and lightweight notification-daemon
AddPackage xarchiver # GTK+ frontend to various command line archivers
AddPackage --foreign xmobar-git # Minimalistic Text Based Status Bar
AddPackage --foreign xmonad-contrib-git # Add-ons for xmonad
AddPackage --foreign xmonad-git # Lightweight X11 tiled window manager written in Haskell

View File

@ -1 +0,0 @@
AddPackage --foreign nerd-fonts-complete # Iconic font aggregator, collection, & patcher. 3,600+ icons, 50+ patched fonts.

View File

@ -1,4 +0,0 @@
# Files
AddPackage syncthing # Open Source Continuous Replication / Cluster Synchronization Thing
CreateLink /etc/systemd/system/multi-user.target.wants/syncthing@tstarr.service /usr/lib/systemd/system/syncthing@.service
AddPackage udiskie # Removable disk automounter using udisks

View File

@ -1,13 +0,0 @@
AddPackage discord # All-in-one voice and text chat for gamers that's free and secure.
AddPackage firefox # Standalone web browser from mozilla.org
AddPackage gparted # A Partition Magic clone, frontend to GNU Parted
AddPackage keepassxc # Cross-platform community-driven port of Keepass password manager
AddPackage lutris # Open Gaming Platform
AddPackage mpv # a free, open source, and cross-platform media player
AddPackage nitrogen # Background browser and setter for X windows
AddPackage openscad # The programmers solid 3D CAD modeller
AddPackage pcmanfm # Extremely fast and lightweight file manager
AddPackage steam # Valve's digital software delivery system
AddPackage wine-staging # A compatibility layer for running Windows programs - Staging branch
#AddPackage --foreign brave-bin # Web browser that blocks ads and trackers by default (binary release)
#AddPackage --foreign superslicer-prerelease-bin # G-code generator for 3D printers (Creality, RepRap, Makerbot, Ultimaker etc.) (binary AppImage)

View File

@ -1,2 +0,0 @@
root:x:0:root
sudo:x:1000:tstarr

View File

@ -1,2 +0,0 @@
root:x:0:root
sudo:x:1000:

View File

@ -1 +0,0 @@
LANG=en_US.UTF-8

View File

@ -1 +0,0 @@
en_US.UTF-8 UTF-8

View File

@ -1,158 +0,0 @@
#!/hint/bash
#
# /etc/makepkg.conf
#
#########################################################################
# SOURCE ACQUISITION
#########################################################################
#
#-- The download utilities that makepkg should use to acquire sources
# Format: 'protocol::agent'
DLAGENTS=('file::/usr/bin/curl -qgC - -o %o %u'
'ftp::/usr/bin/curl -qgfC - --ftp-pasv --retry 3 --retry-delay 3 -o %o %u'
'http::/usr/bin/curl -qgb "" -fLC - --retry 3 --retry-delay 3 -o %o %u'
'https::/usr/bin/curl -qgb "" -fLC - --retry 3 --retry-delay 3 -o %o %u'
'rsync::/usr/bin/rsync --no-motd -z %u %o'
'scp::/usr/bin/scp -C %u %o')
# Other common tools:
# /usr/bin/snarf
# /usr/bin/lftpget -c
# /usr/bin/wget
#-- The package required by makepkg to download VCS sources
# Format: 'protocol::package'
VCSCLIENTS=('bzr::bzr'
'fossil::fossil'
'git::git'
'hg::mercurial'
'svn::subversion')
#########################################################################
# ARCHITECTURE, COMPILE FLAGS
#########################################################################
#
CARCH="x86_64"
CHOST="x86_64-pc-linux-gnu"
#-- Compiler and Linker Flags
#CPPFLAGS=""
CFLAGS="-march=x86-64 -mtune=generic -O2 -pipe -fno-plt -fexceptions \
-Wp,-D_FORTIFY_SOURCE=2 -Wformat -Werror=format-security \
-fstack-clash-protection -fcf-protection"
CXXFLAGS="$CFLAGS -Wp,-D_GLIBCXX_ASSERTIONS"
LDFLAGS="-Wl,-O1,--sort-common,--as-needed,-z,relro,-z,now"
#RUSTFLAGS="-C opt-level=2"
#-- Make Flags: change this for DistCC/SMP systems
MAKEFLAGS="-j8"
#-- Debugging flags
DEBUG_CFLAGS="-g -fvar-tracking-assignments"
DEBUG_CXXFLAGS="-g -fvar-tracking-assignments"
#DEBUG_RUSTFLAGS="-C debuginfo=2"
#########################################################################
# BUILD ENVIRONMENT
#########################################################################
#
# Makepkg defaults: BUILDENV=(!distcc !color !ccache check !sign)
# A negated environment option will do the opposite of the comments below.
#
#-- distcc: Use the Distributed C/C++/ObjC compiler
#-- color: Colorize output messages
#-- ccache: Use ccache to cache compilation
#-- check: Run the check() function if present in the PKGBUILD
#-- sign: Generate PGP signature file
#
BUILDENV=(!distcc color !ccache check !sign)
#
#-- If using DistCC, your MAKEFLAGS will also need modification. In addition,
#-- specify a space-delimited list of hosts running in the DistCC cluster.
#DISTCC_HOSTS=""
#
#-- Specify a directory for package building.
#BUILDDIR=/tmp/makepkg
#########################################################################
# GLOBAL PACKAGE OPTIONS
# These are default values for the options=() settings
#########################################################################
#
# Makepkg defaults: OPTIONS=(!strip docs libtool staticlibs emptydirs !zipman !purge !debug !lto)
# A negated option will do the opposite of the comments below.
#
#-- strip: Strip symbols from binaries/libraries
#-- docs: Save doc directories specified by DOC_DIRS
#-- libtool: Leave libtool (.la) files in packages
#-- staticlibs: Leave static library (.a) files in packages
#-- emptydirs: Leave empty directories in packages
#-- zipman: Compress manual (man and info) pages in MAN_DIRS with gzip
#-- purge: Remove files specified by PURGE_TARGETS
#-- debug: Add debugging flags as specified in DEBUG_* variables
#-- lto: Add compile flags for building with link time optimization
#
OPTIONS=(strip docs !libtool !staticlibs emptydirs zipman purge !debug !lto)
#-- File integrity checks to use. Valid: md5, sha1, sha224, sha256, sha384, sha512, b2
INTEGRITY_CHECK=(sha256)
#-- Options to be used when stripping binaries. See `man strip' for details.
STRIP_BINARIES="--strip-all"
#-- Options to be used when stripping shared libraries. See `man strip' for details.
STRIP_SHARED="--strip-unneeded"
#-- Options to be used when stripping static libraries. See `man strip' for details.
STRIP_STATIC="--strip-debug"
#-- Manual (man and info) directories to compress (if zipman is specified)
MAN_DIRS=({usr{,/local}{,/share},opt/*}/{man,info})
#-- Doc directories to remove (if !docs is specified)
DOC_DIRS=(usr/{,local/}{,share/}{doc,gtk-doc} opt/*/{doc,gtk-doc})
#-- Files to be removed from all packages (if purge is specified)
PURGE_TARGETS=(usr/{,share}/info/dir .packlist *.pod)
#-- Directory to store source code in for debug packages
DBGSRCDIR="/usr/src/debug"
#########################################################################
# PACKAGE OUTPUT
#########################################################################
#
# Default: put built package and cached source in build directory
#
#-- Destination: specify a fixed directory where all packages will be placed
#PKGDEST=/home/packages
#-- Source cache: specify a fixed directory where source files will be cached
#SRCDEST=/home/sources
#-- Source packages: specify a fixed directory where all src packages will be placed
#SRCPKGDEST=/home/srcpackages
#-- Log files: specify a fixed directory where all log files will be placed
#LOGDEST=/home/makepkglogs
#-- Packager: name/email of the person or organization building packages
#PACKAGER="John Doe <john@doe.com>"
#-- Specify a key to use for package signing
#GPGKEY=""
#########################################################################
# COMPRESSION DEFAULTS
#########################################################################
#
COMPRESSGZ=(gzip -c -f -n)
COMPRESSBZ2=(bzip2 -c -f)
COMPRESSXZ=(xz -c -z -)
COMPRESSZST=(zstd -c -z -q -)
COMPRESSLRZ=(lrzip -q)
COMPRESSLZO=(lzop -q)
COMPRESSZ=(compress -c -f)
COMPRESSLZ4=(lz4 -q)
COMPRESSLZ=(lzip -c -f)
#########################################################################
# EXTENSION DEFAULTS
#########################################################################
#
PKGEXT='.pkg.tar.zst'
SRCEXT='.src.tar.gz'
#########################################################################
# OTHER
#########################################################################
#
#-- Command used to run pacman as root, instead of trying sudo and su
#PACMAN_AUTH=()

View File

@ -1,100 +0,0 @@
#
# /etc/pacman.conf
#
# See the pacman.conf(5) manpage for option and repository directives
#
# GENERAL OPTIONS
#
[options]
# The following paths are commented out with their default values listed.
# If you wish to use different paths, uncomment and update the paths.
#RootDir = /
#DBPath = /var/lib/pacman/
#CacheDir = /var/cache/pacman/pkg/
#LogFile = /var/log/pacman.log
#GPGDir = /etc/pacman.d/gnupg/
#HookDir = /etc/pacman.d/hooks/
HoldPkg = pacman glibc
#XferCommand = /usr/bin/curl -L -C - -f -o %o %u
#XferCommand = /usr/bin/wget --passive-ftp -c -O %o %u
#CleanMethod = KeepInstalled
Architecture = auto
# Pacman won't upgrade packages listed in IgnorePkg and members of IgnoreGroup
#IgnorePkg =
#IgnoreGroup =
#NoUpgrade =
#NoExtract =
# Misc options
#UseSyslog
#Color
#NoProgressBar
CheckSpace
#VerbosePkgLists
#ParallelDownloads = 5
# By default, pacman accepts packages signed by keys that its local keyring
# trusts (see pacman-key and its man page), as well as unsigned packages.
SigLevel = Required DatabaseOptional
LocalFileSigLevel = Optional
#RemoteFileSigLevel = Required
# NOTE: You must run `pacman-key --init` before first using pacman; the local
# keyring can then be populated with the keys of all official Arch Linux
# packagers with `pacman-key --populate archlinux`.
#
# REPOSITORIES
# - can be defined here or included from another file
# - pacman will search repositories in the order defined here
# - local/custom mirrors can be added here or in separate files
# - repositories listed first will take precedence when packages
# have identical names, regardless of version number
# - URLs will have $repo replaced by the name of the current repo
# - URLs will have $arch replaced by the name of the architecture
#
# Repository entries are of the format:
# [repo-name]
# Server = ServerName
# Include = IncludePath
#
# The header [repo-name] is crucial - it must be present and
# uncommented to enable the repo.
#
# The testing repositories are disabled by default. To enable, uncomment the
# repo name header and Include lines. You can add preferred servers immediately
# after the header, and they will be used before the default mirrors.
#[testing]
#Include = /etc/pacman.d/mirrorlist
[core]
Include = /etc/pacman.d/mirrorlist
[extra]
Include = /etc/pacman.d/mirrorlist
#[community-testing]
#Include = /etc/pacman.d/mirrorlist
[community]
Include = /etc/pacman.d/mirrorlist
# If you want to run 32 bit applications on your x86_64 system,
# enable the multilib repositories as required here.
#[multilib-testing]
#Include = /etc/pacman.d/mirrorlist
[multilib]
Include = /etc/pacman.d/mirrorlist
# An example of a custom package repository. See the pacman manpage for
# tips on creating your own repositories.
#[custom]
#SigLevel = Optional TrustAll
#Server = file:///home/custompkgs

View File

@ -1,2 +0,0 @@
root:x:0:0::/root:/bin/bash
tstarr:x:1000:1001::/home/tstarr:/bin/bash

View File

@ -1 +0,0 @@
root:x:0:0::/root:/bin/bash

View File

@ -1,2 +0,0 @@
nameserver 8.8.8.8
nameserver 8.8.4.4

View File

@ -1,96 +0,0 @@
## sudoers file.
##
## This file MUST be edited with the 'visudo' command as root.
## Failure to use 'visudo' may result in syntax or file permission errors
## that prevent sudo from running.
##
## See the sudoers man page for the details on how to write a sudoers file.
##
##
## Host alias specification
##
## Groups of machines. These may include host names (optionally with wildcards),
## IP addresses, network numbers or netgroups.
# Host_Alias WEBSERVERS = www1, www2, www3
##
## User alias specification
##
## Groups of users. These may consist of user names, uids, Unix groups,
## or netgroups.
# User_Alias ADMINS = millert, dowdy, mikef
##
## Cmnd alias specification
##
## Groups of commands. Often used to group related commands together.
# Cmnd_Alias PROCESSES = /usr/bin/nice, /bin/kill, /usr/bin/renice, \
# /usr/bin/pkill, /usr/bin/top
# Cmnd_Alias REBOOT = /sbin/halt, /sbin/reboot, /sbin/poweroff
##
## Defaults specification
##
## You may wish to keep some of the following environment variables
## when running commands via sudo.
##
## Locale settings
# Defaults env_keep += "LANG LANGUAGE LINGUAS LC_* _XKB_CHARSET"
##
## Run X applications through sudo; HOME is used to find the
## .Xauthority file. Note that other programs use HOME to find
## configuration files and this may lead to privilege escalation!
# Defaults env_keep += "HOME"
##
## X11 resource path settings
# Defaults env_keep += "XAPPLRESDIR XFILESEARCHPATH XUSERFILESEARCHPATH"
##
## Desktop path settings
# Defaults env_keep += "QTDIR KDEDIR"
##
## Allow sudo-run commands to inherit the callers' ConsoleKit session
# Defaults env_keep += "XDG_SESSION_COOKIE"
##
## Uncomment to enable special input methods. Care should be taken as
## this may allow users to subvert the command being run via sudo.
# Defaults env_keep += "XMODIFIERS GTK_IM_MODULE QT_IM_MODULE QT_IM_SWITCHER"
##
## Uncomment to use a hard-coded PATH instead of the user's to find commands
# Defaults secure_path="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"
##
## Uncomment to send mail if the user does not enter the correct password.
# Defaults mail_badpass
##
## Uncomment to enable logging of a command's output, except for
## sudoreplay and reboot. Use sudoreplay to play back logged sessions.
# Defaults log_output
# Defaults!/usr/bin/sudoreplay !log_output
# Defaults!/usr/local/bin/sudoreplay !log_output
# Defaults!REBOOT !log_output
##
## Runas alias specification
##
##
## User privilege specification
##
root ALL=(ALL) ALL
## Uncomment to allow members of group wheel to execute any command
# %wheel ALL=(ALL) ALL
## Same thing without a password
# %wheel ALL=(ALL) NOPASSWD: ALL
## Uncomment to allow members of group sudo to execute any command
%sudo ALL=(ALL) ALL
## Uncomment to allow any user to run sudo if they know the password
## of the user they are running the command as (root by default).
# Defaults targetpw # Ask for the password of the target user
# ALL ALL=(ALL) ALL # WARNING: only use this together with 'Defaults targetpw'
## Read drop-in files from /etc/sudoers.d
@includedir /etc/sudoers.d

View File

@ -8,19 +8,20 @@ hc() {
hc emit_hook reload
xsetroot -solid '#5A8E3A'
xsetroot -solid '#FFFFFF'
# remove all existing keybindings
hc keyunbind --all
# keybindings
# if you have a super key you will be much happier with Mod set to Mod4
Mod=Mod1 # Use alt as the main modifier
#Mod=Mod4 # Use the super key as the main modifier
#Mod=Mod1 # Use alt as the main modifier
Mod=Mod4 # Use the super key as the main modifier
hc keybind $Mod-Shift-q quit
hc keybind $Mod-Shift-r reload
hc keybind $Mod-Shift-c close
TERMINAL="alacritty"
hc keybind $Mod-Return spawn "${TERMINAL:-xterm}" # use your $TERMINAL with xterm as fallback
# basic movement in tiling and floating mode
@ -109,6 +110,8 @@ hc keybind $Mod-Shift-Tab cycle_all -1
hc keybind $Mod-c cycle
hc keybind $Mod-i jumpto urgent
# rofi
# theme
hc attr theme.tiling.reset 1
hc attr theme.floating.reset 1
@ -165,7 +168,6 @@ hc rule floatplacement=smart
hc rule windowtype~'_NET_WM_WINDOW_TYPE_(DIALOG|UTILITY|SPLASH)' floating=on
hc rule windowtype='_NET_WM_WINDOW_TYPE_DIALOG' focus=on
hc rule windowtype~'_NET_WM_WINDOW_TYPE_(NOTIFICATION|DOCK|DESKTOP)' manage=off
hc set tree_style '╾│ ├└╼─┐'
# unlock, just to be sure
@ -174,7 +176,7 @@ hc unlock
# do multi monitor setup here, e.g.:
# hc set_monitors 1280x1024+0+0 1280x1024+1280+0
# or simply:
# hc detect_monitors
hc detect_monitors
# find the panel
panel=~/.config/herbstluftwm/panel.sh

View File

@ -0,0 +1,3 @@
reflector
ntfs-3g
lm_sensors

View File

@ -0,0 +1,28 @@
alacritty # A cross-platform, GPU-accelerated terminal emulator
screen # Full-screen window manager that multiplexes a physical terminal
zsh # A very advanced and programmable command interpreter (shell) for UNIX
bashtop # Linux resource monitor
imwheel # Mouse wheel configuration tool for XFree86/Xorg
gamemode # A daemon/lib combo that allows games to request a set of optimisations be temporarily applied to the host OS
git # the fast distributed version control system
platformio # A cross-platform code builder and library manager
arj # Free and portable clone of the ARJ archiver
cabextract # A program to extract Microsoft cabinet (.CAB) files
cpio # A tool to copy files into or out of a cpio or tar archive
lhasa # Free LZH/LHA archive tool
lrzip # Multi-threaded compression with rzip/lzma, lzo, and zpaq
pax # Portable Archive Interchange - the POSIX standard archive tool for cpio and tar formats
p7zip # Command-line file archiver with high compression ratio
rpmextract # Script to convert or extract RPM archives (contains rpm2cpio)
sharutils # Makes so-called shell archives out of many files
unace # An extraction tool for the proprietary ace archive format
unrar # The RAR uncompression program
unzip # For extracting and viewing files in .zip archives
zip # Compressor/archiver for creating and modifying zipfiles
neovim # Fork of Vim aiming to improve user experience, plugins, and GUIs
emacs # GNU Emacs.
rsync # A fast and versatile file copying tool for remote and local files
smbclient # Tools to access a server's filespace and printers via SMB
trash-cli # Command line trashcan (recycle bin) interface
vifm # A file manager with curses interface, which provides Vi[m]-like environment
stow # Manage installation of multiple softwares in the same directory tree

View File

@ -0,0 +1,11 @@
picom # X compositor that may fix tearing issues
rofi # A window switcher, application launcher and dmenu replacement
lxappearance # Feature-rich GTK+ theme switcher of the LXDE Desktop
lxsession # Lightweight X11 session manager
flameshot # Powerful yet simple to use screenshot software
feh # Fast and light imlib2-based image viewer
dunst # Customizable and lightweight notification-daemon
xarchiver # GTK+ frontend to various command line archivers
xmobar-git # Minimalistic Text Based Status Bar
xmonad-contrib-git # Add-ons for xmonad
xmonad-git # Lightweight X11 tiled window manager written in Haskell

View File

@ -0,0 +1,2 @@
android-file-transfer # Android MTP client with minimalistic UI
kdeconnect # Adds communication between KDE and your smartphone

View File

@ -0,0 +1 @@
nerd-fonts-complete # Iconic font aggregator, collection, & patcher. 3,600+ icons, 50+ patched fonts.

View File

@ -0,0 +1,13 @@
discord # All-in-one voice and text chat for gamers that's free and secure
firefox # Standalone web browser from mozilla.org
gparted # A Partition Magic clone, frontend to GNU Parted
keepassxc # Cross-platform community-driven port of Keepass password manager
lutris # Open Gaming Platform
mpv # a free, open source, and cross-platform media player
nitrogen # Background browser and setter for X windows
openscad # The programmers solid 3D CAD modeller
pcmanfm # Extremely fast and lightweight file manager
steam # Valve's digital software delivery system
wine-staging # A compatibility layer for running Windows programs - Staging branch
brave-bin # Web browser that blocks ads and trackers by default (binary release)
superslicer-prerelease-bin # G-code generator for 3D printers (Creality, RepRap, Makerbot, Ultimaker etc.) (binary AppImage)

View File

@ -0,0 +1,3 @@
wireguard-tools
iproute2
openssh

View File

@ -0,0 +1,2 @@
syncthing # Open Source Continuous Replication / Cluster Synchronization Thing
udiskie # Removable disk automounter using udisks

View File

@ -0,0 +1,6 @@
xorg-server
xorg-server-xephyr
xorg-xev
xorg-xinit
xorg-xsetroot
xorg-xwayland

View File

@ -0,0 +1,3 @@
nvidia-dkms
nvidia-settings
nvidia-utils

View File

@ -0,0 +1,49 @@
amd-ucode
autoconf
automake
base
binutils
bison
btrfs-progs
efibootmgr
fakeroot
file
findutils
flex
gawk
gcc
gettext
git
grep
groff
grub
gst-plugin-pipewire
gzip
libpulse
libtool
linux
linux-firmware
linux-zen
m4
make
pacdef
pacman
patch
pipewire
pipewire-alsa
pipewire-jack
pipewire-media-session
pipewire-pulse
pkgconf
sed
stow
sudo
texinfo
vifm
vim
which
yay-bin
zram-generator
neovim
linux-headers
linux-zen-headers

View File

@ -18,10 +18,11 @@ for i, group in enumerate(groups):
])
groups.append(
Group("Comm", spawn="discord", persist=True)
#Group("Comm", spawn="discord", persist=True)
ScratchPad("Comm", [DropDown("d", "discord", match=Match(wm_class="discord"), x=0.1, y=0.1, width=0.8, height=0.8)])
)
keys.extend([
Key([mod], "d", lazy.group["Comm"].toscreen())
Key([mod], "d", lazy.group["Comm"].dropdown_toggle("d"))
])

View File

@ -19,6 +19,7 @@ layouts = [
layout.Matrix(columns=2, **layout_conf),
layout.Zoomy(**layout_conf),
layout.Bsp(**layout_conf),
layout.Columns(**layout_conf),
]
# Define floating rules

View File

@ -3188,6 +3188,14 @@ Define SPC lead bindings for Roam.
(interactive)
(exwm-floating-move 1 0))
(defun ts/shrink-window ()
(interactive)
(shrink-window-horizontally 10))
(defun ts/enlarge-window ()
(interactive)
(enlarge-window-horizontally 10))
;; Set up global key bindings. These always work, no matter the input state!
;; Keep in mind that changing this list after EXWM initializes has no effect.
(setq exwm-input-global-keys
@ -3201,8 +3209,8 @@ Define SPC lead bindings for Roam.
([?\s-k] . windmove-up)
([?\s-j] . windmove-down)
([?\s-H] . shrink-window-horizontally)
([?\s-L] . enlarge-window-horizontally)
([?\s-H] . ts/shrink-window)
([?\s-L] . ts/enlarge-window)
([?\s-K] . enlarge-window)
([?\s-J] . shrink-window)

File diff suppressed because one or more lines are too long

View File

@ -1,3 +1,5 @@
#!/bin/bash
status=$(cat /sys/class/power_supply/hidpp_battery_*/uevent | grep POWER_SUPPLY_VOLTAGE)
voltage=$(echo $status | cut -c26-29)
if [ "$voltage" -ge 3700 ]; then

1
.config/xmobar/tst Executable file
View File

@ -0,0 +1 @@
echo "wtf"

View File

@ -10,11 +10,11 @@ Config { font = "xft:Mononoki Nerd Font:pixelsize=12:antialias=true:hinting=true
, Run Com "/home/tstarr/.config/xmobar/wireguard" [] "wireguard" 10
, Run Com "/home/tstarr/.config/xmobar/volume" [] "volume" 10
, Run Com "/home/tstarr/.config/xmobar/gamemode" [] "gamemode" 10
, Run Com "/home/tstarr/.config/xmobar/mouse_battery" [] "mouse_battery" 30
, Run Com "/home/tstarr/.config/xmobar/mouse" [] "mouse" 10
, Run Date " %a %d/%m/%y  %H:%M:%S" "date" 10
, Run StdinReader
]
, sepChar = "%"
, alignSep = "}{"
, template = " <fc=#fb4934>%StdinReader%</fc>}%date%{%enp3s0% | %mouse_battery% | %volume% | 閭%cpu% |  %memory% |%gamemode% %wireguard%"
, template = " <fc=#fb4934>%StdinReader%</fc>}%date%{%enp3s0% | %mouse% | %volume% | 閭%cpu% |  %memory% |%gamemode% %wireguard%"
}

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

View File

@ -0,0 +1,16 @@
module XMonad.Util.CurrentIndex (currentIndex) where
import XMonad.StackSet
import qualified XMonad.StackSet as W
import Data.List (elemIndex)
import XMonad
import XMonad.Util.Stack
--currentIndex :: StackSet i l Window s sd -> Int
--currentIndex w =
--allWindowsInCurrentWorkspace :: W.StackSet i l a sid sd -> [a]
--allWindowsInCurrentWorkspace ws =
-- W.integrate' . W.stack . W.workspace . W.current $ ws

1
.xmonad/prompt-history Normal file
View File

@ -0,0 +1 @@
fromList [("Bring window: ",["Nitrogen [1]","Nitrogen [1]","Nitrogen","Nitrogen","Alacritty","Issues with North's Approach; Why was aizy Never Kicked? - Reflections with MSL (2nd App) 1/2 - CSGO - YouTube - Brave","Alacritty [1]","Alacritty [1]","keepassxc [NSP]","Alacritty [1]","brave","XMonad.Actions.RotateSome - Brave [2]","tylers-bayoooup - Discord [NSP]","tylers-bayoooup - Discord [NSP]","Alacritty [1]","Alacritty [1]","Issues with North's Approach; Why was aizy Never Kicked? - Reflections with MSL (2nd App) 1/2 - CSGO - YouTube - Brave [1]","Issues with North's Approach; Why was aizy Never Kicked? - Reflections with MSL (2nd App) 1/2 - CSGO - YouTube - Brave [2]","Alacritty [3]","Alacritty [2]","Alacritty [2]","Alacritty [4]","Alacritty [4]","Steam [3]","NYC logic: rent hits all time high as businesses & people leave - YouTube - Brave [2]","Alacritty [2]","Alacritty [2]","NYC logic: rent hits all time high as businesses & people leave - YouTube - Brave [2]","Alacritty [2]","emacs@kestrel [1]","emacs@kestrel [1]","Is Tiling in Pop!OS Any Good? - YouTube - Brave [2]","Is Tiling in Pop!OS Any Good? - YouTube - Brave [2]","Is","Is Tiling in Pop!OS Any Good? - YouTube - Brave [2]","Is","Is Tiling in Pop!OS Any Good? - YouTube - Brave [2]","ts","ty","Steam"]),("Go to window: ",["Wine System Tray [4]","How to Switch To Linux (Best Practices) - YouTube - Brave [1]","Nitrogen [2]","Nitrogen [2]","Nitrogen [2]","Alacritty [1]","XMonad.Actions.GroupNavigation - Brave [1]","XMonad.Actions.WindowGo - Brave [2]","tylers-bayoooup - Discord [NSP]","Elon Musk: SpaceX, Mars, Tesla Autopilot, Self-Driving, Robotics, and AI | Lex Fridman Podcast #252 - YouTube - Brave","Nitrogen","Nitrogen","Issues with North's Approach; Why was aizy Never Kicked? - Reflections with MSL (2nd App) 1/2 - CSGO - YouTube - Brave","Alacritty","Alacritty","XMonad.Prompt.Window - Brave"])]

BIN
.xmonad/xmonad-x86_64-linux Executable file

Binary file not shown.

1
.xmonad/xmonad.errors Normal file
View File

@ -0,0 +1 @@
$ ghc --make xmonad.hs -i -ilib -fforce-recomp -main-is main -dynamic -v0 -outputdir /home/tstarr/.xmonad/build-x86_64-linux -o /home/tstarr/.xmonad/xmonad-x86_64-linux

View File

@ -5,6 +5,9 @@ import System.IO
import qualified XMonad.StackSet as W
import System.Directory (getHomeDirectory)
import Data.Semigroup
import Text.Read
import Data.List (elemIndex)
-- Hooks
import XMonad.Hooks.EwmhDesktops
import XMonad.Hooks.ManageDocks
@ -21,6 +24,8 @@ import XMonad.Layout.WindowNavigation
import XMonad.Layout.SimpleFloat
import XMonad.Layout.HintedTile
import XMonad.Layout.Grid
import XMonad.Layout.TwoPane
import XMonad.Layout.TwoPanePersistent
--Utilities
import XMonad.Util.Run (spawnPipe)
@ -28,12 +33,20 @@ import XMonad.Util.SpawnOnce
import XMonad.Util.EZConfig (additionalKeysP, removeKeys)
import XMonad.Util.NamedScratchpad
import XMonad.Util.ClickableWorkspaces (clickablePP)
import XMonad.Util.Loggers
-- Actions
import XMonad.Actions.DynamicProjects (Project (..), dynamicProjects, switchProjectPrompt, shiftToProjectPrompt, switchProject, shiftToProject)
import XMonad.Actions.UpdatePointer
import XMonad.Actions.RotSlaves
import XMonad.Actions.RotateSome
import XMonad.Actions.GroupNavigation
import XMonad.Actions.Navigation2D
-- Prompt
import XMonad.Prompt
import XMonad.Prompt.Window
--import XMonad.Util.CurrentIndex
-- Terminal to use
myTerminal :: String
@ -51,6 +64,7 @@ muteVolumeCmd = "pactl set-sink-mute @DEFAULT_SINK@ toggle"
-- Count windows
windowCount :: X (Maybe String)
windowCount = gets $ Just . show . length . W.integrate' . W.stack . W.workspace . W.current . windowset
-- Define workspaces
myWorkspaces = ["1", "2", "3", "4", "5", "6", "7", "8", "9"]
-- Width of window border
@ -58,14 +72,6 @@ myBorderWidth = 2
-- Border colors
myNormalBorderColor = "#ebdbb2"
myFocusedBorderColor = "#d3869b"
-- Configuration for myNav2D
myNav2DConf = def
{ defaultTiledNavigation = centerNavigation
, floatNavigation = centerNavigation
, screenNavigation = lineNavigation
, layoutNavigation = [("Spacing Full", centerNavigation)]
, unmappedWindowRect = [("Spacing Full", singleWindowRect)]
}
myStartupHook = do
spawnOnce "nitrogen --restore &"
@ -90,7 +96,7 @@ projects =
}
]
myLayout = windowNavigation $ spacing 2 $ smartBorders (tiled Tall ||| tiled Wide ||| Full ||| simpleFloat ||| Grid)
myLayout = windowNavigation $ spacing 2 $ smartBorders (TwoPanePersistent Nothing (3/100) (1/2) ||| tiled Tall ||| tiled Wide ||| Full ||| simpleFloat ||| Grid)
where
-- default tiling algorithm partitions the screen into two panes
--tiled = Tall nmaster delta ratio
@ -170,7 +176,7 @@ myEventHook :: Event -> X All
myEventHook = dynamicPropertyChange "WM_NAME" (title =? "scratch-emacs" --> floating)
where floating = customFloating $ W.RationalRect (1/6) 0.05 (2/3) 0.9
-- Log hook
myLogHook = updatePointer (0.5, 0.5) (0, 0)
myLogHook = historyHook <+> updatePointer (0.5, 0.5) (0, 0)
myKeys :: String -> [([Char], X ())]
myKeys home =
@ -179,7 +185,7 @@ myKeys home =
-- Window/Focus Manipulation
--------------------------------------------------
-- Rotate through the available layout algorithms
("M-<Tab>", sendMessage NextLayout)
("M-<Space>", sendMessage NextLayout)
-- Shrink the master area
, ("M-C-h", sendMessage Shrink)
-- Expand the master area
@ -188,6 +194,32 @@ myKeys home =
, ("M-t", withFocused $ windows . W.sink)
-- close focused window
, ("M-q", kill)
---- Move focus to the next window.
--, ("M-j", windows W.focusDown)
---- Move focus to the previous window.
--, ("M-k", windows W.focusUp)
---- Swap the focused window with the next window.
--, ("M-S-j", windows W.swapDown)
---- Swap the focused window with the previous window.
--, ("M-S-k", windows W.swapUp)
-- Swap the focused window with the next window.
, ("M-C-j", rotSlavesDown)
-- Swap the focused window with the previous window.
, ("M-C-k", rotSlavesUp)
-- Move focus to the master window.
, ("M-m", windows W.focusMaster)
-- Swap the focused window and the master window.
, ("M-S-m", windows W.swapMaster)
-- Increment number of windows in master
, ("M-.", sendMessage (IncMasterN 1))
-- Decrement number of windows in master
, ("M-,", sendMessage (IncMasterN (-1)))
-- Swap the focused window and the master window.
, ("M-b", nextMatch History (return True))
--------------------------------------------------
-- Basic Utils
@ -198,7 +230,8 @@ myKeys home =
-- Spawn rofi drun
, ("M-w" , spawn "rofi -show drun -theme gruvbox-dark-soft -show-icons")
, ("M-S-w" , spawn "rofi -show run -theme gruvbox-dark-soft")
-- Grab and Goto Windows
, ("M-g", windowPrompt def {autoComplete = Just 20000} Goto allWindows)
--------------------------------------------------
-- Scratchpads
--------------------------------------------------
@ -208,7 +241,7 @@ myKeys home =
-- Spawn discord scratchpad
, ("M-d", namedScratchpadAction myScratchPads "discord")
-- Spawn keepass scratchpad
, ("M-m", namedScratchpadAction myScratchPads "keepassxc")
, ("M-p", namedScratchpadAction myScratchPads "keepassxc")
-- Spawn calendar scratchpad
, ("M-c", namedScratchpadAction myScratchPads "gsimplecal")
-- Spawn emacs scratchpad
@ -217,18 +250,18 @@ myKeys home =
--------------------------------------------------
-- Dynamic Projects
--------------------------------------------------
--, ("M-p s", switchProjectPrompt projectsTheme)
--, ("M-p S", shiftToProjectPrompt projectsTheme)
, ("M-p d", switchProject (projects !! 0))
, ("M-p S-d", shiftToProject (projects !! 0))
, ("M-p g", switchProject (projects !! 1))
, ("M-p S-g", shiftToProject (projects !! 1))
--, ("M-s s", switchProjectPrompt projectsTheme)
--, ("M-s S", shiftToProjectPrompt projectsTheme)
, ("M-s d", switchProject (projects !! 0))
, ("M-s S-d", shiftToProject (projects !! 0))
, ("M-s g", switchProject (projects !! 1))
, ("M-s S-g", shiftToProject (projects !! 1))
--------------------------------------------------
-- Open Applications
--------------------------------------------------
-- Spawn firefox
, ("M-o b" , spawn "brave")
, ("M-o b" , spawn "qutebrowser")
-- Spawn lutris
, ("M-o l" , spawn "lutris")
-- Spawn steam
@ -267,6 +300,14 @@ rmKeys keys =
(myModMask .|. shiftMask, xK_q)
]
myNav2DConf = def
{ defaultTiledNavigation = sideNavigation
, floatNavigation = sideNavigation
, screenNavigation = sideNavigation
, layoutNavigation = [("Spacing Full", centerNavigation)]
, unmappedWindowRect = [("Spacing Full", singleWindowRect)]
}
main = do
home <- getHomeDirectory
xmproc0 <- spawnPipe "xmobar -x 0 ~/.config/xmobar/xmobarrc"
@ -277,14 +318,14 @@ main = do
$ ewmhFullscreen
$ withNavigation2DConfig myNav2DConf
$ navigation2DP def
("k", "h", "j", "l")
[("M-", windowGo),
("M-S-", windowSwap)]
False
$ additionalNav2DKeysP ("", "u", "", "i")
[("M-", screenGo),
("M-S-", screenSwap)]
False
("", "u", "", "i")
[("M-", screenGo),
("M-S-", screenSwap)]
False
$ additionalNav2DKeysP ("k", "h", "j", "l")
[("M-", windowGo),
("M-S-", windowSwap)]
False
$ def
{
-- Simple items

View File

@ -1,11 +0,0 @@
#!/bin/bash
# Get and stow dotfiles
sudo pacman -S stow
stow .
# Get aconfmgr and apply
mkdir -p ~/.git
git clone https://github.com/CyberShadow/aconfmgr.git ~/.git/aconfmgr
cd ~/.git/aconfmgr
./aconfmgr apply