summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--README.md36
-rw-r--r--progs.csv384
-rw-r--r--zirless.sh31
3 files changed, 291 insertions, 160 deletions
diff --git a/README.md b/README.md
index 5a43c85..0d11b5a 100644
--- a/README.md
+++ b/README.md
@@ -14,22 +14,38 @@ system, unlike LARBS, which is agnostic.
On Artix (with runit as init), run the following as root:
```
-sh larbs.sh
+sh zirless.sh
```
That's it.
-## What is LARBS?
+## What is ZIRLESS
-LARBS is a script that autoinstalls and autoconfigures a fully-functioning
+ZIRLESS is a script that autoinstalls and autoconfigures a fully-functioning
and minimal terminal-and-vim-based Arch Linux environment.
-LARBS can be run on a fresh install of Arch or Artix Linux, and provides you
-with a fully configured diving-board for work or more customization.
+ZIRLESS can be run on a fresh install of Artix Linux, and provides you with a
+fully configured diving-board for work or more customization.
+
+NOTE: ZIRLESS expects the following packages, metapackages, and groups to be
+installed:
+
+- base
+- git
+- a linux kernel, plus its headers
+- the runit init system (unless you provide your own progs.csv)
+- a network connection and manager (dhcpcd, wpa_supplicant, networkmanager, etc)
+
+ZIRLESS also assumes the following about the other files:
+
+- progs.csv should have AUR packages after any optional build dependencies
+- if the users dotfiles repo needs to install anything into the home dir, it
+ should have a Makefile, and `make install` should install these files (or the
+ user should expect to do it manually).
## Customization
-By default, LARBS uses the programs [here in progs.csv](progs.csv) and installs
+By default, ZIRLESS uses the programs [here in progs.csv](progs.csv) and installs
[my dotfiles repo (dotfiles) here](https://gitlab.com/zachir/dotfiles),
but you can easily change this by either modifying the default variables at the
beginning of the script or giving the script one of these options:
@@ -41,7 +57,7 @@ beginning of the script or giving the script one of these options:
### The `progs.csv` list
-LARBS will parse the given programs list and install all given programs. Note
+ZIRLESS will parse the given programs list and install all given programs. Note
that the programs file must be a three column `.csv`.
The first column is a "tag" that determines how the program is installed, ""
@@ -50,12 +66,12 @@ git repository that is meant to be `make && sudo make install`ed.
The second column is the name of the program in the repository, or the link to
the git repository, and the third column is a description (should be a verb
-phrase) that describes the program. During installation, LARBS will print out
+phrase) that describes the program. During installation, ZIRLESS will print out
this information in a grammatical sentence. It also doubles as documentation
for people who read the CSV and want to install my dotfiles manually.
Depending on your own build, you may want to tactically order the programs in
-your programs file. LARBS will install from the top to the bottom.
+your programs file. ZIRLESS will install from the top to the bottom.
If you include commas in your program descriptions, be sure to include double
quotes around the whole description to ensure correct parsing.
@@ -71,7 +87,7 @@ which commands to run to install it. You can easily add new methods of
installations and tags as well.
Note that programs from the AUR can only be built by a non-root user. What
-LARBS does to bypass this by default is to temporarily allow the newly created
+ZIRLESS does to bypass this by default is to temporarily allow the newly created
user to use `sudo` without a password (so the user won't be prompted for a
password multiple times in installation). This is done ad-hocly, but
effectively with the `newperms` function. At the end of installation,
diff --git a/progs.csv b/progs.csv
index cc3c3f9..c132216 100644
--- a/progs.csv
+++ b/progs.csv
@@ -1,136 +1,250 @@
#TAG,NAME IN REPO (or git url),PURPOSE (should be a verb phrase to sound right while installing)
-,arandr,allows the user to customize monitor arrangements.
-,artixnews,updates user with news from Artix team
-,asp,gives access to the official ABS PKGBUILDs
-,atool,manages and gives information about archives.
-,autoconf,is a tool to help configuring certain software
-,automake,is a tool to help compile certain software
-,awesome,is the new default wm
-,bc,is used for a dropdown calculator.
-,catdoc,converts MS files to text
-,cronie,is a cron daemon for running commands at specific intervals
-,cryptsetup,allows setting up and opening encrypted filesystems
-,docx2txt,converts text from DOCX files to text
-,dog,"performs DNS lookups, and other DNS functions"
-,dosfstools,allows your computer to access dos-like filesystems.
-,dunst,is a suckless notification system.
-,exfat-utils,allows management of exFAT drives.
-,ffmpeg,can record and splice video and audio on the command line.
-,ffmpegthumbnailer,renders thumbnails using ffmpeg
-,fzf,is a fuzzy finder tool.
-,gnome-keyring,serves as the system keyring.
-,greetd,is a login manager daemon
-,greetd-tuigreet,is a TUI interface for greetd
-,gst-plugins-pipeiwre,is the pipewire plugin for gst framework
-,gst-plugins-bad,are the bad plugins for gst framework
-,gst-plugins-good,are the good plugins for gst framework
-,gst-plugins-ugly,are the ugly plugins for gst framework
-,highlight,can highlight code output.
-,imagemagick,manipulates images
-,irssi,is a TUI IRC client
-,keepassxc,offline graphical password manager
-,khal,is a TUI calendar
-,libnotify,allows desktop notifications.
-,libvirt,allows hosting KVMs
-,lynx,is a terminal browser.
-,maim,can take quick screenshots at your request.
-,man-db,lets you read man pages of programs.
-,mediainfo,shows audio and video information.
-,modprobed-db,"stores loaded kernel modules when run, to be used when building custom kernel"
-,mpc,is a terminal interface for mpd.
-,mpd,is a lightweight music daemon.
-,mpv,is the patrician's choice video player.
-,ncmpcpp,is the closest thing to a zirless graphical music client
-,neovim,a tidier vim with some useful features
-,neovide,graphical neovim client
-,newsboat,is a terminal RSS client.
-,ntfs-3g,allows accessing NTFS partitions.
-,odt2txt,extracts text from OpenDocument Text files
-,opendoas,is a Linux compatible implementation of OpenBSD's doas
-,openresolv,manages DNS lookup (resolv.conf)
-,pamixer,is a command-line audio interface.
-,pandoc,converts between markup formatted text files
-,pass,is the best Unix password manager
-,picom,is for transparency and removing screen-tearing.
-,pipewire,is the audio server
-,pipewire-alsa,provides ALSA compatibility
-,pipewire-docs,provides documentation for pipewire
-,pipewire-jack,provides JACK compatibility
-,pipewire-media-session,is necessary for pipewire to work
-,pipewire-pulse,provides pulseaudio compatibility
-,poppler,manipulates .pdfs and gives .pdf previews and other .pdf functions.
-,profanity,is a TUI Irssi-inspired XMPP client
-,pulsemixer,is an audio controller.
-,python-adblock,gives qutebrowser Brave-style adblock
-,qemu,runs virtual machines
-,qt5-styleplugins,allows setting qt5 theme to gtk2
-,qt5ct,sets the qt5 theme
-,qt6ct,sets qt6 theme
-,qt6gtk2,allows setting the qt6 theme to gtk2
-,qutebrowser,"is the best browser, don't @ me"
-,rsync,based file synchronization
-,sxhkd,based X11 hotkey daemon
-,sxiv,is a minimalist image viewer.
-,syncthing,syncs local and remote folders
-,sysstat,various system resource monitor tools
-,texlive-most,provides LaTeX support
-,transmission-cli,is a CLI torrent client
-,trash-cli,possibly unbased simple trash implementation
-,ttf-linux-libertine,provides the sans and serif fonts for LARBS.
-,ueberzug,allows viewing images in the terminal
-,unbound,is a local DNS daemon I use for blocking trackers + ads
-,unclutter,hides an inactive mouse.
-,unrar,extracts rar's.
-,unzip,unzips zips.
-,vdirsyncer,can sync remote calendars (and other things)
-,virt-manager,manages libvirt VMs
-,wireguard-tools,allows easy wireguard connection
-,wpa_supplicant,gives relatively minimal WPA wifi support
-,xclip,allows for copying and pasting from the command line.
-,xdotool,provides window action utilities on the command line.
-,xf86-drivers,provides all of the xorg video drivers
-,xorg-server,is the graphical server.
-,xorg-server-xephyr,allows nesting X servers
-,xorg-xbacklight,enables changing screen brightness levels.
-,xorg-xev,makes it easy to listen to X11 events
-,xorg-xinit,starts the graphical server.
-,xorg-xinput,allows controlling x11 input devices
-,xorg-xprop,is a tool for detecting window properties.
-,xwallpaper,sets the wallpaper.
-,youtube-dl,can download any YouTube video (or playlist or channel) when given the link.
-,zathura,is a pdf viewer with vim-like bindings.
-,zathura-pdf-mupdf,allows mupdf pdf compatibility in zathura.
-,zathura-ps,provides ps support for zathura
-,zsh,is a better interactive shell than bash
-A,dragon-drop,allows drag and drop from a terminal
-A,timeshift,is a backup and restore utility
-A,mksh,is a better scripting shell than bash or zsh
-A,plata-theme-bin,gives the dark GTK theme used in LARBS.
-A,lf-git,is an extensive terminal file manager that everyone likes.
-A,qbpm-git,manages qutebrowser profiles
-A,ttf-symbola-free,is an emoji font.
-A,sc-im,is an Excel-like terminal spreadsheet manager.
-A,abook,is an offline addressbook usable by neomutt.
-A,simple-mtpfs,enables the mounting of cell phones.
-A,htop-vim,is a graphical and colorful system monitor.
-A,mutt-wizard,is a light-weight terminal-based email system.
-A,libxlsxwriter,allows sc-im to write to xlsx files
-A,kjv-git,"is an offline, fzf searchable KJV bible"
-A,rtorrent-ps,is a TUI torrent client
-A,auto-cpufreq,changes CPU freq and other power saving tools realtime
-A,epub-thumbnailer-git,creates thumbnails for EPUB files
-A,fontpreview-ueberzug-git,previews fonts in the terminal with ueberzug
-A,j4-dmenu-desktop,searches .desktop files for applications
-A,mpdris2,is an MPRIS client for MPD
-A,nerd-fonts-complete,installs all of the nerd fonts
-A,opendoas-sudo,symlinks doas to sudo for compatibility
-A,pam-gnupg,unlocks GnuPG keys on login
-A,paper-icon-theme,is the icon theme
-A,urlview,parses text for URLs
-A,vimv-git,bulk file rename tool
-A,xurls,parses URLs from text
-A,ytfzf,"is an fzf frontend for YouTube, uses mpv and youtube-dl"
-G,https://gitlab.com/zachir/dwmblocks,serves as the modular status bar.
-G,https://gitlab.com/zachir/dmenu,runs commands and provides a UI for selection.
-G,https://gitlab.com/zachir/st,is my custom build of suckless's terminal emulator.
-G,https://gitlab.com/zachir/slock,is the suckless screen locker
+,alacritty,is a GPU accelerated terminal written in Rust and supports Wayland.
+,alsa-plugins,provides additional ALSA plugins.
+,alsa-utils,provides utilities for ALSA.
+,apparmor,provides Mandatory Access Control using Linux Security Module.
+,apparmor-runit,contains the runit specific apparmor setup.
+,arandr,is a graphical tool to work with monitors in X11.
+,artixnews,provides news from Artix.
+,asp,is a build source management tool for Arch Linux packages.
+,atool,is an archive tool.
+,awesome,is an X11 window manager that ZachIR has a config for.
+,base,is a metapackage containing the base Artix install.
+,bc,is an arbitrary precision calculator language.
+,bemenu,is a dyunamic menu library and client inspired by dmenu.
+,bemenu-wayland,is a renderer for bemenu for wlroots-based Wayland compositors.
+,bemenu-x11,is a renderer for bemenu for X.
+,bison,is the GNU parser generator.
+,blueman,is a GTK bluetooth manager.
+,bluez,is a bluetooth daemon.
+,bluez-runit,is the runit script for bluez.
+,bluez-utils,contains useful bluetooth utilities.
+,bspwm,is an X11 window manager that ZachIR has a config for.
+,cage,is a Wayland kiosk window compositor.
+,catdoc,is a converter for Microsoft Word, Excel, PowerPoint and RTF files to plaintext.
+,chrony,is a lightweight NTP client and server.
+,chrony-runit,is the runit service for chrony.
+,cronie,is a lightweight cron daemon.
+,cronie-runit,is the runit service for cronie.
+,cryptsetup-runit,is a userspace tool for encryption of block devices using dm-crypt.
+,dhcpcd,is an RFC2131 compliant DHCP client daemon.
+,dhcpcd-runit,is the runit service for dhcpcd.
+,dnsmasq,is a lightweight DNS forwarder and DHCP server.
+,docx2txt,recovers text from DOCX files with formatting.
+,dog,is a command-line DNS client.
+,dosfstools,provides DOS filesystem utilities.
+,dunst,is a lightweight standalone notification daemon.
+,esysusers,is a standalone version of systemd sysusers.
+,etmpfiles,is a standalone version of systemd tmpfiles.
+,exfat-utils,provides utilities for the exFAT file system.
+,ffmpeg,"records, converts, and streams audio and video."
+,ffmpeg4.4,version 4.4 of ffmpeg.
+,ffmpegthumbnailer,is a lightweight video thumbnailer.
+,firefox,is a web browser.
+,firejail,is a Linux namespaces sandbox program.
+,firetools,is a GUI interface for Firejail.
+,flatpak,is a "universal package format" that sucks less than snapd.
+,flex,is a tool for generating text-scanning programs.
+,fzf,is a command-line fuzzy finder program.
+,git,is the fast distributed version control system.
+,gnome-keyring,stores passwords and encryption keys.
+,gnuplot,is a plotting package that outputs to X11, PostScript, PNG, GIF, etc.
+,gperftools,is a multi-threaded malloc and performance analysis tools.
+,gst-plugins-good,provides the good plugins for the multimedia graph framework.
+,gst-plugins-bad,provides the bad plugins for the multimedia graph framework.
+,gst-plugins-ugly,provides the ugly plugins for the multimedia graph framework.
+,handbrake,is a multithreaded video transcoder.
+,handbrake-cli,is a command-line multithreaded video transcoder.
+,herbstluftwm,is an X11 window manager that ZachIR has a config file for.
+,highlight,is a command-line source code highlighter.
+,irssi,is a fast TUI IRC client.
+,khal,is a command-line calendar application using CalDAV.
+,lib32-alsa-plugins,provides additional 32-bit ALSA plugins.
+,lib32-gamemode,is a daemon and library that allows games to request OS optimizations.
+,lib32-openal,is a 32-bit cross-platform 3d audio library.
+,lib32-opencl-mesa,installs opencl support for 32-bin AMD mesa drivers.
+,lib32-openssl-1.0,"is the libre toolkit for SSL and TLS, version 1."
+,lib32-pipewire,is a 32-bit library for the low-latency audio/video router and processor.
+,lib32-pipewire-jack,is a 32-bit library that provides JACK support for pipewire.
+,lib32-vkd3d,is a 32-bit Direct3D 12 to Vulkan translation library.
+,libdvdcss,is a portable abstraction library for DVD decryption.
+,libnotify,is a library for sending desktop notifications.
+,librewolf,is a privacy browser that improves on Firefox.
+,libvirt,is an API for controlling virtual machine engines.
+,libvirt-runit,is the runit service for libvirt.
+,lutris,manages games.
+,lvm2,provides Logical Volume Manager 2 utilities.
+,lxappearance-gtk3,is a simple program to set GTK-3 themes.
+,lxqt-policykit,is the polkit client from the LXQt desktop environment.
+,lynx,is a tui web browser.
+,maim,is an imlib2 utility to take screenshots.
+,mako,is a lightweight standalone notification daemon for Wayland.
+,man-db,is a man page reader.
+,mediainfo,supplies information about a video or audio file.
+,mlocate,merges locate/updatedb implementation.
+,mpc,is a minimalist command line interface for MPD.
+,mpd,is a simple music player daemon.
+,ncmpcpp,is TUI client for MPD.
+,neovide,is a graphical neovim text editor.
+,neovim,is a text editor focused on user experience, plugins, and GUIs.
+,newsboat,is a TUI RSS feed reader.
+,nftables,is a command-line tool for managing netfilter tables.
+,nftables-runit,is a runit service for the nftables firewall.
+,nmap,is a utility for network discovery and security auditing.
+,ntfs-3g,provides an NTFS driver and utilities.
+,odt2txt,extracts text out of ODT documents.
+,opencl-mesa,provides OpenCL support for AMD/ATI Radeon mesa drivers.
+,opendoas,runs command as another user.
+,openresolv,manages resolv.conf.
+,pacman-contrib,is a collection of contributed scripts and tools for pacman.
+,pam_rundir,adds the XDG runtime directory creation through PAM.
+,pamixer,is a command-line pulseaudio mixer.
+,pandoc,converts between markup formats.
+,pass,"stores, retrieves, generates, and synchronizes passswords securely."
+,patchmatrix,is a JACK patchbay in flow matrix style.
+,picom,is an X compositor that handles transparency and screen tearing.
+,pipewire,is a low-latency audio/video router and processor.
+,pipewire-alsa,provides ALSA support for pipewire sound server.
+,pipewire-docs,provides documentation for pipewire sound server.
+,pipewire-jack,provides JACK support for pipewire sound server.
+,pipewire-pulse,provides PulseAudio compatibility for pipewire sound server.
+,pipewire-v4l2,is a V4l2 interceptor for pipewire sound server.
+,playerctl,is an mpris player controller and library for various media players.
+,polybar,is a fast and easy-to-use status bar.
+,profanity,is a simple TUI XMPP client.
+,pulsemixer,is a TUI pulseaudio mixer.
+,pv,monitors the progress of data through a pipe.
+,python-adblock,is Brave's adblock library written in Python.
+,python-ewmh,implements the Extended Window Manager Hints in Python.
+,python-fuzzywuzzy,implements fuzzy matching in Python.
+,python-iwlib,is a Python module to interface with iwlib.
+,python-levenshtein,is a Python extension for computing string edit distances and similarities.
+,python-notify2,is a Python interface to DBus notifications.
+,python-pywlroots,provides Python bindings to wlroots using cffi.
+,python-setproctitle,allows a Python process to change its process title.
+,qpwgraph,is a Qt GUI Pipewire graph interface.
+,qt5-styleplugins,provides additional plugins for Qt5.
+,qt5ct,is the Qt5 configuration utility.
+,qt6ct,is the Qt6 configuration utility.
+,qtile,is an X11 window manger that ZachIR has a config for.
+,qutebrowser,is a PyQt5 web browser with vim-like controls.
+,rsm,is the Runit Service Manager for Artix.
+,rsync,is a fast and versatile copying tool for remote and local files.
+,runit,"is a suite of tools for PID 1, init, and process supervision."
+,rustup,is the Rust toolchain installer.
+,seatd,is a minimal seat daemon and universal seat management library.
+,stalonetray,is a standalone system tray.
+,sway,is a Wayland tiling window compositor.
+,sxiv,is a simple extensible X11 image viewer.
+,sysstat,is a collection of performance monitoring tools.
+,termdown,is a terminal countdown timer and stopwatch.
+,tmux,is a terminal multiplexer.
+,transmission-cli,is a command-line BitTorrent client and daemon.
+,trash-cli,is a command-line trash interface.
+,ttf-dejavu,provides the Deja Vu font family.
+,ttf-linux-libertine,provides Serif and Sans Serif OpenType unicode fonts.
+,unbound,is a validating recursive and caching DNS resolver.
+,unclutter,is a small X11 program for hiding the mouse cursor.
+,unrar,decompresses rar archives.
+,unzip,extracts and views zip archives.
+,usbutils,is a collection of USB tools.
+,v4l2loopback-dkms,is the dkms for v4l2-loopback.
+,vdirsyncer,synchronizes CalDAV and CardDAV.
+,vim,is a highly configurable improved version of Vi.
+,vkd3d,is a Direct3D 12 to Vulkan translation library.
+,vlc,is an MPEG, VCD/DVD, and DivX player.
+,vulkan-intel,is Intel's Vulkan mesa driver.
+,vulkan-radeon,is Radeon's Vulkan mesa driver.
+,waybar,is a customizable Wayland bar for wlroots compositors.
+,waylock,is a Wayland screen locker.
+,wget,is a network utility to retrieve files from the internet.
+,wine,is a compatibility layer for Windows programs.
+,wine-gecko,is WINE's Internet Explorer replacement.
+,wine-mono,is WINE's .NET replacement.
+,winetricks,is a script to install redistributable runtime libraries in WINE.
+,wireguard-tools,provides tools for configuring Wireguard network tunnels.
+,wl-clipboard,is a command-line clipboard utility for Wayland.
+,wmctrl,is a command-line tool to control EWMH compliant window managers.
+,wpa_supplicant,is a utility providing key negotiation for WPA wireless networks.
+,wpa_supplicant-runit,is the runit service for wpa_supplicant.
+,xclip,is a command-line clipboard utility for X.
+,xdg-user-dirs-gtk,creates user dirs and asks to relocalize them.
+,xdotool,is a command-line X automation tool.
+,xf86-input-evdev,is the X11 evdev input driver.
+,xf86-input-synaptics,is the X11 driver for touchpads.
+,xf86-input-vmmouse,is the X11 VMWare mouse input driver.
+,xf86-input-void,is the X11 void input driver.
+,xf86-video-amdgpu,is the AMD X11 video driver.
+,xf86-video-ati,is the ATI X11 video driver.
+,xf86-video-dummy,is the dummy X11 video driver.
+,xf86-video-fbdev,is the framebuffer X11 video driver.
+,xf86-video-intel,is the intel X11 video driver.
+,xf86-video-vmware,is the VMWare X11 video driver.
+,xorg-server,is the X11 server.
+,xorg-server-xephyr,runs a nested X server as an X application.
+,xorg-xbacklight,is an RandR-based backlight control application.
+,xorg-xev,prints X events.
+,xorg-xgamma,alters a monitor's gamma correction.
+,xorg-xinit,initializes X server.
+,xorg-xinput,is a command-line tool to configure X devices.
+,xorg-xkill,kills a client by its X resource.
+,xorg-xprop,displays properties for X windows.
+,xorg-xwayland,runs X clients under Wayland.
+,xss-lock,allows using an external locker as X screen saver.
+,xwallpaper,is a wallpaper setting utility for X.
+,youtube-dl,is a command line program to download videos from YouTube and other sites.
+,zathura,is a minimal document viewer.
+,zathura-pdf-mupdf,"adds PDF, ePub, and OpenXPS) support to Zathura through MuPDF."
+,zathura-ps,adds ps support to zathura through libspectre.
+A,auto-cpufreq,is a daemon to optimize CPU speed and power.
+A,brave-bin,is a web browser with privacy features.
+A,bottles,manages WINE and proton prefixes.
+A,debtap,converts .deb packages to Arch packages.
+A,devour,is an X11 window manager-agnostic swallowing program for terminals.
+A,dragon-drop,provides drag-and-drop support for X and Wayland.
+A,duckstation-qt-bin,emulates a Sony PlayStation 1.
+A,epub-thumbnailer-git,generates thumbnails for EPUB e-books.
+A,firejail-pacman-hook,updates Firejail symlinks on pacman operations.
+A,fontpreview-ueberzug-git,previews system fonts in the terminal.
+A,gaiasky,is a libre 3D universe simulator.
+A,gomuks,is a TUI matrix client.
+A,greetd,is a generic greeter daemon.
+A,greetd-tuigreet,is a TUI greeter for greetd.
+A,hardened_malloc,is a hardened memory allocator.
+A,htop-vim,is an interactive system monitor with vim keybindings.
+A,j4-dmenu-desktop,is a dmenu interface for .desktop files.
+A,labwc,is a floating Wayland window compositor inspired by openbox.
+A,lf-git,is a terminal file manager inspired by ranger.
+A,mksh,is the MirBSD Korn SHell.
+A,mpd-mpris,provides an MPRIS interface for mpd.
+A,mpd-notification,provides notifications on mpd events.
+A,mutt-wizard,configures an offline email set up.
+A,nerd-fonts-mononoki,installs the mononoki nerd font.
+A,paccache-hook,is a configurable hook to clean the pacman package cache.
+A,paper-icon-theme,is an icon theme.
+A,plata-theme,is a GTK theme based on Material Design Refresh.
+A,qbpm-git,manages qutebrowser profiles.
+A,qt6gtk2,provides a gtk2 theme for Qt6.
+A,river,is a Wayland dynamic tiling window compositor.
+A,sc-im,is a spreadsheet program based on SC with Vim keybindings.
+A,simple-mtpfs,is a FUSE filesystem for MTP devices.
+A,simple-package-manager,is an Appimage package manager.
+A,stack-static,is the statically linked Haskell Tool Stack.
+A,swhkd-bin,is a display-server-independent hotkey daemon inspired by sxhkd.
+A,syncterm,is a BBS terminal client with ANSI music and IBM charset.
+A,timeshift,is a system restore utility for Linux.
+A,tremc,is a curses interface for transmission.
+A,ttf-symbola-free,is the libre version of a font with grayscale emojis.
+A,vimv-git,is a bulk-rename tool using vim.
+A,wdisplays,is a graphical Wayland monitor configurator for wlroots compositors.
+A,wlr-randr,is a terminal Wayland monitor configurator.
+A,xpointerbarrier-git,creates four pointer barriers around each XRandR screen.
+A,xrestop,uses the X-Resource extension to provide statistics.
+A,xurls,extracts urls from plain text.
+A,ytfzf,is a posix script to find and watch YouTube videos from the terminal.
+G,https://git.zachir.xyz/dmenu.git,is an X11 menu interface for scripting configured by ZachIR.
+G,https://git.zachir.xyz/dwm.git,is an X11 dynamic tiling window manager configured by ZachIR.
+G,https://git.zachir.xyz/dwmblocks.git,is a dwm bar daemon inspired by i3blocks configured by ZachIR.
+G,https://git.zachir.xyz/artix-runit-services.git,is a collection of runit services for daemons not in the Artix repos.
+G,https://git.zachir.xyz/slock.git, is a lightweight X11 screen locker configured by ZachIR.
+G,https://git.zachir.xyz/st.git,is a lightweight X11 terminal interface configured by ZachIR.
diff --git a/zirless.sh b/zirless.sh
index 5cb800d..cf0fba0 100644
--- a/zirless.sh
+++ b/zirless.sh
@@ -120,7 +120,10 @@ Include = /etc/pacman.d/mirrorlist-arch
Include = /etc/pacman.d/mirrorlist-arch
[multilib]
-Include = /etc/pacman.d/mirrorlist-arch" \
+Include = /etc/pacman.d/mirrorlist-arch
+" >> /etc/pacman.conf >/dev/null 2>&1
+ pacman -Syy
+ pacman-key --refresh-keys ;}
>> /etc/pacman.conf 2>/dev/null ;}
manualinstall() { # Installs $1 manually if not installed. Used only for AUR helper here.
@@ -165,12 +168,6 @@ aurinstall() { \
$rootcmd -u "$name" $aurhelper -S --noconfirm "$1" >/dev/null 2>&1
}
-pipinstall() { \
- dialog --title "ZIRLESS Installation" --infobox "Installing the Python package \`$1\` ($n of $total). $1 $2" 5 70
- [ -x "$(command -v "pip")" ] || installpkg python-pip >/dev/null 2>&1
- yes | pip install "$1"
- }
-
installationloop() { \
([ -f "$progsfile" ] && cp "$progsfile" /tmp/progs.csv) || curl -Ls "$progsfile" | sed '/^#/d' > /tmp/progs.csv
total=$(wc -l < /tmp/progs.csv)
@@ -182,7 +179,6 @@ installationloop() { \
"A") aurinstall "$program" "$comment" ;;
"G") gitmakeinstall "$program" "$comment" ;;
"M") gitmakepkginstall "$program" "$comment" ;;
- "P") pipinstall "$program" "$comment" ;;
*) maininstall "$program" "$comment" ;;
esac
done < /tmp/progs.csv ;}
@@ -192,9 +188,12 @@ putgitrepo() { # Downloads a gitrepo $1 and places the files in $2 only overwrit
[ -z "$3" ] && branch="master" || branch="$repobranch"
dir=$(mktemp -d)
[ ! -d "$2" ] && mkdir -p "$2"
- chown "$name":wheel "$dir" "$2"
- $rootcmd -u "$name" git clone --recursive -b "$branch" --depth 1 --recurse-submodules "$1" "$dir" >/dev/null 2>&1
- $rootcmd -u "$name" cp -rfT "$dir" "$2"
+ chown "$name":"$name" "$dir" "$2"
+ sudo -u "$name" git clone --recursive -b "$branch" --depth 1 --recurse-submodules "$1" "$dir" >/dev/null 2>&1
+ sudo -u "$name" cp -rfT "$dir" "$2"
+ pushd "$2"
+ sudo -u "$name" make install
+ popd
}
systembeepoff() { dialog --infobox "Getting rid of that retarded error beep sound..." 10 50
@@ -246,9 +245,11 @@ adduserandpass || error "Error adding username and/or password."
# in a fakeroot environment, this is required for all builds with AUR.
newperms "allnopass"
-# Make pacman and paru colorful and adds eye candy on the progress bar because why not.
-grep -q "^Color" /etc/pacman.conf || sed -i "s/^#Color$/Color/" /etc/pacman.conf
-grep -q "ILoveCandy" /etc/pacman.conf || sed -i "/#VerbosePkgLists/a #ILoveCandy" /etc/pacman.conf
+# Make pacman and paru colorful but turns off ilovecandy on the progress bar.
+grep -q "^Color" /etc/pacman.conf || sed -i "s/^#Color$/Color/" /etc/pacman.conf ||
+ sed -i "/UseSyslog/a Color" /etc/pacman.conf
+grep -q "^ILoveCandy" /etc/pacman.conf && sed -i "s/^ILoveCandy/#ILoveCandy" /etc/pacman.conf
+grep -q "^#ParallelDownloads" /etc/pacman.conf && sed -i "s/^#ParallelDownloads/ParallelDownloads/" /etc/pacman.conf
# Use all cores for compilation.
sed -i "s/-j2/-j$(nproc)/;s/^#MAKEFLAGS/MAKEFLAGS/" /etc/makepkg.conf
@@ -267,7 +268,7 @@ dialog --title "ZIRLESS Installation" --infobox "Finally, installing \`libxft-bg
yes | $rootcmd -u "$name" $aurhelper -S libxft-bgra-git >/dev/null 2>&1
# Install the dotfiles in the user's home directory
-putgitrepo "$dotfilesrepo" "/home/$name" "$repobranch"
+putgitrepo "$dotfilesrepo" "/home/$name/.config" "$repobranch"
rm -f "/home/$name/README.md" "/home/$name/LICENSE" "/home/$name/FUNDING.yml"
# Create default urls file if none exists.
[ ! -f "/home/$name/.config/newsboat/urls" ] && echo "http://lukesmith.xyz/rss.xml