mirror of
https://github.com/starr-dusT/dotfiles.git
synced 2025-02-19 19:27:31 -08:00
change to arch
This commit is contained in:
parent
a2839ec0e8
commit
a13aa14256
@ -1,6 +1,6 @@
|
|||||||
# Additional Setup
|
# Additional Setup
|
||||||
|
|
||||||
The following documents Void setup that wasn't automated with ansible.
|
The following documents Arch setup that wasn't automated with ansible.
|
||||||
|
|
||||||
## Radicale and vdirsyncer for contacts/calendar
|
## Radicale and vdirsyncer for contacts/calendar
|
||||||
|
|
||||||
@ -88,21 +88,3 @@ taskopen).
|
|||||||
|
|
||||||
My GTK theme is pulled down by chezmoi, but isn't active by default. This can
|
My GTK theme is pulled down by chezmoi, but isn't active by default. This can
|
||||||
be fixed with the lxappearance gui.
|
be fixed with the lxappearance gui.
|
||||||
|
|
||||||
## Single GPU Passthrough with Windows
|
|
||||||
|
|
||||||
Install libvirt hooks:
|
|
||||||
|
|
||||||
```bash
|
|
||||||
sudo mkdir -p /etc/libvirt/hooks
|
|
||||||
sudo wget 'https://raw.githubusercontent.com/PassthroughPOST/VFIO-Tools/master/libvirt_hooks/qemu' \
|
|
||||||
-O /etc/libvirt/hooks/qemu
|
|
||||||
sudo chmod +x /etc/libvirt/hooks/qemu
|
|
||||||
```
|
|
||||||
|
|
||||||
reboot....
|
|
||||||
|
|
||||||
|
|
||||||
```bash
|
|
||||||
|
|
||||||
```
|
|
||||||
|
@ -3,7 +3,7 @@
|
|||||||
help ()
|
help ()
|
||||||
{
|
{
|
||||||
echo "
|
echo "
|
||||||
Update void linux with ansible
|
Update arch linux with ansible
|
||||||
|
|
||||||
Usage: update <tags> <flags>
|
Usage: update <tags> <flags>
|
||||||
|
|
@ -1,39 +0,0 @@
|
|||||||
import yaml
|
|
||||||
import subprocess
|
|
||||||
|
|
||||||
print("I'm the void doctor!")
|
|
||||||
|
|
||||||
with open('/home/tstarr/.local/share/chezmoi/provision/tasks/desktop/packages.yml', 'r') as f:
|
|
||||||
in_yaml = yaml.safe_load(f)
|
|
||||||
|
|
||||||
installed = subprocess.getoutput("xbps-query -m | sed 's!-[^-]*$!!'").split("\n")
|
|
||||||
installed.extend(subprocess.getoutput("flatpak list --columns=application").split("\n"))
|
|
||||||
|
|
||||||
standard_keys = ["xbps", "flatpak"]
|
|
||||||
custom_keys = { "xbps-src": {"key": "include_tasks", "value": "xbps-src.yml"}}
|
|
||||||
|
|
||||||
def parse_xbps_src(in_dict):
|
|
||||||
pack_list = []
|
|
||||||
for item in in_dict["loop"]:
|
|
||||||
if "package" in item.keys():
|
|
||||||
pack_list.append(item["package"])
|
|
||||||
return pack_list
|
|
||||||
|
|
||||||
packages = []
|
|
||||||
|
|
||||||
for item in in_yaml:
|
|
||||||
# Check standard for standard keys
|
|
||||||
for key in standard_keys:
|
|
||||||
if key in item.keys():
|
|
||||||
packages.extend(item[key]["name"])
|
|
||||||
|
|
||||||
# Check custom if standard doesn't work
|
|
||||||
for key in custom_keys.keys():
|
|
||||||
if custom_keys[key]["key"] in item.keys():
|
|
||||||
if custom_keys[key]["value"] in item[custom_keys[key]["key"]]:
|
|
||||||
if key == "xbps":
|
|
||||||
packages.extend(parse_xbps_src(item))
|
|
||||||
|
|
||||||
not_ansible = [i for i in installed if i not in packages]
|
|
||||||
print("Installed, but not in ansible: ", not_ansible)
|
|
||||||
|
|
@ -1,3 +0,0 @@
|
|||||||
#!/bin/bash
|
|
||||||
|
|
||||||
tmp=$(mktemp); xbps-query -m > ${tmp}; xilog | grep -f ${tmp}; /usr/bin/rm ${tmp}
|
|
@ -1,22 +0,0 @@
|
|||||||
#!/usr/bin/python
|
|
||||||
|
|
||||||
import os
|
|
||||||
import subprocess
|
|
||||||
import sys
|
|
||||||
|
|
||||||
input_str = sys.stdin.read().replace("\n", "")
|
|
||||||
pkg = input_str.replace(" ", "")[1:]
|
|
||||||
cmd = "xbps-query -Rs %s"%(pkg)
|
|
||||||
output = subprocess.getoutput(cmd)
|
|
||||||
if output.count('[') > 1:
|
|
||||||
cmd = "xbps-query -Rs %s | grep -E ' %s-[0-9](.|[0-9])[0-9]'"%(pkg,pkg)
|
|
||||||
output = subprocess.getoutput(cmd)
|
|
||||||
upper_pos = -1
|
|
||||||
for index, char in enumerate(output):
|
|
||||||
if char == char.upper() and char.isalpha():
|
|
||||||
upper_pos = index
|
|
||||||
break
|
|
||||||
if upper_pos == -1:
|
|
||||||
sys.stdout.write("error")
|
|
||||||
else:
|
|
||||||
sys.stdout.write(input_str + " # " + output[upper_pos:])
|
|
@ -196,9 +196,9 @@ bindsym $mod+Shift+r move container to workspace $tag9
|
|||||||
bindsym $mod+Shift+t move container to workspace $tag0
|
bindsym $mod+Shift+t move container to workspace $tag0
|
||||||
|
|
||||||
# audio
|
# audio
|
||||||
bindsym XF86AudioRaiseVolume exec pactl set-sink-volume 0 +2%
|
bindsym XF86AudioRaiseVolume exec pactl set-sink-volume @DEFAULT_SINK@ +2%
|
||||||
bindsym XF86AudioLowerVolume exec pactl set-sink-volume 0 -2%
|
bindsym XF86AudioLowerVolume exec pactl set-sink-volume @DEFAULT_SINK@ -2%
|
||||||
bindsym XF86AudioMute exec amixer -q set Master toggle
|
bindsym XF86AudioMute exec pactl set-sink-mute @DEFAULT_SINK@ toggle
|
||||||
|
|
||||||
# [o]pen applications
|
# [o]pen applications
|
||||||
bindsym $mod+Return exec alacritty
|
bindsym $mod+Return exec alacritty
|
||||||
@ -206,7 +206,7 @@ bindsym $mod+a exec rofi -show drun -show-icons
|
|||||||
bindsym $mod+Shift+a exec rofi -show window -show-icons
|
bindsym $mod+Shift+a exec rofi -show window -show-icons
|
||||||
bindsym $mod+o mode open
|
bindsym $mod+o mode open
|
||||||
mode open {
|
mode open {
|
||||||
bindsym b exec flatpak run org.mozilla.firefox, $e
|
bindsym b exec firefox, $e
|
||||||
bindsym s exec steam, $e
|
bindsym s exec steam, $e
|
||||||
bindsym d exec flatpak run com.discordapp.Discord, $e
|
bindsym d exec flatpak run com.discordapp.Discord, $e
|
||||||
bindsym Escape mode default
|
bindsym Escape mode default
|
||||||
@ -229,7 +229,6 @@ mode scratch {
|
|||||||
#-------------------------------------------------------------------------------
|
#-------------------------------------------------------------------------------
|
||||||
|
|
||||||
exec --no-startup-id "autorandr --change && i3-msg restart"
|
exec --no-startup-id "autorandr --change && i3-msg restart"
|
||||||
exec --no-startup-id "pipewire & pipewire-pulse &"
|
|
||||||
exec --no-startup-id "udiskie &"
|
exec --no-startup-id "udiskie &"
|
||||||
exec_always --no-startup-id "$HOME/.config/i3/scripts/polybar.sh"
|
exec_always --no-startup-id "$HOME/.config/i3/scripts/polybar.sh"
|
||||||
exec_always --no-startup-id "blueman-applet"
|
exec_always --no-startup-id "blueman-applet"
|
||||||
|
@ -116,11 +116,6 @@ alias cc="chezmoi cd"
|
|||||||
alias cdr="chezmoi apply --verbose --dry-run"
|
alias cdr="chezmoi apply --verbose --dry-run"
|
||||||
alias ca="chezmoi apply"
|
alias ca="chezmoi apply"
|
||||||
|
|
||||||
# xbps
|
|
||||||
alias xi="sudo xbps-install"
|
|
||||||
alias xr="sudo xbps-remove"
|
|
||||||
alias xl="void-list-packages"
|
|
||||||
|
|
||||||
# trashcli
|
# trashcli
|
||||||
alias rm='echo "This is not the command you are looking for."; false'
|
alias rm='echo "This is not the command you are looking for."; false'
|
||||||
alias tp='trash-put'
|
alias tp='trash-put'
|
||||||
|
12
jumpstart.sh
12
jumpstart.sh
@ -2,15 +2,21 @@
|
|||||||
|
|
||||||
echo -e "Starting initial setup..."
|
echo -e "Starting initial setup..."
|
||||||
|
|
||||||
CHEZDIR="/home/test/.local/share/chezmoi"
|
CHEZDIR="/home/tstarr/.local/share/chezmoi"
|
||||||
echo "Input email for bitwarden:"
|
echo "Input email for bitwarden:"
|
||||||
read bitemail
|
read bitemail
|
||||||
|
|
||||||
# Install ansible python dependencies
|
# Install ansible python dependencies
|
||||||
sudo xbps-install -Syu -y
|
sudo pacman -Syu
|
||||||
sudo xbps-install python3 python3-pip ansible -y
|
sudo pacman -S git chezmoi python python-pip ansible base-devel
|
||||||
sudo pip install pexpect
|
sudo pip install pexpect
|
||||||
|
|
||||||
|
# Install yay
|
||||||
|
git clone https://aur.archlinux.org/yay.git ~/tmp/yay
|
||||||
|
cd ~/tmp/yay
|
||||||
|
makepkg -si
|
||||||
|
cd -
|
||||||
|
|
||||||
# Install ansible extensions
|
# Install ansible extensions
|
||||||
ansible-galaxy install -r "$CHEZDIR/provision/requirements.yml"
|
ansible-galaxy install -r "$CHEZDIR/provision/requirements.yml"
|
||||||
|
|
||||||
|
272
provision/library/yay
Executable file
272
provision/library/yay
Executable file
@ -0,0 +1,272 @@
|
|||||||
|
#!/usr/local/bin/python
|
||||||
|
|
||||||
|
# The MIT License (MIT)
|
||||||
|
#
|
||||||
|
# Copyright (c) 2014 Austin Hyde
|
||||||
|
#
|
||||||
|
# Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||||
|
# of this software and associated documentation files (the "Software"), to deal
|
||||||
|
# in the Software without restriction, including without limitation the rights
|
||||||
|
# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||||
|
# copies of the Software, and to permit persons to whom the Software is
|
||||||
|
# furnished to do so, subject to the following conditions:
|
||||||
|
#
|
||||||
|
# The above copyright notice and this permission notice shall be included in
|
||||||
|
# all copies or substantial portions of the Software.
|
||||||
|
#
|
||||||
|
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||||
|
# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||||
|
# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||||
|
# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||||
|
# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||||
|
# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
||||||
|
# THE SOFTWARE.
|
||||||
|
|
||||||
|
def yay_in_path(module):
|
||||||
|
rc, _, _ = module.run_command('which yay', check_rc=False)
|
||||||
|
return rc == 0
|
||||||
|
|
||||||
|
|
||||||
|
def pacman_in_path(module):
|
||||||
|
rc, _, _ = module.run_command('which pacman', check_rc=False)
|
||||||
|
return rc == 0
|
||||||
|
|
||||||
|
def get_version(yay_output):
|
||||||
|
'''Take yay -Qi or yay -Si output and get the Version'''
|
||||||
|
lines = yay_output.split('\n')
|
||||||
|
for line in lines:
|
||||||
|
if 'Version' in line:
|
||||||
|
return line.split(':')[1].strip()
|
||||||
|
return None
|
||||||
|
|
||||||
|
def query_package(module, pkg, state):
|
||||||
|
'''
|
||||||
|
Query the package status in both the local system and the repository.
|
||||||
|
Returns three booleans to indicate:
|
||||||
|
* If the package is installed
|
||||||
|
* If the package is up-to-date
|
||||||
|
* Whether online information was available
|
||||||
|
'''
|
||||||
|
local_check_cmd = 'yay -Qi %s' % pkg
|
||||||
|
local_check_rc, local_check_stdout, _ = module.run_command(local_check_cmd, check_rc=False)
|
||||||
|
if local_check_rc != 0:
|
||||||
|
return False, False, False
|
||||||
|
|
||||||
|
# No need to check for the repo version in some situations
|
||||||
|
# Indicate the package is out-of-date, because we chose not to check
|
||||||
|
if state == 'present' or state == 'absent':
|
||||||
|
return True, False, False
|
||||||
|
|
||||||
|
local_version = get_version(local_check_stdout)
|
||||||
|
|
||||||
|
repo_check_cmd = 'yay -Si %s' % pkg
|
||||||
|
repo_check_rc, repo_check_stdout, repo_check_stderr = module.run_command(repo_check_cmd, check_rc=False)
|
||||||
|
repo_version = get_version(repo_check_stdout)
|
||||||
|
|
||||||
|
if repo_check_rc == 0 and repo_check_stderr == '':
|
||||||
|
return True, (local_version == repo_version), False
|
||||||
|
else:
|
||||||
|
# Indicate package is up-to-date, but just because we hit an error contacting the repo
|
||||||
|
return True, True, True
|
||||||
|
|
||||||
|
def update_package_db(module):
|
||||||
|
rc, _, stderr = module.run_command('yay -Sy', check_rc=False)
|
||||||
|
|
||||||
|
if rc == 0 and stderr == '':
|
||||||
|
return False, 'Package DB up-to-date'
|
||||||
|
elif rc == 1 and stderr == '':
|
||||||
|
return True, 'Updated the package DB'
|
||||||
|
else:
|
||||||
|
module.fail_json(msg='could not update package db: %s' % stderr)
|
||||||
|
|
||||||
|
def upgrade(module):
|
||||||
|
check_rc, check_stdout, check_stderr = module.run_command('yay -Qqu', check_rc=False)
|
||||||
|
|
||||||
|
if check_rc == 0 and check_stderr == '' and module.check_mode:
|
||||||
|
return True, '%s package(s) would be upgraded' % (len(check_stdout.split('\n')) - 1)
|
||||||
|
elif check_rc == 0 and check_stderr == '' and not module.check_mode:
|
||||||
|
upgrade_rc, _, upgrade_stderr = module.run_command(
|
||||||
|
'yay -Su --noconfirm',
|
||||||
|
check_rc=False,
|
||||||
|
)
|
||||||
|
|
||||||
|
if upgrade_rc == 0:
|
||||||
|
return True, 'System upgraded'
|
||||||
|
else:
|
||||||
|
module.fail_json(msg='unable to upgrade: %s' % upgrade_stderr)
|
||||||
|
elif check_rc == 1 and check_stderr == '':
|
||||||
|
return False, 'Nothing to upgrade'
|
||||||
|
else:
|
||||||
|
module.fail_json(msg='unable to check for upgrade: %s' % check_stderr)
|
||||||
|
|
||||||
|
def get_sudo_user(module):
|
||||||
|
# ansible sets the SUDO_USER environment variable. Default to using this,
|
||||||
|
# checking USER and then `logname` as backups.
|
||||||
|
user = os.environ.get('SUDO_USER')
|
||||||
|
|
||||||
|
# If ansible is run as root with become_user set, use the specified user
|
||||||
|
# instead of root.
|
||||||
|
if not user or user == 'root':
|
||||||
|
user = os.environ.get('USER')
|
||||||
|
|
||||||
|
if not user:
|
||||||
|
rc, stdout, _ = module.run_command('logname', check_rc=True)
|
||||||
|
user = stdout
|
||||||
|
|
||||||
|
return user
|
||||||
|
|
||||||
|
def check_packages(module, pkgs, state):
|
||||||
|
would_be_changed = []
|
||||||
|
|
||||||
|
for pkg in pkgs:
|
||||||
|
installed, updated, _ = query_package(module, pkg, state)
|
||||||
|
if ((state in ['present', 'latest'] and not installed) or
|
||||||
|
(state == 'latest' and not updated) or
|
||||||
|
(state == 'absent' and installed)):
|
||||||
|
would_be_changed.append(pkg)
|
||||||
|
|
||||||
|
word = 'installed'
|
||||||
|
if state == 'absent':
|
||||||
|
word = 'removed'
|
||||||
|
|
||||||
|
if would_be_changed:
|
||||||
|
return True, '%s package(s) would be %s' % (len(would_be_changed), word)
|
||||||
|
else:
|
||||||
|
return False, 'All packages are already %s' % word
|
||||||
|
|
||||||
|
def install_packages(module, pkgs, state):
|
||||||
|
num_installed = 0
|
||||||
|
package_err = []
|
||||||
|
message = ''
|
||||||
|
|
||||||
|
sudo_user = get_sudo_user(module)
|
||||||
|
cmd = 'sudo -u %s yay --noconfirm -S %s'
|
||||||
|
|
||||||
|
for pkg in pkgs:
|
||||||
|
installed, updated, latest_error = query_package(module, pkg, state)
|
||||||
|
if latest_error and state == 'latest':
|
||||||
|
package_err.append(pkg)
|
||||||
|
|
||||||
|
if installed and (state == 'present' or (state == 'latest' and updated)):
|
||||||
|
continue
|
||||||
|
|
||||||
|
rc, _, stderr = module.run_command(cmd % (sudo_user, pkg), check_rc=False)
|
||||||
|
|
||||||
|
if rc != 0:
|
||||||
|
module.fail_json(msg='Failed to install package %s, because: %s' % (pkg, stderr))
|
||||||
|
|
||||||
|
num_installed += 1
|
||||||
|
|
||||||
|
if state == 'latest' and len(package_err) > 0:
|
||||||
|
message = 'But could not ensure "latest" state for %s package(s) as remote version could not be fetched.' % package_err
|
||||||
|
|
||||||
|
if num_installed > 0:
|
||||||
|
return True, 'Installed %s package(s). %s' % (num_installed, message)
|
||||||
|
else:
|
||||||
|
return False, 'All packages were already installed. %s' % message
|
||||||
|
|
||||||
|
def remove_packages(module, pkgs, recurse, state):
|
||||||
|
num_removed = 0
|
||||||
|
|
||||||
|
arg = 'R'
|
||||||
|
word = 'remove'
|
||||||
|
if recurse:
|
||||||
|
arg = 'Rs'
|
||||||
|
word = 'recursively remove'
|
||||||
|
|
||||||
|
cmd = 'pacman -%s --noconfirm %s'
|
||||||
|
|
||||||
|
for pkg in pkgs:
|
||||||
|
installed, _, _ = query_package(module, pkg, state)
|
||||||
|
if not installed:
|
||||||
|
continue
|
||||||
|
|
||||||
|
rc, _, stderr = module.run_command(cmd % (arg, pkg), check_rc=False)
|
||||||
|
|
||||||
|
if rc != 0:
|
||||||
|
module.fail_json(msg='failed to %s package %s because: %s' % (word, pkg, stderr))
|
||||||
|
|
||||||
|
num_removed += 1
|
||||||
|
|
||||||
|
if num_removed > 0:
|
||||||
|
return True, 'Removed %s package(s)' % num_removed
|
||||||
|
else:
|
||||||
|
return False, 'All packages were already removed'
|
||||||
|
|
||||||
|
|
||||||
|
def main():
|
||||||
|
module = AnsibleModule(
|
||||||
|
argument_spec = dict(
|
||||||
|
name = dict(type='list'),
|
||||||
|
state = dict(
|
||||||
|
default='present',
|
||||||
|
choices=['absent', 'present', 'latest'],
|
||||||
|
),
|
||||||
|
recurse = dict(default='no', type='bool'),
|
||||||
|
upgrade = dict(default='no', type='bool'),
|
||||||
|
update_cache = dict(
|
||||||
|
default='no',
|
||||||
|
aliases=['update-cache'],
|
||||||
|
type='bool',
|
||||||
|
),
|
||||||
|
),
|
||||||
|
required_one_of = [['name', 'update_cache', 'upgrade']],
|
||||||
|
supports_check_mode = True
|
||||||
|
)
|
||||||
|
|
||||||
|
if not yay_in_path(module):
|
||||||
|
module.fail_json(msg="could not locate yay executable")
|
||||||
|
|
||||||
|
if not pacman_in_path(module):
|
||||||
|
module.fail_json(msg="could not locate pacman executable")
|
||||||
|
|
||||||
|
p = module.params
|
||||||
|
|
||||||
|
changed = False
|
||||||
|
messages = []
|
||||||
|
if p["update_cache"] and not module.check_mode:
|
||||||
|
updated, update_message = update_package_db(module)
|
||||||
|
changed = changed or updated
|
||||||
|
messages.append(update_message)
|
||||||
|
|
||||||
|
if p['update_cache'] and module.check_mode:
|
||||||
|
changed = True
|
||||||
|
messages.append('Would have updated the package cache')
|
||||||
|
|
||||||
|
if p['upgrade']:
|
||||||
|
upgraded, upgrade_message = upgrade(module)
|
||||||
|
changed = changed or upgraded
|
||||||
|
messages.append(upgrade_message)
|
||||||
|
|
||||||
|
if p['name'] and module.check_mode:
|
||||||
|
packages_would_change, check_message = check_packages(
|
||||||
|
module,
|
||||||
|
p['name'],
|
||||||
|
p['state'],
|
||||||
|
)
|
||||||
|
changed = changed or packages_would_change
|
||||||
|
messages.append(check_message)
|
||||||
|
elif p['name'] and not module.check_mode:
|
||||||
|
if p['name']:
|
||||||
|
if p['state'] in ['present', 'latest']:
|
||||||
|
packages_changed, package_message = install_packages(
|
||||||
|
module,
|
||||||
|
p['name'],
|
||||||
|
p['state'],
|
||||||
|
)
|
||||||
|
elif p['state'] == 'absent':
|
||||||
|
packages_changed, package_message = remove_packages(
|
||||||
|
module,
|
||||||
|
p['name'],
|
||||||
|
p['recurse'],
|
||||||
|
p['state'],
|
||||||
|
)
|
||||||
|
|
||||||
|
changed = changed or packages_changed
|
||||||
|
messages.append(package_message)
|
||||||
|
|
||||||
|
module.exit_json(changed=changed, msg='. '.join(messages))
|
||||||
|
|
||||||
|
|
||||||
|
from ansible.module_utils.basic import *
|
||||||
|
main()
|
@ -1,4 +1,4 @@
|
|||||||
- name: Ansible playbook to setup void linux
|
- name: Ansible playbook to setup arch linux
|
||||||
hosts: all
|
hosts: all
|
||||||
|
|
||||||
vars_files:
|
vars_files:
|
||||||
|
@ -1,47 +1,43 @@
|
|||||||
- name: Install desktop void packages
|
- name: Install desktop arch packages
|
||||||
xbps:
|
pacman:
|
||||||
name:
|
name:
|
||||||
- xorg # X.org meta-package
|
- xorg # X.org meta-package
|
||||||
|
- xorg-xinit
|
||||||
- xterm # X Terminal Emulator
|
- xterm # X Terminal Emulator
|
||||||
- alacritty # Cross-platform, GPU-accelerated terminal emulator
|
- alacritty # Cross-platform, GPU-accelerated terminal emulator
|
||||||
- mpv # Video player based on MPlayer/mplayer2
|
- mpv # Video player based on MPlayer/mplayer2
|
||||||
- python3-i3ipc # Improved Python library to control i3wm and sway
|
- python-i3ipc # Improved Python library to control i3wm and sway
|
||||||
- xprop # Property displayer for X
|
|
||||||
- lxappearance # LXDE Theme Switcher
|
- lxappearance # LXDE Theme Switcher
|
||||||
- blueman # GTK+ Bluetooth Manager
|
- blueman # GTK+ Bluetooth Manager
|
||||||
- xrandr # Primitive command line interface to RandR extension
|
|
||||||
- dunst # Lightweight and customizable notification daemon
|
- dunst # Lightweight and customizable notification daemon
|
||||||
- ffmpeg # Decoding, encoding and streaming software
|
- ffmpeg # Decoding, encoding and streaming software
|
||||||
- i3 # Improved tiling window manager
|
- i3 # Improved tiling window manager
|
||||||
- i3status # Status bar generator for i3bar, dzen2, xmobar or similar programs
|
- i3status # Status bar generator for i3bar, dzen2, xmobar or similar programs
|
||||||
- nitrogen # Background browser and setter for X with support for Xinerama
|
- nitrogen # Background browser and setter for X with support for Xinerama
|
||||||
- nvidia # NVIDIA drivers for linux - Libraries and Utilities
|
- nvidia-dkms # NVIDIA drivers for linux - Libraries and Utilities
|
||||||
- nvidia-libs-32bit # NVIDIA drivers for linux - common libraries (32bit)
|
- lib32-nvidia-utils # NVIDIA drivers for linux - common libraries (32bit)
|
||||||
- pavucontrol # PulseAudio Volume Control
|
- pavucontrol # PulseAudio Volume Control
|
||||||
- polybar # Fast and easy-to-use status bar
|
- polybar # Fast and easy-to-use status bar
|
||||||
- rofi # Window switcher, run dialog and dmenu replacement
|
- rofi # Window switcher, run dialog and dmenu replacement
|
||||||
- pcmanfm # LXDE file manager
|
- pcmanfm # LXDE file manager
|
||||||
- xclip # Command line interface to the X11 clipboard
|
|
||||||
- autorandr # Automatically select a display configuration based on connected devices
|
- autorandr # Automatically select a display configuration based on connected devices
|
||||||
- xsel # Command-line getting and setting the contents of the X selection
|
|
||||||
- clipmenu # Clipboard management using dmenu
|
- clipmenu # Clipboard management using dmenu
|
||||||
- nerd-fonts # Iconic font aggregator, collection and patcher
|
|
||||||
- xdotool # Command-line X11 automation tool
|
|
||||||
- flameshot # Powerful yet simple to use screenshot software for GNU/Linux
|
- flameshot # Powerful yet simple to use screenshot software for GNU/Linux
|
||||||
|
- firefox
|
||||||
state: present
|
state: present
|
||||||
become: true
|
become: true
|
||||||
|
|
||||||
- name: Install desktop xbps-src packages
|
- name: Install desktop aur packages
|
||||||
tags: ["src"]
|
yay:
|
||||||
include_tasks: ../include/xbps-src.yml
|
name:
|
||||||
loop:
|
- rofi-rbw # Simplistic password typer/copier using rofi and wofi
|
||||||
- package: rofi-rbw # Simplistic password typer/copier using rofi and wofi
|
- nerd-fonts-complete
|
||||||
repository: hostdir/binpkgs
|
state: present
|
||||||
|
become: true
|
||||||
|
|
||||||
- name: Install desktop flatpaks
|
- name: Install desktop flatpaks
|
||||||
flatpak:
|
flatpak:
|
||||||
name:
|
name:
|
||||||
- org.mozilla.firefox # Mozilla Firefox web browser
|
|
||||||
- com.discordapp.Discord # VoIP and instant messaging social platform
|
- com.discordapp.Discord # VoIP and instant messaging social platform
|
||||||
- org.gimp.GIMP # Create images and edit photographs
|
- org.gimp.GIMP # Create images and edit photographs
|
||||||
- org.inkscape.Inkscape # Vector Graphics Editor
|
- org.inkscape.Inkscape # Vector Graphics Editor
|
||||||
|
@ -1,4 +1,2 @@
|
|||||||
- import_tasks: configs.yml
|
|
||||||
tags: ["configs"]
|
|
||||||
- import_tasks: packages.yml
|
- import_tasks: packages.yml
|
||||||
tags: ["packages"]
|
tags: ["packages"]
|
||||||
|
@ -1,5 +0,0 @@
|
|||||||
- name: Setup nvm
|
|
||||||
tags: ["once"]
|
|
||||||
shell: >
|
|
||||||
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.2/install.sh | bash
|
|
||||||
creates=/home/{{ user }}/.nvm/nvm.sh
|
|
@ -1,14 +1,21 @@
|
|||||||
- name: Install development void packages
|
- name: Install development arch packages
|
||||||
xbps:
|
pacman:
|
||||||
name:
|
name:
|
||||||
- python3 # Python programming language (3.11 series)
|
- python # Python programming language (3.11 series)
|
||||||
- python3-pip # A tool for installing and managing Python3 packages
|
- python-pip # A tool for installing and managing Python3 packages
|
||||||
|
- python-setuptools
|
||||||
- ripgrep # Fast search tool inspired by ag and grep
|
- ripgrep # Fast search tool inspired by ag and grep
|
||||||
- fd # Simple, fast and user-friendly alternative to find
|
- fd # Simple, fast and user-friendly alternative to find
|
||||||
- lazygit # Simple terminal UI for git commands
|
- lazygit # Simple terminal UI for git commands
|
||||||
- ruby-tmuxinator # Create and manage complex tmux sessions easily
|
- python-pipenv # Python Development Workflow for Humans
|
||||||
- python3-pipenv # Python Development Workflow for Humans
|
state: present
|
||||||
- python3-devel # Python programming language (3.11 series) - development files
|
become: true
|
||||||
|
|
||||||
|
- name: Install development aur packages
|
||||||
|
yay:
|
||||||
|
name:
|
||||||
|
- tmuxinator # Create and manage complex tmux sessions easily
|
||||||
|
- nvm
|
||||||
state: present
|
state: present
|
||||||
become: true
|
become: true
|
||||||
|
|
||||||
|
@ -1,8 +1,12 @@
|
|||||||
- name: Install engineering void packages
|
- name: Install engineering arch packages
|
||||||
xbps:
|
pacman:
|
||||||
name:
|
name:
|
||||||
- freecad # General purpose 3D CAD modeler
|
- freecad # General purpose 3D CAD modeler
|
||||||
state: present
|
state: present
|
||||||
become: true
|
become: true
|
||||||
|
|
||||||
- include_tasks: superslicer.yml # PrusaSlicer fork (which is a slic3r fork)
|
- name: Install engineering aur packages
|
||||||
|
yay:
|
||||||
|
name:
|
||||||
|
- superslicer-bin # PrusaSlicer fork (which is a slic3r fork)
|
||||||
|
become: true
|
||||||
|
@ -1,6 +0,0 @@
|
|||||||
- name: Install SuperSlicer
|
|
||||||
include_tasks: ../include/download-github-bin.yml
|
|
||||||
loop:
|
|
||||||
- user: supermerill
|
|
||||||
repo: SuperSlicer
|
|
||||||
regex: "SuperSlicer-ubuntu_18.04-[0-9]"
|
|
@ -1,10 +1,6 @@
|
|||||||
- name: Install gaming void packages
|
- name: Install gaming arch packages
|
||||||
xbps:
|
pacman:
|
||||||
name:
|
name:
|
||||||
- libdrm-32bit # Userspace interface to kernel DRM services (32bit)
|
|
||||||
- libgcc-32bit # GNU Compiler Collection - GCC library (32bit)
|
|
||||||
- libstdc++-32bit # GNU Compiler Collection - Standard C++ Library (32bit)
|
|
||||||
- mesa-dri-32bit # Mesa DRI drivers (32bit)
|
|
||||||
- steam # Launcher for the Steam software distribution service
|
- steam # Launcher for the Steam software distribution service
|
||||||
- lutris # Video game preservation platform
|
- lutris # Video game preservation platform
|
||||||
- gamemode # Optimize system performance for games on demand
|
- gamemode # Optimize system performance for games on demand
|
||||||
|
@ -1,16 +0,0 @@
|
|||||||
- name: Get {{ item.repo }} release information
|
|
||||||
uri:
|
|
||||||
url: https://api.github.com/repos/{{ item.user }}/{{ item.repo }}/releases/latest
|
|
||||||
return_content: true
|
|
||||||
register: repo_latest
|
|
||||||
|
|
||||||
- name: Install archived {{ item.repo }} - {{ repo_latest.json.tag_name }}
|
|
||||||
loop: "{{ repo_latest.json.assets }}"
|
|
||||||
when: "asset.name is regex(item.regex)"
|
|
||||||
unarchive:
|
|
||||||
src: "{{ asset.browser_download_url }}"
|
|
||||||
dest: /usr/local/bin
|
|
||||||
remote_src: true
|
|
||||||
loop_control:
|
|
||||||
loop_var: asset
|
|
||||||
become: true
|
|
@ -1,16 +0,0 @@
|
|||||||
- name: Get {{ item.repo }} release information
|
|
||||||
uri:
|
|
||||||
url: https://api.github.com/repos/{{ item.user }}/{{ item.repo }}/releases/latest
|
|
||||||
return_content: true
|
|
||||||
register: repo_latest
|
|
||||||
|
|
||||||
- name: Install un-archived {{ item.repo }} - {{ repo_latest.json.tag_name }}
|
|
||||||
loop: "{{ repo_latest.json.assets }}"
|
|
||||||
when: "asset.name is regex(item.regex)"
|
|
||||||
get_url:
|
|
||||||
url: "{{ asset.browser_download_url }}"
|
|
||||||
dest: /usr/local/bin/{{ item.repo }}
|
|
||||||
mode: 0775
|
|
||||||
loop_control:
|
|
||||||
loop_var: asset
|
|
||||||
become: true
|
|
@ -1,33 +0,0 @@
|
|||||||
- name: Clone or pull void-packages
|
|
||||||
ansible.builtin.git:
|
|
||||||
repo: 'https://github.com/starr-dusT/void-packages.git'
|
|
||||||
dest: /home/{{ user }}/git/void-packages
|
|
||||||
update: yes
|
|
||||||
register: git_return
|
|
||||||
|
|
||||||
- name: Bootstrap if newly cloned
|
|
||||||
ansible.builtin.command: ./xbps-src binary-bootstrap
|
|
||||||
args:
|
|
||||||
chdir: /home/{{ user }}/git/void-packages
|
|
||||||
when: not git_return.before
|
|
||||||
|
|
||||||
- name: Enable restricted if newly cloned
|
|
||||||
copy:
|
|
||||||
dest: /home/{{ user }}/git/void-packages/etc/conf
|
|
||||||
content: |
|
|
||||||
XBPS_ALLOW_RESTRICTED=yes
|
|
||||||
when: not git_return.before
|
|
||||||
|
|
||||||
- name: Package {{ item.package }} with xbps-src
|
|
||||||
ansible.builtin.command: ./xbps-src pkg {{ item.package }}
|
|
||||||
args:
|
|
||||||
chdir: /home/{{ user }}/git/void-packages
|
|
||||||
|
|
||||||
- name: Install packaged {{ item.package }}
|
|
||||||
expect:
|
|
||||||
command: xbps-install --repository {{ item.repository }} {{ item.package }}
|
|
||||||
responses:
|
|
||||||
continue: y
|
|
||||||
args:
|
|
||||||
chdir: /home/{{ user }}/git/void-packages
|
|
||||||
become: true
|
|
@ -14,80 +14,14 @@
|
|||||||
mode: 0775
|
mode: 0775
|
||||||
become: true
|
become: true
|
||||||
|
|
||||||
- name: Set git username and email
|
|
||||||
shell: |
|
|
||||||
git config --global user.email {{ git_email }}
|
|
||||||
git config --global user.name {{ git_user }}
|
|
||||||
|
|
||||||
- name: Stop system services
|
|
||||||
shell: |
|
|
||||||
rm -R /var/service/dhcpcd
|
|
||||||
ignore_errors: true
|
|
||||||
become: true
|
|
||||||
|
|
||||||
- name: Start system services
|
|
||||||
shell: |
|
|
||||||
ln -s /etc/sv/dbus /var/service
|
|
||||||
ln -s /etc/sv/polkitd /var/service
|
|
||||||
ln -s /etc/sv/bluetoothd /var/service
|
|
||||||
ln -s /etc/sv/sshd /var/service
|
|
||||||
ln -s /etc/sv/libvirtd /var/service
|
|
||||||
ln -s /etc/sv/virtlockd /var/service
|
|
||||||
ln -s /etc/sv/virtlogd /var/service
|
|
||||||
ln -s /etc/sv/NetworkManager /var/service
|
|
||||||
ignore_errors: true
|
|
||||||
become: true
|
|
||||||
|
|
||||||
- name: Add {{ user }} to libvirt group
|
- name: Add {{ user }} to libvirt group
|
||||||
shell: |
|
shell: |
|
||||||
gpasswd -a {{ user }} libvirt
|
gpasswd -a {{ user }} libvirt
|
||||||
become: true
|
become: true
|
||||||
|
|
||||||
- name: Setup user services
|
|
||||||
block:
|
|
||||||
- name: Create user folder
|
|
||||||
file:
|
|
||||||
path: /etc/sv/{{ user }}
|
|
||||||
state: directory
|
|
||||||
|
|
||||||
- name: Create user service file
|
|
||||||
copy:
|
|
||||||
dest: /etc/sv/{{ user }}/run
|
|
||||||
content: |
|
|
||||||
#!/bin/sh
|
|
||||||
USER="{{ user }}"
|
|
||||||
GROUPS="$(id -Gn "$USER" | tr ' ' ':')"
|
|
||||||
SVDIR="/home/${USER}/.service"
|
|
||||||
if [ -d ${SVDIR} ]; then
|
|
||||||
chpst -u"${USER}:${GROUPS}" runsvdir ${SVDIR}
|
|
||||||
fi
|
|
||||||
mode: 0755
|
|
||||||
|
|
||||||
- name: Enable user services
|
|
||||||
shell: |
|
|
||||||
ln -s /etc/sv/{{ user }} /var/service
|
|
||||||
ignore_errors: true
|
|
||||||
become: true
|
|
||||||
|
|
||||||
- name: Ensure user services folder exists
|
|
||||||
file:
|
|
||||||
path: /home/{{ user }}/.service
|
|
||||||
state: directory
|
|
||||||
mode: 0755
|
|
||||||
|
|
||||||
- name: Start syncthing as {{ user }}
|
- name: Start syncthing as {{ user }}
|
||||||
block:
|
service:
|
||||||
- name: Create syncthing folder
|
name: syncthing@{{ user }}
|
||||||
file:
|
state: started
|
||||||
path: /home/{{ user }}/.service/syncthing
|
enabled: yes
|
||||||
state: directory
|
become: true
|
||||||
mode: 0755
|
|
||||||
|
|
||||||
- name: Create synthing run file
|
|
||||||
copy:
|
|
||||||
dest: /home/{{ user }}/.service/syncthing/run
|
|
||||||
content: |
|
|
||||||
#!/bin/sh
|
|
||||||
export HOME=/home/{{ user }}/
|
|
||||||
exec /usr/bin/syncthing > /dev/null 2>&1
|
|
||||||
mode: 0755
|
|
||||||
|
@ -1,32 +1,23 @@
|
|||||||
- name: Install system void repos
|
- name: Install system arch packages
|
||||||
xbps:
|
pacman:
|
||||||
name:
|
|
||||||
- void-repo-multilib # Void Linux drop-in file for the multilib repository
|
|
||||||
- void-repo-multilib-nonfree # Void Linux drop-in file for the multilib/nonfree repository
|
|
||||||
- void-repo-nonfree # Void Linux drop-in file for the nonfree repository
|
|
||||||
state: present
|
|
||||||
become: true
|
|
||||||
|
|
||||||
- name: Install system void packages
|
|
||||||
xbps:
|
|
||||||
name:
|
name:
|
||||||
|
- linux
|
||||||
|
- linux-zen
|
||||||
|
- linux-headers
|
||||||
|
- linux-zen-headers
|
||||||
- git # Fast Version Control System
|
- git # Fast Version Control System
|
||||||
- git-lfs # Git extension for versioning large files
|
- git-lfs # Git extension for versioning large files
|
||||||
- syncthing # Continuous File Synchronization
|
- syncthing # Continuous File Synchronization
|
||||||
- flatpak # Application deployment framework for desktop apps
|
- flatpak # Application deployment framework for desktop apps
|
||||||
- wireguard # Fast, modern, secure vpn tunnel
|
|
||||||
- wireguard-tools # Tool for wireguard
|
- wireguard-tools # Tool for wireguard
|
||||||
- cronie # Runs specified programs at scheduled times
|
- cronie # Runs specified programs at scheduled times
|
||||||
- pipewire # Server and user space API to deal with multimedia pipelines
|
- pipewire # Server and user space API to deal with multimedia pipelines
|
||||||
- libspa-bluetooth # Server and user space API to deal with multimedia pipelines - bluetooth plugins
|
#- libspa-bluetooth # Server and user space API to deal with multimedia pipelines - bluetooth plugins
|
||||||
- cifs-utils # CIFS filesystem user-space tools
|
- cifs-utils # CIFS filesystem user-space tools
|
||||||
- ansible # Simple deployment, configuration management and execution framework
|
- ansible # Simple deployment, configuration management and execution framework
|
||||||
- btrbk # Backup tool for btrfs subvolumes
|
|
||||||
- chezmoi # Manage your dotfiles across multiple machines, securely
|
- chezmoi # Manage your dotfiles across multiple machines, securely
|
||||||
- elogind # Standalone logind fork
|
|
||||||
- rsync # Remote fast incremental file transfer tool
|
- rsync # Remote fast incremental file transfer tool
|
||||||
- unzip # List, test and extract compressed files in a ZIP archive
|
- unzip # List, test and extract compressed files in a ZIP archive
|
||||||
- mimeo # Open files by MIME-type or file name using regular expressions
|
|
||||||
- busybox # Swiss Army Knife of Embedded Linux
|
- busybox # Swiss Army Knife of Embedded Linux
|
||||||
- qemu # Open Source Processor Emulator
|
- qemu # Open Source Processor Emulator
|
||||||
- libvirt # Virtualization API for controlling virtualization engines
|
- libvirt # Virtualization API for controlling virtualization engines
|
||||||
@ -36,11 +27,19 @@
|
|||||||
- udiskie # Removable disk automounter using udisks
|
- udiskie # Removable disk automounter using udisks
|
||||||
- curl # Client that groks URLs
|
- curl # Client that groks URLs
|
||||||
- wget # GNU wget download utility
|
- wget # GNU wget download utility
|
||||||
- NetworkManager # Network Management daemon
|
- networkmanager # Network Management daemon
|
||||||
- network-manager-applet # NetworkManager panel applet for GNOME
|
- network-manager-applet # NetworkManager panel applet for GNOME
|
||||||
- psensor # Graphical hardware temperature monitor for Linux
|
- psensor # Graphical hardware temperature monitor for Linux
|
||||||
- upower # Abstraction for enumerating power devices
|
- upower # Abstraction for enumerating power devices
|
||||||
- android-udev-rules # Android udev rules list aimed to be the most comprehensive on the net
|
- android-udev # Android udev rules list aimed to be the most comprehensive on the net
|
||||||
|
state: present
|
||||||
|
become: true
|
||||||
|
|
||||||
|
- name: Install system aur packages
|
||||||
|
yay:
|
||||||
|
name:
|
||||||
|
- mimeo # Open files by MIME-type or file name using regular expressions
|
||||||
|
- btrbk # Backup tool for btrfs subvolumes
|
||||||
state: present
|
state: present
|
||||||
become: true
|
become: true
|
||||||
|
|
||||||
|
@ -1,29 +0,0 @@
|
|||||||
- name: Make advcpmv directory
|
|
||||||
file:
|
|
||||||
path: /home/{{ user }}/tmp/advcpmv
|
|
||||||
state: directory
|
|
||||||
|
|
||||||
- name: Download advcpmv file
|
|
||||||
ansible.builtin.get_url:
|
|
||||||
url: https://raw.githubusercontent.com/jarun/advcpmv/master/install.sh
|
|
||||||
dest: /home/{{ user }}/tmp/advcpmv/install.sh
|
|
||||||
|
|
||||||
- name: Compile advcp and advmv
|
|
||||||
command:
|
|
||||||
cmd: sh /home/{{ user }}/tmp/advcpmv/install.sh
|
|
||||||
creates: /home/{{ user }}/tmp/advcpmv/advcp
|
|
||||||
chdir: /home/{{ user }}/tmp/advcpmv
|
|
||||||
|
|
||||||
- name: Move advcp
|
|
||||||
copy:
|
|
||||||
src: /home/{{ user }}/tmp/advcpmv/advcp
|
|
||||||
dest: /usr/local/bin/cpg
|
|
||||||
mode: preserve
|
|
||||||
become: true
|
|
||||||
|
|
||||||
- name: Move advmv
|
|
||||||
copy:
|
|
||||||
src: /home/{{ user }}/tmp/advcpmv/advmv
|
|
||||||
dest: /usr/local/bin/mvg
|
|
||||||
mode: preserve
|
|
||||||
become: true
|
|
@ -4,7 +4,6 @@
|
|||||||
shell: /bin/zsh
|
shell: /bin/zsh
|
||||||
become: true
|
become: true
|
||||||
|
|
||||||
|
|
||||||
- name: Set rbw email
|
- name: Set rbw email
|
||||||
shell: |
|
shell: |
|
||||||
rbw config set email {{ bitwarden_email }}
|
rbw config set email {{ bitwarden_email }}
|
||||||
|
@ -1,6 +0,0 @@
|
|||||||
- name: Install nb
|
|
||||||
ansible.builtin.get_url:
|
|
||||||
url: https://raw.github.com/xwmx/nb/master/nb
|
|
||||||
dest: /usr/local/bin/nb
|
|
||||||
mode: 0755
|
|
||||||
become: true
|
|
@ -1,9 +1,10 @@
|
|||||||
- name: Install terminal void packages
|
- name: Install terminal arch packages
|
||||||
xbps:
|
pacman:
|
||||||
name:
|
name:
|
||||||
- neovim # Vim-fork focused on extensibility and agility
|
- neovim # Vim-fork focused on extensibility and agility
|
||||||
- task # Command-line TODO list manager
|
- task # Command-line TODO list manager
|
||||||
- timewarrior # Timewarrior tracks and reports time
|
- timew # Timewarrior tracks and reports time
|
||||||
|
- taskwarrior-tui
|
||||||
- vifm # Ncurses-based file manager with vi-like keybindings
|
- vifm # Ncurses-based file manager with vi-like keybindings
|
||||||
- zsh # Z SHell
|
- zsh # Z SHell
|
||||||
- tmux # Terminal Multiplexer
|
- tmux # Terminal Multiplexer
|
||||||
@ -17,12 +18,10 @@
|
|||||||
state: present
|
state: present
|
||||||
become: true
|
become: true
|
||||||
|
|
||||||
- name: Install terminal xbps-src packages
|
- name: Install terminal aur packages
|
||||||
tags: ["src"]
|
yay:
|
||||||
include_tasks: ../include/xbps-src.yml
|
name:
|
||||||
loop:
|
- rbw
|
||||||
- package: rbw # Unofficial command line client for bitwarden
|
- nb
|
||||||
repository: hostdir/binpkgs
|
state: present
|
||||||
|
become: true
|
||||||
- include_tasks: nb.yml # Command line and local web note‑taking, bookmarking, archiving, and knowledge base application
|
|
||||||
- include_tasks: taskwarrior-tui.yml # Terminal User Interface (TUI) for Taskwarrior
|
|
||||||
|
@ -1,6 +0,0 @@
|
|||||||
- name: Install taskwarrior-tui
|
|
||||||
include_tasks: ../include/download-github-archive.yml
|
|
||||||
loop:
|
|
||||||
- user: kdheepak
|
|
||||||
repo: taskwarrior-tui
|
|
||||||
regex: unknown-linux-gnu.tar.gz
|
|
10
readme.md
10
readme.md
@ -5,15 +5,15 @@ My personal dotfiles repo. Documentation is pretty spotty. Maybe I'll fix that s
|
|||||||
|
|
||||||
## Usage
|
## Usage
|
||||||
|
|
||||||
Dotfiles are managed with chezmoi and Ansible (built for Void) is used for the bulk of configuration.
|
Dotfiles are managed with chezmoi and Ansible (built for Arch) is used for the bulk of configuration.
|
||||||
|
|
||||||
## Initial Setup
|
## Initial Setup
|
||||||
|
|
||||||
Install Void with BTRFS and run the following commands:
|
Install Arch with BTRFS and run the following commands:
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
sudo xbps-install -Syu -y
|
sudo pacman -Syu
|
||||||
sudo xbps-install -S vim git chezmoi -y
|
sudo pacman -S vim git chezmoi
|
||||||
git clone https://github.com/starr-dusT/dotfiles ~/.local/share/chezmoi
|
git clone https://github.com/starr-dusT/dotfiles ~/.local/share/chezmoi
|
||||||
```
|
```
|
||||||
|
|
||||||
@ -29,4 +29,4 @@ Perform additional setup found in [additional-setup](additional-setup.md)
|
|||||||
|
|
||||||
## Update Setup
|
## Update Setup
|
||||||
|
|
||||||
`void-update` command updates the system with ansible. Run `void-update -h` for information on usage.
|
`arch-update` command updates the system with ansible. Run `arch-update -h` for information on usage.
|
||||||
|
Loading…
x
Reference in New Issue
Block a user