AniNIX preferred shell environment
Go to file
2023-10-14 12:52:00 -05:00
AdminScripts Installation updates and scripts 2022-11-20 20:53:19 -06:00
EtcFiles Removing ssh-agent.service for upstream bb1d76e93e; LICENSE update 2023-10-14 12:52:00 -05:00
tests Adding safety test for keyrings. 2022-01-19 18:01:29 -06:00
UserScripts License update & egrep replacement for hooks 2023-10-14 12:51:41 -05:00
.gitignore Adding safety test for keyrings. 2022-01-19 18:01:29 -06:00
LICENSE License update & egrep replacement for hooks 2023-10-14 12:51:41 -05:00
Makefile License update & egrep replacement for hooks 2023-10-14 12:51:41 -05:00
PKGBUILD Installation updates and scripts 2022-11-20 20:53:19 -06:00
README.md Keyring updates 2022-01-18 10:49:51 -06:00
ShadowArch.install Installation updates and scripts 2022-11-20 20:53:19 -06:00

ShadowArch is an installation of ArchLinux following a general list of installed packages and configuration. We provide scripts to install the underlying OS and configure it, but we do not distribute ArchLinux software.

For more information on ArchLinux, check the link.

This package holds core files for our environment.

  • EtcFiles: Core configuration for our experience
  • AdminScripts: Scripts requiring root access for administration
  • UserScripts: Useful user-space deprivileged scripts

How to Install ShadowArch

The AniNIX provides an installer to install ShadowArch and some basic clients for its services, similar to the KickStart concept from RHEL/CentOS.

  1. Acquire a read-write storage device and some hardware with at least 256M of RAM and one core.
  2. [https://archlinux.org/download Download the Arch ISO] and boot the VM or host from that.
  3. Run the following to minimally install ShadowArch:
    1. wget https://aninix.net/shadowarch; vi shadowarch; bash shadowarch
    2. Some flags are listed below.
  4. If you run across trouble, take a look at the Troubleshooting section at the bottom.

Defaults

These are installed by default with the base package of ShadowArch, along with the ArchLinux base packages, grub, parted, os-prober, net-tools, bind-tools, and wget.

  • git for source-code access
  • elinks for browsing
  • openssh for remote access
  • weechat for IRC
  • make for compiling source
  • tor for privacy
  • tmux for terminal control and resumability.

Particularly in virtualized environments, ShadowArch has not had good luck with PulseAudio -- we instead rely on the default ALSA for sound. Especially when trying to play sound remotely, AniNIX Yggdrasil is superior to PulseAudio over SSH due to the SSH overhead and buffering.

Encryption

ShadowArch generally uses serpent-xts-plain64 with a sha512 hash and 512 keysize. If you choose not to encrypt your drive, you will need to edit the script accordingly in the storage layout section. When the ShadowArch install boots, it will prompt for a password unless you set up a crypttab for the root.

If you do encrypt your root on a server, you should look at adding IP to mkinitcpio and the encryptssh hook. We recommend assigning a static IP for NAT forwarding rules and using the dropbear AUR package.

ShadowArch will encrypt your storage with the -e flag.

GUI

The -g flag will add a graphical desktop environment (startxfce4), GUI browser (seamonkey), and resource visualizer (conky). You're welcome to replace this desktop environment with KDE, GNOME, Cinnamon, i3, or any other DE of choice, but we have found XFCE4 to be reliable and easy to configure.

Mac set some standard keybinds that we abide by. Please note that the ⌘ character translates to the "Ctrl" key on most keyboards and "Super" translates to the Windows or ⊞ key on most keyboards. We assume QWERTY and standard Windows-style keyboards that saturate the market today. Some applications, like vim or tmux, will have their own keybinds, but most like Chromium or libreoffice will respect near-global defaults. The Alt key in particular will allow menu navigation in most applications -- this is really helpful for minimize mouse activity.

Some keybinds preferred for ShadowArch GUI management are below. {|class="wikitable" |- | Super+B || Open Browser |- | Super+T || Open Terminal emulator |- | Super+R || Run Command |- | Super+E || File Explorer |- | Super+ArrowUp || Maximize current window |- | Super+ArrowDown || Minimize current window |- | Super+ArrowLeft || Snap window left |- | Super+ArrowRight || Snap window right |- | Super+PageUp || Next Workspace |- | Super+PageDown || Previous Workspace |- | Ctrl+Alt+[Number] || Move window to workspace [number] |}

Note: Standalone machines may benefit from sound tuning found in the Arch Wiki for "professional audio."

Productivity

LibreOffice is the package of choice for office productivity (powerpoints, documents, and spreadsheets), and gIMP is the image editor of choice. We include feh for images, VLC for video and music, and evince as a reader. We are searching for video and audio editors.

Holocron

: The -s flag is reserved for Holocron.

Emulating ShadowArch in Other Environments

XFCE4 in Linux

Clone the [https://aninix.net/foundation/MiscScripts/ MiscScripts] repository from the Foundation and use the contents of ShadowArch/skel/ to set up your home folder. You may have to find additional themes that meet your needs -- we use stock Xfce-dusk.

CLI Customizations

We include the following customizations:

  • A tty-allow local group that is required for non-root users to have local access
  • Auto-created aliases for all the hosts defined in a user's ~/.ssh/known_hosts and the local Irssi configs
  • A PS1 that includes the last exit code, organization, hostname, OS type, user, date, and working directory.
  • VNC and Tor Lynx aliases
  • Autostarting and resuming tmux (or screen) sessions for remote logins
  • Some niceties for Makefile, top, and vim support

Windows

  1. Desktop themes can be established with [https://aninix.net/wolfpack/aninix.deskthemepack a provided deskthemepack file].
  2. Chrome with DuckDuckGo as the default search engine is our browser recommendation. This can be bound to the ShadowArch-like keybind with Start > Chrome > Right-click > Open File Location > Right-click icon > Properties and set the shortcut key to B. We presently don't have a way to bind the Super key in the same way.
  3. Terminal Emulator can be provided by either Powershell or PuTTY, depending on where shell activity should live. Use the same steps as the browser above to set the keybind.
  4. Default Windows Explorer and its keybinds equate to the XFCE4 thunar application used by ShadowArch. The Run and Explorer keybinds natively present in Windows will map.
  5. Default Windows Aero window managment will map to the ShaodowArch keybinds.
  6. Workspace management won't be quite the same, but this CNET article offers some help on understanding the difference. The Windows environment is a bit more dynamic so it requires more keybinds.

References

  • The ArchLinux Wiki is an invaluable source of information, particularly around packages deployed by ShadowArch hosts. These are some known issues the users of ShadowArch have come across with weird reasons.

Troubleshooting

No Audio

Make sure the user is in the audio group on the system and alsamixer is not muted.

No Desktop

Run xfdesktop -- sometimes xinit loses this execution and the desktop doesn't display.