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

View File

@ -3188,6 +3188,14 @@ Define SPC lead bindings for Roam.
(interactive) (interactive)
(exwm-floating-move 1 0)) (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! ;; 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. ;; Keep in mind that changing this list after EXWM initializes has no effect.
(setq exwm-input-global-keys (setq exwm-input-global-keys
@ -3201,8 +3209,8 @@ Define SPC lead bindings for Roam.
([?\s-k] . windmove-up) ([?\s-k] . windmove-up)
([?\s-j] . windmove-down) ([?\s-j] . windmove-down)
([?\s-H] . shrink-window-horizontally) ([?\s-H] . ts/shrink-window)
([?\s-L] . enlarge-window-horizontally) ([?\s-L] . ts/enlarge-window)
([?\s-K] . enlarge-window) ([?\s-K] . enlarge-window)
([?\s-J] . shrink-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) status=$(cat /sys/class/power_supply/hidpp_battery_*/uevent | grep POWER_SUPPLY_VOLTAGE)
voltage=$(echo $status | cut -c26-29) voltage=$(echo $status | cut -c26-29)
if [ "$voltage" -ge 3700 ]; then 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/wireguard" [] "wireguard" 10
, Run Com "/home/tstarr/.config/xmobar/volume" [] "volume" 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/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 Date " %a %d/%m/%y  %H:%M:%S" "date" 10
, Run StdinReader , Run StdinReader
] ]
, sepChar = "%" , sepChar = "%"
, alignSep = "}{" , 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 qualified XMonad.StackSet as W
import System.Directory (getHomeDirectory) import System.Directory (getHomeDirectory)
import Data.Semigroup import Data.Semigroup
import Text.Read
import Data.List (elemIndex)
-- Hooks -- Hooks
import XMonad.Hooks.EwmhDesktops import XMonad.Hooks.EwmhDesktops
import XMonad.Hooks.ManageDocks import XMonad.Hooks.ManageDocks
@ -21,6 +24,8 @@ import XMonad.Layout.WindowNavigation
import XMonad.Layout.SimpleFloat import XMonad.Layout.SimpleFloat
import XMonad.Layout.HintedTile import XMonad.Layout.HintedTile
import XMonad.Layout.Grid import XMonad.Layout.Grid
import XMonad.Layout.TwoPane
import XMonad.Layout.TwoPanePersistent
--Utilities --Utilities
import XMonad.Util.Run (spawnPipe) import XMonad.Util.Run (spawnPipe)
@ -28,12 +33,20 @@ import XMonad.Util.SpawnOnce
import XMonad.Util.EZConfig (additionalKeysP, removeKeys) import XMonad.Util.EZConfig (additionalKeysP, removeKeys)
import XMonad.Util.NamedScratchpad import XMonad.Util.NamedScratchpad
import XMonad.Util.ClickableWorkspaces (clickablePP) import XMonad.Util.ClickableWorkspaces (clickablePP)
import XMonad.Util.Loggers
-- Actions -- Actions
import XMonad.Actions.DynamicProjects (Project (..), dynamicProjects, switchProjectPrompt, shiftToProjectPrompt, switchProject, shiftToProject) import XMonad.Actions.DynamicProjects (Project (..), dynamicProjects, switchProjectPrompt, shiftToProjectPrompt, switchProject, shiftToProject)
import XMonad.Actions.UpdatePointer import XMonad.Actions.UpdatePointer
import XMonad.Actions.RotSlaves
import XMonad.Actions.RotateSome
import XMonad.Actions.GroupNavigation
import XMonad.Actions.Navigation2D import XMonad.Actions.Navigation2D
-- Prompt -- Prompt
import XMonad.Prompt import XMonad.Prompt
import XMonad.Prompt.Window
--import XMonad.Util.CurrentIndex
-- Terminal to use -- Terminal to use
myTerminal :: String myTerminal :: String
@ -51,6 +64,7 @@ muteVolumeCmd = "pactl set-sink-mute @DEFAULT_SINK@ toggle"
-- Count windows -- Count windows
windowCount :: X (Maybe String) windowCount :: X (Maybe String)
windowCount = gets $ Just . show . length . W.integrate' . W.stack . W.workspace . W.current . windowset windowCount = gets $ Just . show . length . W.integrate' . W.stack . W.workspace . W.current . windowset
-- Define workspaces -- Define workspaces
myWorkspaces = ["1", "2", "3", "4", "5", "6", "7", "8", "9"] myWorkspaces = ["1", "2", "3", "4", "5", "6", "7", "8", "9"]
-- Width of window border -- Width of window border
@ -58,14 +72,6 @@ myBorderWidth = 2
-- Border colors -- Border colors
myNormalBorderColor = "#ebdbb2" myNormalBorderColor = "#ebdbb2"
myFocusedBorderColor = "#d3869b" myFocusedBorderColor = "#d3869b"
-- Configuration for myNav2D
myNav2DConf = def
{ defaultTiledNavigation = centerNavigation
, floatNavigation = centerNavigation
, screenNavigation = lineNavigation
, layoutNavigation = [("Spacing Full", centerNavigation)]
, unmappedWindowRect = [("Spacing Full", singleWindowRect)]
}
myStartupHook = do myStartupHook = do
spawnOnce "nitrogen --restore &" 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 where
-- default tiling algorithm partitions the screen into two panes -- default tiling algorithm partitions the screen into two panes
--tiled = Tall nmaster delta ratio --tiled = Tall nmaster delta ratio
@ -170,7 +176,7 @@ myEventHook :: Event -> X All
myEventHook = dynamicPropertyChange "WM_NAME" (title =? "scratch-emacs" --> floating) myEventHook = dynamicPropertyChange "WM_NAME" (title =? "scratch-emacs" --> floating)
where floating = customFloating $ W.RationalRect (1/6) 0.05 (2/3) 0.9 where floating = customFloating $ W.RationalRect (1/6) 0.05 (2/3) 0.9
-- Log hook -- Log hook
myLogHook = updatePointer (0.5, 0.5) (0, 0) myLogHook = historyHook <+> updatePointer (0.5, 0.5) (0, 0)
myKeys :: String -> [([Char], X ())] myKeys :: String -> [([Char], X ())]
myKeys home = myKeys home =
@ -179,7 +185,7 @@ myKeys home =
-- Window/Focus Manipulation -- Window/Focus Manipulation
-------------------------------------------------- --------------------------------------------------
-- Rotate through the available layout algorithms -- Rotate through the available layout algorithms
("M-<Tab>", sendMessage NextLayout) ("M-<Space>", sendMessage NextLayout)
-- Shrink the master area -- Shrink the master area
, ("M-C-h", sendMessage Shrink) , ("M-C-h", sendMessage Shrink)
-- Expand the master area -- Expand the master area
@ -188,6 +194,32 @@ myKeys home =
, ("M-t", withFocused $ windows . W.sink) , ("M-t", withFocused $ windows . W.sink)
-- close focused window -- close focused window
, ("M-q", kill) , ("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 -- Basic Utils
@ -198,7 +230,8 @@ myKeys home =
-- Spawn rofi drun -- Spawn rofi drun
, ("M-w" , spawn "rofi -show drun -theme gruvbox-dark-soft -show-icons") , ("M-w" , spawn "rofi -show drun -theme gruvbox-dark-soft -show-icons")
, ("M-S-w" , spawn "rofi -show run -theme gruvbox-dark-soft") , ("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 -- Scratchpads
-------------------------------------------------- --------------------------------------------------
@ -208,7 +241,7 @@ myKeys home =
-- Spawn discord scratchpad -- Spawn discord scratchpad
, ("M-d", namedScratchpadAction myScratchPads "discord") , ("M-d", namedScratchpadAction myScratchPads "discord")
-- Spawn keepass scratchpad -- Spawn keepass scratchpad
, ("M-m", namedScratchpadAction myScratchPads "keepassxc") , ("M-p", namedScratchpadAction myScratchPads "keepassxc")
-- Spawn calendar scratchpad -- Spawn calendar scratchpad
, ("M-c", namedScratchpadAction myScratchPads "gsimplecal") , ("M-c", namedScratchpadAction myScratchPads "gsimplecal")
-- Spawn emacs scratchpad -- Spawn emacs scratchpad
@ -217,18 +250,18 @@ myKeys home =
-------------------------------------------------- --------------------------------------------------
-- Dynamic Projects -- Dynamic Projects
-------------------------------------------------- --------------------------------------------------
--, ("M-p s", switchProjectPrompt projectsTheme) --, ("M-s s", switchProjectPrompt projectsTheme)
--, ("M-p S", shiftToProjectPrompt projectsTheme) --, ("M-s S", shiftToProjectPrompt projectsTheme)
, ("M-p d", switchProject (projects !! 0)) , ("M-s d", switchProject (projects !! 0))
, ("M-p S-d", shiftToProject (projects !! 0)) , ("M-s S-d", shiftToProject (projects !! 0))
, ("M-p g", switchProject (projects !! 1)) , ("M-s g", switchProject (projects !! 1))
, ("M-p S-g", shiftToProject (projects !! 1)) , ("M-s S-g", shiftToProject (projects !! 1))
-------------------------------------------------- --------------------------------------------------
-- Open Applications -- Open Applications
-------------------------------------------------- --------------------------------------------------
-- Spawn firefox -- Spawn firefox
, ("M-o b" , spawn "brave") , ("M-o b" , spawn "qutebrowser")
-- Spawn lutris -- Spawn lutris
, ("M-o l" , spawn "lutris") , ("M-o l" , spawn "lutris")
-- Spawn steam -- Spawn steam
@ -267,6 +300,14 @@ rmKeys keys =
(myModMask .|. shiftMask, xK_q) (myModMask .|. shiftMask, xK_q)
] ]
myNav2DConf = def
{ defaultTiledNavigation = sideNavigation
, floatNavigation = sideNavigation
, screenNavigation = sideNavigation
, layoutNavigation = [("Spacing Full", centerNavigation)]
, unmappedWindowRect = [("Spacing Full", singleWindowRect)]
}
main = do main = do
home <- getHomeDirectory home <- getHomeDirectory
xmproc0 <- spawnPipe "xmobar -x 0 ~/.config/xmobar/xmobarrc" xmproc0 <- spawnPipe "xmobar -x 0 ~/.config/xmobar/xmobarrc"
@ -277,14 +318,14 @@ main = do
$ ewmhFullscreen $ ewmhFullscreen
$ withNavigation2DConfig myNav2DConf $ withNavigation2DConfig myNav2DConf
$ navigation2DP def $ navigation2DP def
("k", "h", "j", "l") ("", "u", "", "i")
[("M-", windowGo), [("M-", screenGo),
("M-S-", windowSwap)] ("M-S-", screenSwap)]
False False
$ additionalNav2DKeysP ("", "u", "", "i") $ additionalNav2DKeysP ("k", "h", "j", "l")
[("M-", screenGo), [("M-", windowGo),
("M-S-", screenSwap)] ("M-S-", windowSwap)]
False False
$ def $ def
{ {
-- Simple items -- 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