mirror of
https://github.com/starr-dusT/dotfiles.git
synced 2025-05-19 02:46:06 -07:00
update README and initial script
This commit is contained in:
parent
f0b340c00d
commit
bb10482ad6
1
.gitignore
vendored
1
.gitignore
vendored
@ -1 +1,2 @@
|
|||||||
.gen
|
.gen
|
||||||
|
temp_bin
|
||||||
|
2
home/.chezmoi.yaml.tmpl
Normal file
2
home/.chezmoi.yaml.tmpl
Normal file
@ -0,0 +1,2 @@
|
|||||||
|
secret:
|
||||||
|
command: "rbw-get"
|
7
home/.chezmoidata.yaml
Normal file
7
home/.chezmoidata.yaml
Normal file
@ -0,0 +1,7 @@
|
|||||||
|
user: test
|
||||||
|
hostname: test
|
||||||
|
desktop: i3 # valid values: i3, gnome
|
||||||
|
network_interface: "eth0"
|
||||||
|
git_user: "starr-dusT"
|
||||||
|
git_email: &my_email "starrtyler88@gmail.com"
|
||||||
|
bitwarden_email: *my_email
|
@ -13,20 +13,14 @@
|
|||||||
[".oh-my-zsh"]
|
[".oh-my-zsh"]
|
||||||
type = "archive"
|
type = "archive"
|
||||||
url = "https://github.com/ohmyzsh/ohmyzsh/archive/master.tar.gz"
|
url = "https://github.com/ohmyzsh/ohmyzsh/archive/master.tar.gz"
|
||||||
|
extact = true
|
||||||
|
stripComponents = 1
|
||||||
refreshPeriod = "168h"
|
refreshPeriod = "168h"
|
||||||
|
|
||||||
[".oh-my-zsh/custom/themes"]
|
[".oh-my-zsh/custom/themes/dracula"]
|
||||||
type = "archive"
|
type = "archive"
|
||||||
url = "https://github.com/dracula/zsh/archive/master.zip"
|
url = "https://github.com/dracula/zsh/archive/master.zip"
|
||||||
exact = true
|
exact = true
|
||||||
stripComponents = 1
|
stripComponents = 1
|
||||||
refreshPeriod = "168h"
|
refreshPeriod = "168h"
|
||||||
include = ["*/dracula.zsh-theme", "*/lib/**"]
|
include = ["*/dracula.zsh-theme", "*/lib/**"]
|
||||||
|
|
||||||
#[".oh-my-zsh/custom/themes/dracula.zsh-theme"]
|
|
||||||
# type = "file"
|
|
||||||
# url = "https://github.com/dracula/zsh/archive/master.zip"
|
|
||||||
# refreshPeriod = "168h"
|
|
||||||
# [".oh-my-zsh/custom/themes/dracula.zsh-theme".filter]
|
|
||||||
# command = "busybox"
|
|
||||||
# args = ["unzip", "/dev/stdin", "*/dracula.zsh-theme", "-p"]
|
|
||||||
|
@ -1,3 +1,4 @@
|
|||||||
|
.oh-my-zsh/cache/**
|
||||||
readme.md
|
readme.md
|
||||||
.gitignore
|
.gitignore
|
||||||
.git
|
.git
|
||||||
|
107
home/bin/executable_linux-monitor
Normal file
107
home/bin/executable_linux-monitor
Normal file
@ -0,0 +1,107 @@
|
|||||||
|
#!/usr/bin/python
|
||||||
|
#
|
||||||
|
import subprocess
|
||||||
|
import json
|
||||||
|
import pathlib
|
||||||
|
import os
|
||||||
|
import re
|
||||||
|
|
||||||
|
def select_options(message, options):
|
||||||
|
user_input = ''
|
||||||
|
input_message = message + '\n'
|
||||||
|
for index, item in enumerate(options):
|
||||||
|
input_message += f'{index+1}) {item}\n'
|
||||||
|
input_message += 'Your choice: '
|
||||||
|
while user_input not in map(str, range(1, len(options) + 1)):
|
||||||
|
user_input = input(input_message)
|
||||||
|
return options[int(user_input) - 1]
|
||||||
|
|
||||||
|
# save needed information in a dictionary
|
||||||
|
i3_dict = {}
|
||||||
|
|
||||||
|
cmd = str(subprocess.check_output("xrandr", shell=True))
|
||||||
|
outputs = []
|
||||||
|
freqs = []
|
||||||
|
|
||||||
|
# Get avaiable outputs, resolutions, and freqs
|
||||||
|
need_res = False
|
||||||
|
for row in cmd.split('\\n'):
|
||||||
|
if " connected" in row:
|
||||||
|
need_res = True
|
||||||
|
outputs.append(row.split(" ")[0])
|
||||||
|
continue
|
||||||
|
elif re.search('[0-9]x[0-9]', row):
|
||||||
|
freqs.append(row.split())
|
||||||
|
resolutions = [item[0] for item in freqs]
|
||||||
|
|
||||||
|
print('Setup monitor resolutions and freqs...')
|
||||||
|
monitor_set = {}
|
||||||
|
for index, output in enumerate(outputs):
|
||||||
|
user_res = select_options(f'Pick {output} resolution: ', resolutions)
|
||||||
|
user_freq = None
|
||||||
|
for freq_lst in freqs:
|
||||||
|
if freq_lst[0] == user_res:
|
||||||
|
user_freq = select_options(f'Pick refresh rate: ', freq_lst[1:])
|
||||||
|
monitor_set[output] = {"resolution": user_res, "freq": user_freq}
|
||||||
|
|
||||||
|
print("Setup monitor locations...")
|
||||||
|
print("Avaiable monitors")
|
||||||
|
for output in outputs:
|
||||||
|
print(output)
|
||||||
|
|
||||||
|
if len(outputs) == 1:
|
||||||
|
print("skipping input only one monitor...")
|
||||||
|
first_key = list(monitor_set)[0]
|
||||||
|
os.system("xrandr --output %s --mode %s --rate %s --primary"%(
|
||||||
|
outputs[0],
|
||||||
|
monitor_set[first_key]['resolution'],
|
||||||
|
monitor_set[first_key]['freq'])
|
||||||
|
)
|
||||||
|
|
||||||
|
elif len(outputs) == 2:
|
||||||
|
left = input('which monitor is on the left? ')
|
||||||
|
if left not in outputs:
|
||||||
|
# crash
|
||||||
|
0/0
|
||||||
|
outputs.remove(left)
|
||||||
|
right = outputs[0]
|
||||||
|
left_primary = input('is left primary? (y or n) ')
|
||||||
|
|
||||||
|
left_pri_str = "--primary" if left_primary == 'y' else ""
|
||||||
|
right_pri_str = "--primary" if left_primary == 'n' else ""
|
||||||
|
|
||||||
|
cmd_str = "xrandr --output %s --mode %s --pos 0x0 --rate %s %s --output %s --mode %s --pos 2561x0 --rate %s %s --right-of %s"%(
|
||||||
|
left,
|
||||||
|
monitor_set[left]['resolution'],
|
||||||
|
monitor_set[left]['freq'],
|
||||||
|
left_pri_str,
|
||||||
|
right,
|
||||||
|
monitor_set[right]['resolution'],
|
||||||
|
monitor_set[right]['freq'],
|
||||||
|
right_pri_str,
|
||||||
|
left
|
||||||
|
)
|
||||||
|
print(cmd_str)
|
||||||
|
os.system(cmd_str)
|
||||||
|
|
||||||
|
else:
|
||||||
|
#crash
|
||||||
|
0/0
|
||||||
|
|
||||||
|
|
||||||
|
os.system("autorandr --save current --force")
|
||||||
|
|
||||||
|
if len(list(monitor_set)) == 1:
|
||||||
|
i3_dict["disp_pri"] = list(monitor_set)[0]
|
||||||
|
i3_dict["disp_sec"] = list(monitor_set)[0]
|
||||||
|
else:
|
||||||
|
i3_dict["disp_pri"] = left if left_primary == 'y' else right
|
||||||
|
i3_dict["disp_sec"] = left if left_primary == 'n' else right
|
||||||
|
|
||||||
|
print(i3_dict["disp_pri"], i3_dict["disp_sec"])
|
||||||
|
|
||||||
|
# write result to json
|
||||||
|
p = pathlib.PosixPath('~/.local/share/chezmoi/home/.gen/i3.json').expanduser()
|
||||||
|
p.parent.mkdir(parents=True, exist_ok=True)
|
||||||
|
with open(p, 'w') as f:
|
||||||
|
json.dump(i3_dict, f, indent=4, sort_keys=True)
|
@ -1,58 +0,0 @@
|
|||||||
#!/usr/bin/python
|
|
||||||
#
|
|
||||||
import subprocess
|
|
||||||
import json
|
|
||||||
import pathlib
|
|
||||||
import os
|
|
||||||
|
|
||||||
# save needed information in a dictionary
|
|
||||||
i3_dict = {}
|
|
||||||
|
|
||||||
cmd = str(subprocess.check_output("xrandr", shell=True))
|
|
||||||
outputs = []
|
|
||||||
|
|
||||||
for row in cmd.split('\\n'):
|
|
||||||
if " connected" in row:
|
|
||||||
outputs.append(row.split(" ")[0])
|
|
||||||
|
|
||||||
print("Available monitors:")
|
|
||||||
for output in outputs:
|
|
||||||
print(output)
|
|
||||||
|
|
||||||
if len(outputs) == 1:
|
|
||||||
print("skipping input only one monitor...")
|
|
||||||
os.system("xrandr --output %s --mode 2560x1440 --rate 144 --primary"%(outputs[0]))
|
|
||||||
elif len(outputs) == 2:
|
|
||||||
left = input('which monitor is on the left? ')
|
|
||||||
if left not in outputs:
|
|
||||||
# crash
|
|
||||||
0/0
|
|
||||||
outputs.remove(left)
|
|
||||||
right = outputs[0]
|
|
||||||
left_primary = input('is left primary? (y or n) ')
|
|
||||||
|
|
||||||
left_pri_str = "--primary" if left_primary == 'y' else ""
|
|
||||||
right_pri_str = "--primary" if left_primary == 'n' else ""
|
|
||||||
|
|
||||||
cmd_str = "xrandr --output %s --mode 2560x1440 --pos 0x0 --rate 144 %s --output %s --mode 2560x1440 --pos 2561x0 --rate 144 %s --right-of %s"%(left, left_pri_str, right, right_pri_str, left)
|
|
||||||
print(cmd_str)
|
|
||||||
os.system(cmd_str)
|
|
||||||
|
|
||||||
else:
|
|
||||||
#crash
|
|
||||||
0/0
|
|
||||||
|
|
||||||
|
|
||||||
os.system("autorandr --save current --force")
|
|
||||||
|
|
||||||
# ask user to define primary and secondary monitor
|
|
||||||
i3_dict["disp_pri"] = left if left_primary == 'y' else right
|
|
||||||
i3_dict["disp_sec"] = left if left_primary == 'n' else right
|
|
||||||
|
|
||||||
print(i3_dict["disp_pri"], i3_dict["disp_sec"])
|
|
||||||
|
|
||||||
# write result to json
|
|
||||||
p = pathlib.Path('{{ .chezmoi.sourceDir }}/.gen/i3.json')
|
|
||||||
p.parent.mkdir(parents=True, exist_ok=True)
|
|
||||||
with open(p, 'w') as f:
|
|
||||||
json.dump(i3_dict, f, indent=4, sort_keys=True)
|
|
@ -1,20 +0,0 @@
|
|||||||
#!/usr/bin/env bash
|
|
||||||
|
|
||||||
echo -e "Starting initial setup..."
|
|
||||||
|
|
||||||
# Install ansible python dependencies
|
|
||||||
sudo xpbs-install -Syu -y
|
|
||||||
sudo xbps-install python3 python3-pip ansible -y
|
|
||||||
sudo pip install pexpect github3.py -y
|
|
||||||
|
|
||||||
# Install ansible extensions
|
|
||||||
ansible-galaxy install -r {{ .chezmoi.workingTree }}/provision/requirements.yml
|
|
||||||
|
|
||||||
# Goto playbook and run it
|
|
||||||
cd {{ .chezmoi.workingTree }}/provision
|
|
||||||
ansible-playbook setup.yml -i hosts --ask-become-pass
|
|
||||||
|
|
||||||
# Return to where you were
|
|
||||||
cd -
|
|
||||||
|
|
||||||
echo "I'd suggest rebooting"
|
|
@ -50,4 +50,4 @@ font:
|
|||||||
y: 0
|
y: 0
|
||||||
|
|
||||||
import:
|
import:
|
||||||
- /home/tstarr/.config/alacritty/dracula.yml
|
- ~/.config/alacritty/dracula.yml
|
||||||
|
@ -1,2 +0,0 @@
|
|||||||
[secret]
|
|
||||||
command = "rbw-get"
|
|
@ -62,7 +62,7 @@ label-font = 2
|
|||||||
|
|
||||||
[module/wlan]
|
[module/wlan]
|
||||||
type = internal/network
|
type = internal/network
|
||||||
interface = enp3s0
|
interface = {{ .network_interface }}
|
||||||
interval = 5
|
interval = 5
|
||||||
label-connected = 直 %local_ip%
|
label-connected = 直 %local_ip%
|
||||||
label-connected-foreground = "#50fa7b"
|
label-connected-foreground = "#50fa7b"
|
||||||
@ -72,7 +72,7 @@ content-padding = 2
|
|||||||
|
|
||||||
[module/bandwidth]
|
[module/bandwidth]
|
||||||
type = internal/network
|
type = internal/network
|
||||||
interface = enp3s0
|
interface = {{ .network_interface }}
|
||||||
interval = 5
|
interval = 5
|
||||||
label-connected = %downspeed% %upspeed%
|
label-connected = %downspeed% %upspeed%
|
||||||
label-disconnected =
|
label-disconnected =
|
||||||
|
@ -10,7 +10,7 @@ export ZSH="$HOME/.oh-my-zsh"
|
|||||||
# load a random theme each time oh-my-zsh is loaded, in which case,
|
# load a random theme each time oh-my-zsh is loaded, in which case,
|
||||||
# to know which specific one was loaded, run: echo $RANDOM_THEME
|
# to know which specific one was loaded, run: echo $RANDOM_THEME
|
||||||
# See https://github.com/ohmyzsh/ohmyzsh/wiki/Themes
|
# See https://github.com/ohmyzsh/ohmyzsh/wiki/Themes
|
||||||
ZSH_THEME="dracula"
|
ZSH_THEME="dracula/dracula"
|
||||||
|
|
||||||
# Set list of themes to pick from when loading at random
|
# Set list of themes to pick from when loading at random
|
||||||
# Setting this variable when ZSH_THEME=random will cause zsh to load
|
# Setting this variable when ZSH_THEME=random will cause zsh to load
|
||||||
|
49
jumpstart.sh
Executable file
49
jumpstart.sh
Executable file
@ -0,0 +1,49 @@
|
|||||||
|
#!/usr/bin/env bash
|
||||||
|
|
||||||
|
echo -e "Starting initial setup..."
|
||||||
|
|
||||||
|
CHEZDIR="/home/test/.local/share/chezmoi"
|
||||||
|
echo "Input email for bitwarden:"
|
||||||
|
read bitemail
|
||||||
|
|
||||||
|
# Install ansible python dependencies
|
||||||
|
sudo xbps-install -Syu -y
|
||||||
|
sudo xbps-install python3 python3-pip ansible -y
|
||||||
|
sudo pip install pexpect
|
||||||
|
|
||||||
|
# Install ansible extensions
|
||||||
|
ansible-galaxy install -r "$CHEZDIR/provision/requirements.yml"
|
||||||
|
|
||||||
|
# Run setup playbook
|
||||||
|
ansible-playbook "$CHEZDIR/provision/setup.yml" -i "$CHEZDIR/provision/hosts" --ask-become-pass
|
||||||
|
|
||||||
|
#export PATH="$PATH:/usr/local/bin"
|
||||||
|
|
||||||
|
# Copy jumpstart scripts to temp bin dir and add to path
|
||||||
|
mkdir -p "$CHEZDIR/temp_bin"
|
||||||
|
cp "$CHEZDIR/home/bin/executable_rbw-get" "$CHEZDIR/temp_bin/rbw-get"
|
||||||
|
chmod +x "$CHEZDIR/temp_bin/rbw-get"
|
||||||
|
export PATH="$PATH:$CHEZDIR/temp_bin"
|
||||||
|
|
||||||
|
# Set bitwarden email
|
||||||
|
rbw config set email "$bitemail"
|
||||||
|
|
||||||
|
# Make temporary i3 gen file
|
||||||
|
mkdir -p "$CHEZDIR/home/.gen"
|
||||||
|
echo "{
|
||||||
|
\"disp_pri\": \"HDMI-0\",
|
||||||
|
\"disp_sec\": \"HDMI-0\"
|
||||||
|
}" > "$CHEZDIR/home/.gen/i3.json"
|
||||||
|
|
||||||
|
# first chezmoi apply
|
||||||
|
chezmoi apply
|
||||||
|
|
||||||
|
# reboot!
|
||||||
|
read -p "You should reboot, but I won't make you. Reboot? " -n 1 -r
|
||||||
|
if [[ ! $REPLY =~ ^[Yy]$ ]]
|
||||||
|
then
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
sudo reboot
|
||||||
|
|
@ -2,7 +2,7 @@
|
|||||||
hosts: all
|
hosts: all
|
||||||
|
|
||||||
vars_files:
|
vars_files:
|
||||||
- vars/main.yml
|
- ../home/.chezmoidata.yaml
|
||||||
|
|
||||||
tasks:
|
tasks:
|
||||||
- import_tasks: tasks/system/_main.yml
|
- import_tasks: tasks/system/_main.yml
|
||||||
@ -10,4 +10,5 @@
|
|||||||
- import_tasks: tasks/development/_main.yml
|
- import_tasks: tasks/development/_main.yml
|
||||||
- import_tasks: tasks/desktop/_main.yml
|
- import_tasks: tasks/desktop/_main.yml
|
||||||
- import_tasks: tasks/gaming/_main.yml
|
- import_tasks: tasks/gaming/_main.yml
|
||||||
|
- import_tasks: tasks/engineering/_main.yml
|
||||||
|
|
||||||
|
@ -27,6 +27,7 @@
|
|||||||
- xsel # Command-line getting and setting the contents of the X selection
|
- 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
|
- nerd-fonts # Iconic font aggregator, collection and patcher
|
||||||
|
- xdotool # Command-line X11 automation tool
|
||||||
state: present
|
state: present
|
||||||
become: true
|
become: true
|
||||||
|
|
||||||
|
@ -13,3 +13,74 @@
|
|||||||
group: root
|
group: root
|
||||||
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: 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
|
||||||
|
ignore_errors: true
|
||||||
|
become: true
|
||||||
|
|
||||||
|
- name: Add {{ user }} to libvirt group
|
||||||
|
shell: |
|
||||||
|
gpasswd -a {{ user }} libvirt
|
||||||
|
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 }}
|
||||||
|
block:
|
||||||
|
- name: Create syncthing folder
|
||||||
|
file:
|
||||||
|
path: /home/{{ user }}/.service/syncthing
|
||||||
|
state: directory
|
||||||
|
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
|
||||||
|
@ -32,6 +32,7 @@
|
|||||||
- libvirt # Virtualization API for controlling virtualization engines
|
- libvirt # Virtualization API for controlling virtualization engines
|
||||||
- virt-manager # User interface for managing virtual machines
|
- virt-manager # User interface for managing virtual machines
|
||||||
- bridge-utils # Layer2 ethernet bridging for Linux
|
- bridge-utils # Layer2 ethernet bridging for Linux
|
||||||
|
- trash-cli # Command line interface to the freedesktop.org trashcan
|
||||||
state: present
|
state: present
|
||||||
become: true
|
become: true
|
||||||
|
|
||||||
|
@ -1,2 +1,4 @@
|
|||||||
- import_tasks: packages.yml
|
- import_tasks: packages.yml
|
||||||
tags: ["packages"]
|
tags: ["packages"]
|
||||||
|
- import_tasks: configs.yml
|
||||||
|
tags: ["configs"]
|
||||||
|
10
provision/tasks/terminal/configs.yml
Normal file
10
provision/tasks/terminal/configs.yml
Normal file
@ -0,0 +1,10 @@
|
|||||||
|
- name: change {{ user }} shell to zsh
|
||||||
|
user:
|
||||||
|
name: "{{ user }}"
|
||||||
|
shell: /bin/zsh
|
||||||
|
become: true
|
||||||
|
|
||||||
|
|
||||||
|
- name: Set rbw email
|
||||||
|
shell: |
|
||||||
|
rbw config set email {{ bitwarden_email }}
|
@ -4,7 +4,3 @@
|
|||||||
dest: /usr/local/bin/nb
|
dest: /usr/local/bin/nb
|
||||||
mode: 0755
|
mode: 0755
|
||||||
become: true
|
become: true
|
||||||
|
|
||||||
- name: Setup nb completions
|
|
||||||
command: nb completions install --download
|
|
||||||
become: true
|
|
||||||
|
@ -1,3 +0,0 @@
|
|||||||
user: tstarr
|
|
||||||
hostname: kestrel
|
|
||||||
desktop: i3 # valid values: i3, gnome
|
|
29
readme.md
29
readme.md
@ -5,33 +5,32 @@ My personal dotfiles repo. Documentation is pretty spotty. Maybe I'll fix that s
|
|||||||
|
|
||||||
## Usage
|
## Usage
|
||||||
|
|
||||||
Dotfiles are managed with stow and Ansible (built for Fedora) is used for the bulk of configuration. Setup that cannot be easily automated with Ansible is documentd in [addtional-setup](additional-setup.md).
|
Dotfiles are managed with chezmoi and Ansible (built for Void) is used for the bulk of configuration.
|
||||||
|
|
||||||
## Initial Setup
|
## Initial Setup
|
||||||
|
|
||||||
Install Fedora Workstation and run the following commands:
|
Install Void with BTRFS and run the following commands:
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
sudo dnf install -y git stow
|
sudo xbps-install -Syu -y
|
||||||
git clone https://github.com/starr-dusT/dotfiles ~/.dotfiles
|
sudo xbps-install -S git chezmoi -y
|
||||||
rm ~/.bashrc
|
git clone https://github.com/starr-dusT/dotfiles ~/.local/share/chezmoi
|
||||||
cd ~/.dotfiles && stow .
|
|
||||||
bash
|
|
||||||
initial-setup
|
|
||||||
```
|
```
|
||||||
|
|
||||||
|
Then edit the `.chezmoidata.yaml` file within `home` to desired settings and run the following commands:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
~/.local/share/chezmoi/jumpstart.sh
|
||||||
|
```
|
||||||
|
|
||||||
|
After reboot log into window manager and run `linux-monitor`, follow the prompts, reapply chezmoi config, and restart the window manager.
|
||||||
|
|
||||||
Perform additional setup found in [additional-setup](additional-setup.md)
|
Perform additional setup found in [additional-setup](additional-setup.md)
|
||||||
|
|
||||||
## Update Setup
|
## Update Setup
|
||||||
|
|
||||||
Run the following command with comma seperated tags:
|
`void-update` command updates the system with ansible. Run `void-update -h` for information on usage.
|
||||||
|
|
||||||
```bash
|
|
||||||
update {tags} # valid tags: configs, updates, packages, services, once
|
|
||||||
```
|
|
||||||
|
|
||||||
## TODO
|
## TODO
|
||||||
|
|
||||||
- make homesever use btrfs and fix "target" for home backups
|
|
||||||
- Add zsh with workable config
|
|
||||||
- setup pavucontrol and bluetooth with scratchpads, polybar integration, etc.
|
- setup pavucontrol and bluetooth with scratchpads, polybar integration, etc.
|
||||||
|
109
void.md
109
void.md
@ -1,112 +1,3 @@
|
|||||||
## enable dbus
|
|
||||||
|
|
||||||
```bash
|
|
||||||
sudo ln -s /etc/sv/dbus /var/service
|
|
||||||
```
|
|
||||||
## enable polkitd
|
|
||||||
|
|
||||||
```bash
|
|
||||||
sudo ln -s /etc/sv/polkitd /var/service
|
|
||||||
```
|
|
||||||
|
|
||||||
## enable bluetooth
|
|
||||||
|
|
||||||
```bash
|
|
||||||
sudo ln -s /etc/sv/bluetoothd /var/service
|
|
||||||
```
|
|
||||||
|
|
||||||
## enable sshd
|
|
||||||
|
|
||||||
```bash
|
|
||||||
sudo ln -s /etc/sv/sshd /var/service
|
|
||||||
```
|
|
||||||
|
|
||||||
## enable virt stuff
|
|
||||||
|
|
||||||
```bash
|
|
||||||
sudo ln -s /etc/sv/libvirtd /var/service
|
|
||||||
sudo ln -s /etc/sv/virtlockd /var/service
|
|
||||||
sudo ln -s /etc/sv/virtlogd /var/service
|
|
||||||
```
|
|
||||||
add user to group:
|
|
||||||
```bash
|
|
||||||
sudo gpasswd -a "$USER" libvirt
|
|
||||||
```
|
|
||||||
|
|
||||||
## enable non-free and multilib
|
|
||||||
|
|
||||||
```bash
|
|
||||||
xbps-install -Syv void-repo-nonfree
|
|
||||||
xbps-install -Syv void-repo-multilib
|
|
||||||
xbps-install -Syv void-repo-multilib-nonfree
|
|
||||||
```
|
|
||||||
|
|
||||||
## void packages
|
|
||||||
|
|
||||||
```bash
|
|
||||||
$ git clone https://github.com/void-linux/void-packages.git
|
|
||||||
$ cd void-packages
|
|
||||||
$ ./xbps-src binary-bootstrap
|
|
||||||
echo XBPS_ALLOW_RESTRICTED=yes >> etc/conf
|
|
||||||
|
|
||||||
# Example install discord
|
|
||||||
./xbps-src pkg discord
|
|
||||||
sudo xbps-install --repository hostdir/binpkgs/nonfree discord
|
|
||||||
```
|
|
||||||
|
|
||||||
## user services
|
|
||||||
|
|
||||||
```bash
|
|
||||||
sudo mkdir -p /etc/sv/tstarr
|
|
||||||
sudo touch /etc/sv/tstarr/run
|
|
||||||
sudo chmod +x /etc/sv/tstarr/run
|
|
||||||
```
|
|
||||||
|
|
||||||
Add following:
|
|
||||||
|
|
||||||
```bash
|
|
||||||
#!/bin/sh
|
|
||||||
|
|
||||||
USER="tstarr"
|
|
||||||
GROUPS="$(id -Gn "$USER" | tr ' ' ':')"
|
|
||||||
SVDIR="/home/${USER}/.service"
|
|
||||||
|
|
||||||
|
|
||||||
if [ -d ${SVDIR} ]; then
|
|
||||||
chpst -u"${USER}:${GROUPS}" runsvdir ${SVDIR}
|
|
||||||
fi
|
|
||||||
```
|
|
||||||
|
|
||||||
```bash
|
|
||||||
sudo ln -s /etc/sv/tstarr /var/service
|
|
||||||
```
|
|
||||||
|
|
||||||
Example with syncthing:
|
|
||||||
|
|
||||||
```bash
|
|
||||||
mkdir -p $HOME/.service/syncthing
|
|
||||||
touch $HOME/.service/syncthing/run
|
|
||||||
chmod +x $HOME/.service/syncthing/run
|
|
||||||
```
|
|
||||||
|
|
||||||
Add the following:
|
|
||||||
|
|
||||||
```bash
|
|
||||||
#!/bin/sh
|
|
||||||
|
|
||||||
export HOME=/home/tstarr/
|
|
||||||
exec /usr/bin/syncthing > /dev/null 2>&1
|
|
||||||
```
|
|
||||||
|
|
||||||
## Lxappearance
|
## Lxappearance
|
||||||
|
|
||||||
GTK theme can be set with lxappearance
|
GTK theme can be set with lxappearance
|
||||||
|
|
||||||
## poweroff without root
|
|
||||||
|
|
||||||
add to /etc/sudoers:
|
|
||||||
|
|
||||||
```bash
|
|
||||||
tstarr ALL=NOPASSWD:/bin/poweroff
|
|
||||||
```
|
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user