GithubHelp home page GithubHelp logo

dotfiles-3's Introduction

muesli's dotfiles

Platform Support

On both ArchLinux and macOS run setup.sh to bootstrap an install:

./setup.sh

Bootstrap an ArchLinux Install

Install Drivers

For Intel i5/i7 based machines simply run:

./packages/arch/drivers/intel.sh

If you want to control Razer RGB devices, run:

./packages/arch/drivers/razer.sh

First Steps

Add users to required groups: https://wiki.archlinux.org/index.php/users_and_groups#Group_list

Enable microcode updates: https://wiki.archlinux.org/index.php/microcode

Install systemd-boot pacman hook: https://wiki.archlinux.org/index.php/systemd-boot#Automatically

Enable SDDM: systemctl enable sddm

Configuration

Setup GPG SmartCard

echo "enable-ssh-support" >> ~/.gnupg/gpg-agent.conf
echo "pcsc-driver /usr/lib/libpcsclite.so" > ~/.gnupg/scdaemon.conf
echo "card-timeout 5" >> ~/.gnupg/scdaemon.conf
echo "disable-ccid" >> ~/.gnupg/scdaemon.conf
systemctl enable pcscd
systemctl start pcscd

Fetch your public key from the SmartCard:

gpg --card-edit
gpg/card> fetch

More info in the Arch wiki: https://wiki.archlinux.org/index.php/GnuPG#SSH_agent

Adjust System Limits

Edit /etc/systemd/system.conf.d/limits.conf

[Manager]
DefaultLimitNOFILE=32768
DefaultTasksMax=32768

Suspend issues

Should you suffer from suspend issues (like the system resuming from sleep immediately), this is most likely caused by the USB chipset acting up. To prevent that, create a new systemd unit /etc/systemd/system/disable-usb-wakeup.service:

[Unit]
Description=Disable USB wakeup triggers in /proc/acpi/wakeup

[Service]
Type=oneshot
ExecStart=/bin/sh -c "echo XHC > /proc/acpi/wakeup"
ExecStop=/bin/sh -c "echo XHC > /proc/acpi/wakeup"
RemainAfterExit=yes

[Install]
WantedBy=multi-user.target

Enable & start the new unit now:

systemctl enable disable-usb-wakeup
systemctl start disable-usb-wakeup

System Tweaks

Enable smartd: https://wiki.archlinux.org/index.php/S.M.A.R.T.

Limit journal size: https://wiki.archlinux.org/index.php/Systemd#Journal_size_limit

Configure Avahi/mDNS: https://wiki.archlinux.org/index.php/avahi

Install TLP: https://wiki.archlinux.org/index.php/TLP

Enable zram: https://wiki.archlinux.org/index.php/Improving_performance#Zram_or_zswap

Configuration for Unix Platforms

GPG

Preferred Key

Edit ~/.gnupg/gpg.conf

default-key CA1EBB7E

Caching & Timeouts

Edit ~/.gnupg/gpg-agent.conf

echo "default-cache-ttl 1800" >> ~/.gnupg/gpg-agent.conf
echo "max-cache-ttl 999999" >> ~/.gnupg/gpg-agent.conf

Setup poldi

Install poldi-git. Add your key to /etc/poldi/localdb/keys and add your user to /etc/poldi/localdb/users.

Edit /etc/pam.d/sudo and prepend:

auth sufficient pam_poldi.so

Setup multi-factor authentication

Edit /etc/pam.d/system-auth-yubico

echo "auth required pam_yubico.so id=xxxxx" > /etc/pam.d/system-auth-yubico

Put the public part of your OTP (the first 12 characters) in ~/.yubico/authorized_yubikeys:

muesli:cc..........

Edit /etc/pam.d/sudo and prepend:

auth sufficient pam_yubico.so id=xxxxx

sudo Timeout

Edit /etc/sudoers

echo "Defaults:muesli timestamp_timeout=30" >> /etc/sudoers

libinput Gestures

Install libinput-gestures and edit ~/.config/libinput-gestures.conf.

libinput-gestures-setup autostart

dotfiles-3's People

Contributors

muesli avatar

Watchers

James Cloos avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.