mirror of
https://github.com/starr-dusT/dotfiles.git
synced 2025-02-19 19:27:31 -08:00
delete os provisions that are out of date
This commit is contained in:
parent
d50f69cb2f
commit
e0708c3c8a
@ -1,143 +0,0 @@
|
||||
# Additional Setup
|
||||
|
||||
The following documents some Fedora setup that wasn't automated with ansible.
|
||||
|
||||
## Snapper
|
||||
|
||||
Snapper is used to create snapshots with the BTRFS filesystem for root and home
|
||||
directories. I'd like to make these snapshots available at grub with
|
||||
[grub-btrfs](https://github.com/Antynea/grub-btrfs), but I've found that
|
||||
akmod-nvidia breaks it. Snapper is setup with:
|
||||
|
||||
```bash
|
||||
sudo btrfs filesystem label / *FTL ship name*
|
||||
|
||||
# Make /var/log subvolume
|
||||
sudo mv -v /var/log /var/log-old
|
||||
sudo btrfs subvolume create /var/log
|
||||
sudo cp -arv /var/log-old/. /var/log/
|
||||
sudo restorecon -RFv /var/log
|
||||
sudo rm -rvf /var/log-old
|
||||
|
||||
# Add /var/log to fstab
|
||||
sudo vi /etc/fstab
|
||||
# UUID=<drive uuid> /var/log btrfs subvol=var/log,compress=zstd:1 0 0
|
||||
sudo systemctl daemon-reload
|
||||
sudo mount -va
|
||||
|
||||
# Create snapper configs
|
||||
sudo snapper -c root create-config /
|
||||
sudo snapper -c home create-config /home
|
||||
|
||||
# Allow users to perform snapshots
|
||||
sudo snapper -c root set-config ALLOW_USERS=$USER SYNC_ACL=yes
|
||||
sudo snapper -c home set-config ALLOW_USERS=$USER SYNC_ACL=yes
|
||||
sudo chown -R :$USER /.snapshots
|
||||
sudo chown -R :$USER /home/.snapshots
|
||||
|
||||
# Add / and /home to fstab
|
||||
sudo vi /etc/fstab
|
||||
# UUID=<drive uuid> /.snapshots btrfs subvol=.snapshots,compress=zstd:1 0 0
|
||||
# UUID=<drive uuid> /home/.snapshots btrfs subvol=home/.snapshots,compress=zstd:1 0 0
|
||||
sudo systemctl daemon-reload
|
||||
sudo mount -va
|
||||
|
||||
# Show resulting subvolume structure
|
||||
sudo btrfs subvolume list /
|
||||
|
||||
# Enable and start snapper timeline and cleanup services
|
||||
sudo systemctl enable snapper-timeline.timer
|
||||
sudo systemctl start snapper-timeline.timer
|
||||
sudo systemctl enable snapper-cleanup.timer
|
||||
sudo systemctl start snapper-cleanup.timer
|
||||
```
|
||||
|
||||
## Wireguard Client
|
||||
|
||||
Wireguard is nice for a home vpn and [pivpn](https://pivpn.io/) makes it easy.
|
||||
|
||||
1. Create client on server and copy resulting `.conf` file to local machine
|
||||
2. Import to networkmanager with:
|
||||
```bash
|
||||
nmcli connection import type wireguard file <conf file from pivpn>
|
||||
```
|
||||
3. Use `nm-connection-editor` to disable automatic connection
|
||||
|
||||
## Mount network drives
|
||||
|
||||
I find fstab messing about more troubule than it is worth. Credentials are
|
||||
stored in ~/.smb. Mount network drives when needed with the following command:
|
||||
|
||||
```bash
|
||||
linux-mount-<network drive name>
|
||||
```
|
||||
|
||||
## Taskopen for taskwarrior
|
||||
|
||||
[taskopen](https://github.com/jschlatow/taskopen) is easier to install
|
||||
manually at this point since it isn't packaged and uses nim. Might get this
|
||||
automated in the future.
|
||||
|
||||
```bash
|
||||
curl https://nim-lang.org/choosenim/init.sh -sSf | sh # install nim
|
||||
git clone https://github.com/jschlatow/taskopen.git
|
||||
cd taskopen
|
||||
make PREFIX=/usr
|
||||
sudo make PREFIX=/usr install
|
||||
```
|
||||
|
||||
## Syncthing
|
||||
|
||||
Syncthing is used to sync folders between various computers and android. The
|
||||
ansible script should setup and run the service, but shares must be setup
|
||||
via the web gui. Currently four shares exists:
|
||||
- `.warrior` - `.task` and `.timewarrior` folders to sync taskwarrior tasks.
|
||||
These two folders are symlinked to the home folder where taskwarrior/timewarrior
|
||||
expects them.
|
||||
- `warrior` - contains text files associated with taskwarrior (mostly from
|
||||
taskopen).
|
||||
- `phone photos` - personal photos synched from android.
|
||||
- `phone screenshots` - personal screenshots synced from android.
|
||||
- `ssh_keys` - contains ssh keys for git remotes (~/.ssh/keys)
|
||||
- `vimwiki` - contains text files associate with my personal vimwiki.
|
||||
|
||||
## Lxappearance
|
||||
|
||||
My GTK theme is pulled down by chezmoi, but isn't active by default. This can
|
||||
be fixed with the lxappearance gui (for X sessions).
|
||||
|
||||
## Git SSH for personal and work
|
||||
|
||||
- ~/.gitconfig - personal github configuration.
|
||||
- ~/devel/work/.gitconfig - work gitlab configuration.
|
||||
|
||||
Gitconfig files for SSH git push/pull are automaitcally placed. The only
|
||||
additional configuration required is the transfer of SSH keys (see Syncthing
|
||||
section).
|
||||
|
||||
## Firefox
|
||||
|
||||
Transfer the `.mozilla` folder from install-to-install to maintain Firefox
|
||||
settings and configurations.
|
||||
|
||||
## Single GPU Passthrough to windows
|
||||
|
||||
I use a windows virtual machine with gpu passthrough of the few games that
|
||||
won't work on linux, Zwift, and Fusion360. [This](https://github.com/ilayna/Single-GPU-passthrough-amd-nvidia)
|
||||
has scripts that make that process relatively easy and [this wiki](https://gitlab.com/risingprismtv/single-gpu-passthrough/-/wikis/home)
|
||||
provides good information on setting up the virtual machine in virt-manager.
|
||||
The `patch.rom` required for my GPU is included in my repo. The virt-manager
|
||||
setup should usually be avoided by transfering the VM between machines:
|
||||
|
||||
1. Copy the VM's disks from `/var/lib/libvirt/images` on src host to the same dir on destination host
|
||||
2. On the source host run `virsh dumpxml VMNAME > domxml.xml` and copy this xml to the destination host
|
||||
3. On the destination host run `virsh define domxml.xml`
|
||||
|
||||
## xmonad
|
||||
|
||||
```bash
|
||||
cd ~/.config/xmonad
|
||||
stack update
|
||||
stack init
|
||||
stack install
|
||||
```
|
@ -1 +0,0 @@
|
||||
local ansible_connection=local ansible_python_interpreter=/usr/bin/python
|
@ -1,9 +0,0 @@
|
||||
# Ansible Galaxy Roles
|
||||
roles:
|
||||
- src: https://github.com/starr-dusT/ansible-role-customize-gnome
|
||||
- src: https://github.com/starr-dusT/ansible-rustup
|
||||
collections:
|
||||
- name: community.general
|
||||
version: 6.0.1
|
||||
source: https://galaxy.ansible.com
|
||||
- name: kewlfft.aur
|
@ -1,13 +0,0 @@
|
||||
- name: Ansible playbook to setup arch linux
|
||||
hosts: all
|
||||
|
||||
vars_files:
|
||||
- ../../../home/.chezmoidata.yaml
|
||||
|
||||
tasks:
|
||||
- import_tasks: tasks/system/_main.yml
|
||||
- import_tasks: tasks/terminal/_main.yml
|
||||
- import_tasks: tasks/development/_main.yml
|
||||
- import_tasks: tasks/gaming/_main.yml
|
||||
- import_tasks: tasks/engineering/_main.yml
|
||||
- import_tasks: tasks/desktop/_main.yml
|
@ -1,7 +0,0 @@
|
||||
- import_tasks: packages.yml
|
||||
tags: ["packages"]
|
||||
- import_tasks: configs.yml
|
||||
tags: ["configs"]
|
||||
- import_tasks: gnome-settings/_main.yml
|
||||
tags: ["configs"]
|
||||
when: desktop == "gnome"
|
@ -1,64 +0,0 @@
|
||||
- name: Set desktop files to hide
|
||||
include_tasks: ../include/hide-desktop.yml
|
||||
loop:
|
||||
- /usr/share/applications/wine-winhelp.desktop
|
||||
- /usr/share/applications/wine-mime-msi.desktop
|
||||
- /usr/share/applications/wine-notepad.desktop
|
||||
- /usr/share/applications/wine-oleview.desktop
|
||||
- /usr/share/applications/wine-regedit.desktop
|
||||
- /usr/share/applications/wine-uninstaller.desktop
|
||||
- /usr/share/applications/wine-wineboot.desktop
|
||||
- /usr/share/applications/wine-winecfg.desktop
|
||||
- /usr/share/applications/wine-winefile.desktop
|
||||
- /usr/share/applications/wine-winemine.desktop
|
||||
- /usr/share/applications/wine-wordpad.desktop
|
||||
- /usr/share/applications/vifm.desktop
|
||||
- /usr/share/applications/dosbox-staging.desktop
|
||||
- /usr/share/applications/nvim.desktop
|
||||
- /usr/share/applications/syncthing-start.desktop
|
||||
- /usr/share/applications/syncthing-ui.desktop
|
||||
- /usr/share/applications/cgnscalc.desktop
|
||||
- /usr/share/applications/cgnsnodes.desktop
|
||||
- /usr/share/applications/cgnsplot.desktop
|
||||
- /usr/share/applications/cgnsview.desktop
|
||||
- /usr/share/applications/qt5-assistant.desktop
|
||||
- /usr/share/applications/opencascade-draw.desktop
|
||||
- /usr/share/applications/unitconv.desktop
|
||||
|
||||
- name: Uninstall desktop bloat
|
||||
pacman:
|
||||
name:
|
||||
- yelp
|
||||
- gnome-boxes
|
||||
- rhythmbox
|
||||
- gnome-photos
|
||||
- totem
|
||||
- gnome-text-editor
|
||||
- cheese
|
||||
- gnome-tour
|
||||
- gnome-maps
|
||||
state: absent
|
||||
become: true
|
||||
|
||||
- name: Delete amd vulkan files
|
||||
ansible.builtin.file:
|
||||
state: absent
|
||||
path:
|
||||
- /usr/share/vulkan/icd.d/amd_icd32.json
|
||||
- /usr/share/vulkan/icd.d/amd_icd64.json
|
||||
|
||||
- name: Start and enable bluetooth
|
||||
tags: ["once"]
|
||||
systemd:
|
||||
name: bluetooth
|
||||
enabled: true
|
||||
state: started
|
||||
become: true
|
||||
|
||||
- name: Start and enable bluetooth
|
||||
tags: ["once"]
|
||||
systemd:
|
||||
name: libvirtd
|
||||
enabled: true
|
||||
state: started
|
||||
become: true
|
@ -1,17 +0,0 @@
|
||||
- name: Set custom gnome binding {{ index }}
|
||||
dconf:
|
||||
key: "/org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/custom{{ index }}/binding"
|
||||
value: "{{ item.bind }}"
|
||||
state: present
|
||||
|
||||
- name: Set custom gnome command {{ index }}
|
||||
dconf:
|
||||
key: "/org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/custom{{ index }}/command"
|
||||
value: "{{ item.command }}"
|
||||
state: present
|
||||
|
||||
- name: Set custom gnome name {{ index }}
|
||||
dconf:
|
||||
key: "/org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/custom{{ index }}/name"
|
||||
value: "{{ index }}"
|
||||
state: present
|
@ -1,6 +0,0 @@
|
||||
- import_tasks: extensions.yml
|
||||
tags: ["gnome-extensions"]
|
||||
- import_tasks: keybinds.yml
|
||||
tags: ["configs"]
|
||||
- import_tasks: window-management.yml
|
||||
tags: ["configs"]
|
@ -1,11 +0,0 @@
|
||||
- name: Install gnome extensions
|
||||
include_role:
|
||||
name: ansible-role-customize-gnome
|
||||
vars:
|
||||
# For now extensions aren't enabled (https://github.com/PeterMosmans/ansible-role-customize-gnome/issues/25)
|
||||
gnome_extensions:
|
||||
- id: 779 # https://github.com/Tudmotu/gnome-shell-extension-clipboard-indicator
|
||||
- id: 4362 # https://github.com/Noobsai/fullscreen-avoider
|
||||
- id: 1460 # https://github.com/corecoding/Vitals
|
||||
- id: 7 # https://gitlab.gnome.org/GNOME/gnome-shell-extensions
|
||||
gnome_user: "{{ user }}"
|
@ -1,62 +0,0 @@
|
||||
- name: Unset particular default gnome keybinds
|
||||
dconf:
|
||||
key: "{{ item }}"
|
||||
value: [""]
|
||||
state: present
|
||||
loop:
|
||||
- "/org/gnome/shell/keybindings/switch-to-application-1"
|
||||
- "/org/gnome/shell/keybindings/switch-to-application-2"
|
||||
- "/org/gnome/shell/keybindings/switch-to-application-3"
|
||||
- "/org/gnome/shell/keybindings/switch-to-application-4"
|
||||
- "/org/gnome/shell/keybindings/switch-to-application-5"
|
||||
- "/org/gnome/desktop/wm/keybindings/switch-input-source"
|
||||
- "/org/gnome/desktop/wm/keybindings/switch-input-source-backwards"
|
||||
- "/org/gnome/settings-daemon/plugins/media-keys/screensaver"
|
||||
- "/org/gnome/desktop/wm/keybindings/switch-applications"
|
||||
- "/org/gnome/desktop/wm/keybindings/switch-applications-backward"
|
||||
- "/org/gnome/desktop/wm/keybindings/switch-windows"
|
||||
- "/org/gnome/desktop/wm/keybindings/switch-windows-backward"
|
||||
|
||||
- name: Change existing gnome keybinds
|
||||
dconf:
|
||||
key: "{{ item.key }}"
|
||||
value: "{{ item.value }}"
|
||||
state: present
|
||||
loop:
|
||||
- {key: "/org/gnome/desktop/wm/keybindings/switch-to-workspace-1", value: ["<Super>1"]}
|
||||
- {key: "/org/gnome/desktop/wm/keybindings/switch-to-workspace-2", value: ["<Super>2"]}
|
||||
- {key: "/org/gnome/desktop/wm/keybindings/switch-to-workspace-3", value: ["<Super>3"]}
|
||||
- {key: "/org/gnome/desktop/wm/keybindings/switch-to-workspace-4", value: ["<Super>4"]}
|
||||
- {key: "/org/gnome/desktop/wm/keybindings/switch-to-workspace-5", value: ["<Super>5"]}
|
||||
- {key: "/org/gnome/desktop/wm/keybindings/move-to-workspace-1", value: ["<Super><Shift>1"]}
|
||||
- {key: "/org/gnome/desktop/wm/keybindings/move-to-workspace-2", value: ["<Super><Shift>2"]}
|
||||
- {key: "/org/gnome/desktop/wm/keybindings/move-to-workspace-3", value: ["<Super><Shift>3"]}
|
||||
- {key: "/org/gnome/desktop/wm/keybindings/move-to-workspace-4", value: ["<Super><Shift>4"]}
|
||||
- {key: "/org/gnome/desktop/wm/keybindings/move-to-workspace-5", value: ["<Super><Shift>5"]}
|
||||
- {key: "/org/gnome/desktop/wm/keybindings/minimize", value: ["<Super>Space"]}
|
||||
- {key: "/org/gnome/desktop/wm/keybindings/toggle-fullscreen", value: ["<Super>F"]}
|
||||
- {key: "/org/gnome/desktop/wm/keybindings/close", value: ["<Super>Q"]}
|
||||
- {key: "/org/gnome/desktop/wm/keybindings/maximize-horizontally", value: ["<Super><Shift>H"]}
|
||||
- {key: "/org/gnome/desktop/wm/keybindings/maximize-vertically", value: ["<Super><Shift>V"]}
|
||||
- {key: "/org/gnome/desktop/wm/keybindings/move-to-center", value: ["<Super>C"]}
|
||||
- {key: "/org/gnome/desktop/wm/keybindings/switch-windows", value: ["<Super>Tab"]}
|
||||
- {key: "/org/gnome/desktop/wm/keybindings/switch-windows-backward", value: ["<Super><Shift>Tab"]}
|
||||
- {key: "/org/gnome/settings-daemon/plugins/media-keys/screensaver", value: ["<Super><Shift>L"]}
|
||||
|
||||
- name: Set custom gnome keybinds
|
||||
include_tasks: _custom-bind.yml
|
||||
loop:
|
||||
- {command: "'gnome-terminal'", bind: "'<Super>Return'"}
|
||||
- {command: "'firefox'", bind: "'<Super><Shift>B'"}
|
||||
- {command: "'code'", bind: "'<Super><Shift>V'"}
|
||||
loop_control:
|
||||
index_var: index
|
||||
|
||||
# Gnome requires an array of strings with the custom keybinds
|
||||
# this must match the number of keybinds defined above...
|
||||
- name: Set custom-keybinds array
|
||||
dconf:
|
||||
key: /org/gnome/settings-daemon/plugins/media-keys/custom-keybindings
|
||||
value: "['/org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/custom0/',
|
||||
'/org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/custom1/',
|
||||
'/org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/custom2/']"
|
@ -1,10 +0,0 @@
|
||||
|
||||
- name: Set Static workspaces
|
||||
dconf:
|
||||
key: "/org/gnome/mutter/dynamic-workspaces"
|
||||
value: "false"
|
||||
|
||||
- name: Set Number of workspaces
|
||||
dconf:
|
||||
key: "/org/gnome/desktop/wm/preferences/num-workspaces"
|
||||
value: "5"
|
@ -1,55 +0,0 @@
|
||||
- name: Install desktop arch packages
|
||||
pacman:
|
||||
name:
|
||||
- alacritty # Cross-platform, GPU-accelerated terminal emulator
|
||||
- mpv # Video player based on MPlayer/mplayer2
|
||||
- ffmpeg # Decoding, encoding and streaming software
|
||||
- nvidia-dkms # NVIDIA drivers for linux - Libraries and Utilities
|
||||
- nvidia-utils
|
||||
- lib32-nvidia-utils
|
||||
- nvidia-settings
|
||||
- firefox # Mozilla Firefox web browser
|
||||
- ttf-jetbrains-mono-nerd
|
||||
- udiskie
|
||||
- network-manager-applet
|
||||
- blueman
|
||||
- flameshot
|
||||
- libx11
|
||||
- libxft
|
||||
- libxinerama
|
||||
- libxrandr
|
||||
- libxss
|
||||
- pkgconf
|
||||
- stack
|
||||
- rofi
|
||||
- xorg
|
||||
- xorg-xinit
|
||||
- picom
|
||||
- dunst
|
||||
- lxsession
|
||||
- nitrogen
|
||||
- lxappearance
|
||||
- virt-manager
|
||||
- qemu-desktop
|
||||
- dnsmasq
|
||||
state: present
|
||||
become: true
|
||||
|
||||
- name: Install desktop flatpaks
|
||||
flatpak:
|
||||
name:
|
||||
- com.discordapp.Discord # VoIP and instant messaging social platform
|
||||
- org.gimp.GIMP # Create images and edit photographs
|
||||
- org.inkscape.Inkscape # Vector Graphics Editor
|
||||
- com.github.tchx84.Flatseal # Manage Flatpak permissions
|
||||
- org.kde.kdenlive
|
||||
- com.bitwarden.desktop
|
||||
state: present
|
||||
become: true
|
||||
|
||||
- name: Install desktop yay packages
|
||||
kewlfft.aur.aur:
|
||||
use: yay
|
||||
name:
|
||||
- google-earth-pro
|
||||
- google-chrome
|
@ -1,4 +0,0 @@
|
||||
- import_tasks: packages.yml
|
||||
tags: ["packages"]
|
||||
- import_tasks: configs.yml
|
||||
tags: ["configs"]
|
@ -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,33 +0,0 @@
|
||||
- name: Install development arch packages
|
||||
pacman:
|
||||
name:
|
||||
- python # Python programming language (3.11 series)
|
||||
- python-pip # A tool for installing and managing Python3 packages
|
||||
- ipython
|
||||
- ripgrep # Fast search tool inspired by ag and grep
|
||||
- fd # Simple, fast and user-friendly alternative to find
|
||||
- lazygit # Simple terminal UI for git commands
|
||||
- python-pipenv # Python Development Workflow for Humans
|
||||
- ruby
|
||||
- perl
|
||||
- cloc
|
||||
state: present
|
||||
become: true
|
||||
|
||||
- name: Install tmuxinator gem package
|
||||
gem:
|
||||
name: tmuxinator # Create and manage complex tmux sessions easily
|
||||
state: latest
|
||||
|
||||
- name: Install development python packages
|
||||
ansible.builtin.pip:
|
||||
name:
|
||||
- ansible-lint # Command-line tool for linting playbooks, roles and collections
|
||||
- pyright
|
||||
|
||||
- name: Install development flatpaks
|
||||
flatpak:
|
||||
name:
|
||||
- com.vscodium.codium # Free/Libre Open Source Software Binaries of VS Code
|
||||
state: present
|
||||
become: true
|
@ -1,2 +0,0 @@
|
||||
- import_tasks: packages.yml
|
||||
tags: ["packages"]
|
@ -1,8 +0,0 @@
|
||||
- name: Install engineering arch packages
|
||||
pacman:
|
||||
name:
|
||||
- freecad # General purpose 3D CAD modeler
|
||||
- superslicer
|
||||
- gqrx
|
||||
state: present
|
||||
become: true
|
@ -1,2 +0,0 @@
|
||||
- import_tasks: packages.yml
|
||||
tags: ["packages"]
|
@ -1,9 +0,0 @@
|
||||
- name: Install gaming arch packages
|
||||
pacman:
|
||||
name:
|
||||
- steam # Launcher for the Steam software distribution service
|
||||
- lutris # Video game preservation platform
|
||||
- gamemode # Optimize system performance for games on demand
|
||||
- wine # A compatibility layer for windows applications
|
||||
state: present
|
||||
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 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,18 +0,0 @@
|
||||
- name: Check desktop file exists
|
||||
ansible.builtin.stat:
|
||||
path: "{{ item }}"
|
||||
register: p
|
||||
|
||||
- name: Edit desktop file
|
||||
ansible.builtin.lineinfile:
|
||||
path: "{{ item }}"
|
||||
insertafter: '^Type'
|
||||
line: 'NoDisplay=true'
|
||||
firstmatch: true
|
||||
state: present
|
||||
become: true
|
||||
when: p.stat.exists
|
||||
|
||||
- debug:
|
||||
msg: "Warning - {{ item }} does not exist"
|
||||
when: p.stat.exists == False
|
@ -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
|
@ -1,4 +0,0 @@
|
||||
- import_tasks: packages.yml
|
||||
tags: ["packages"]
|
||||
- import_tasks: configs.yml
|
||||
tags: ["configs"]
|
@ -1,36 +0,0 @@
|
||||
- name: Start and enable syncthing
|
||||
tags: ["once"]
|
||||
systemd:
|
||||
name: syncthing@{{ user }}
|
||||
enabled: true
|
||||
state: started
|
||||
become: true
|
||||
|
||||
- name: Set hostname for linux
|
||||
tags: ["once"]
|
||||
shell: >
|
||||
hostnamectl set-hostname {{ hostname }}
|
||||
become: true
|
||||
|
||||
- name: Change sudo settings
|
||||
lineinfile:
|
||||
path: /etc/sudoers
|
||||
regexp: ^Defaults env_reset
|
||||
line: Defaults env_reset,timestamp_timeout=60,!tty_tickets
|
||||
become: yes
|
||||
|
||||
- name: Enable modeset for nvidia
|
||||
tags: ["once"]
|
||||
lineinfile:
|
||||
path: /etc/default/grub
|
||||
regexp: '^GRUB_CMDLINE_LINUX_DEFAULT="((:?(?!nvidia_drm.modeset=1).)*?)"$'
|
||||
line: 'GRUB_CMDLINE_LINUX_DEFAULT="\1 nvidia_drm.modeset=1"'
|
||||
backup: true
|
||||
backrefs: true
|
||||
become: yes
|
||||
|
||||
- name: Update grub
|
||||
tags: ["once"]
|
||||
shell: >
|
||||
grub-mkconfig -o /boot/grub/grub.cfg
|
||||
become: true
|
@ -1,30 +0,0 @@
|
||||
- name: Install system arch packages
|
||||
pacman:
|
||||
name:
|
||||
- git # Fast Version Control System
|
||||
- git-lfs # Git extension for versioning large files
|
||||
- syncthing # Continuous File Synchronization
|
||||
- flatpak # Application deployment framework for desktop apps
|
||||
- wireguard-tools # Fast, modern, secure vpn tunnel
|
||||
- libfreeaptx # PipeWire Bluetooth aptX codec plugin
|
||||
- ansible # Simple deployment, configuration management and execution framework
|
||||
- trash-cli # Command line interface to the freedesktop.org trashcan
|
||||
- android-tools # Android platform tools(adb, fastboot)
|
||||
- snapper
|
||||
- cargo
|
||||
- chezmoi
|
||||
- linux
|
||||
- linux-headers
|
||||
- linux-zen
|
||||
- linux-zen-headers
|
||||
- base-devel
|
||||
- python-setuptools
|
||||
- pipewire
|
||||
state: present
|
||||
become: true
|
||||
|
||||
- name: Add the flathub flatpak repository remote
|
||||
tags: ["once"]
|
||||
shell: |
|
||||
flatpak remote-add --if-not-exists flathub https://flathub.org/repo/flathub.flatpakrepo
|
||||
become: true
|
@ -1,4 +0,0 @@
|
||||
- import_tasks: packages.yml
|
||||
tags: ["packages"]
|
||||
- import_tasks: configs.yml
|
||||
tags: ["configs"]
|
@ -1,12 +0,0 @@
|
||||
- name: change {{ user }} shell to zsh
|
||||
tags: ["once"]
|
||||
user:
|
||||
name: "{{ user }}"
|
||||
shell: /bin/zsh
|
||||
become: true
|
||||
|
||||
- name: Set rbw email
|
||||
tags: ["once"]
|
||||
shell: |
|
||||
rbw config set email {{ bitwarden_email }}
|
||||
|
@ -1,31 +0,0 @@
|
||||
- name: Install terminal arch packages
|
||||
pacman:
|
||||
name:
|
||||
- neovim # Vim-fork focused on extensibility and agility
|
||||
- task # Command-line TODO list manager
|
||||
- taskwarrior-tui
|
||||
- timew # Timewarrior tracks and reports time
|
||||
- python-tasklib # Library for interacting with taskwarrior databases
|
||||
- vifm # Ncurses-based file manager with vi-like keybindings
|
||||
- zsh # Z SHell
|
||||
- tmux # Terminal Multiplexer
|
||||
- nmap # Utility for network discovery and security auditing
|
||||
- w3m # Text-based Web browser and pager (with Debian patches)
|
||||
- lf # Terminal file manager
|
||||
- khal # Command-line calendar build around CalDAV
|
||||
- khard # Command-line addressbook built around CardDAV
|
||||
- vdirsyncer # Synchronize calendars and addressbooks
|
||||
- neofetch # Simple system information script
|
||||
- zk
|
||||
- fzf
|
||||
state: present
|
||||
become: true
|
||||
|
||||
- name: Install terminal python packages
|
||||
ansible.builtin.pip:
|
||||
name:
|
||||
- pynvim
|
||||
|
||||
- name: Install terminal cargo packages
|
||||
community.general.cargo:
|
||||
name: rbw # This is an unofficial command line client for Bitwarden
|
@ -1,57 +0,0 @@
|
||||
#!/usr/bin/env bash
|
||||
|
||||
echo -e "Starting initial setup for Arch..."
|
||||
|
||||
CHEZDIR="$HOME/.local/share/chezmoi"
|
||||
echo "Input email for bitwarden:"
|
||||
read bitemail
|
||||
|
||||
# Install ansible python dependencies
|
||||
sudo pacman -Syu
|
||||
sudo pacman -S python python-pip ansible cargo -y
|
||||
pip install pexpect
|
||||
cargo install rbw
|
||||
|
||||
# Add things to path for this script
|
||||
export PATH="$PATH:/usr/local/bin"
|
||||
export PATH="$PATH:$HOME/.cargo/bin"
|
||||
export PATH="$PATH:$CHEZDIR/temp_bin"
|
||||
|
||||
# Install ansible extensions
|
||||
ansible-galaxy install -r "$CHEZDIR/provision/arch/ansible/requirements.yml"
|
||||
|
||||
# Run setup playbook
|
||||
ansible-playbook "$CHEZDIR/provision/arch/ansible/setup.yml" -i "$CHEZDIR/provision/fedora/ansible/hosts" --ask-become-pass
|
||||
|
||||
# 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"
|
||||
|
||||
# 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"
|
||||
|
||||
# Wait in-case there is an error
|
||||
read lel
|
||||
|
||||
# initialize chezmoi
|
||||
chezmoi init
|
||||
|
||||
# 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
|
@ -1,48 +0,0 @@
|
||||
# Provision Arch
|
||||
> \*I use arch btw\*
|
||||
|
||||
Jumpstart scripts to install Arch with packages and configs I use.
|
||||
|
||||
## Usage
|
||||
|
||||
Install Arch with BTRFS and partition:
|
||||
|
||||
```
|
||||
1. 512Mb EFI partition at /boot/EFI
|
||||
2. BTRFS volume with subvolumes:
|
||||
@ -> /
|
||||
@home -> /home
|
||||
@log -> /var/log
|
||||
@pkg -> /var/cache/pacman/pkg
|
||||
@.snapshots -> /.snapshots
|
||||
@home/.snapshots /home/.snapshots
|
||||
```
|
||||
|
||||
Select pipewire for audio, networkmanager for network, and install.
|
||||
|
||||
Run the following commands:
|
||||
|
||||
```bash
|
||||
pacman -S --needed git base-devel vim
|
||||
|
||||
# Install yay
|
||||
git clone https://aur.archlinux.org/yay.git
|
||||
cd yay
|
||||
makepkg -si
|
||||
|
||||
# Get jumpstart files
|
||||
sudo dnf install vim git -y
|
||||
git clone --recurse-submodules https://github.com/starr-dusT/dotfiles ~/.local/share/chezmoi
|
||||
```
|
||||
|
||||
Copy `.chezmoidata.yaml.example` to `.chezmoidata.yaml` and edit with desired settings then run the following commands:
|
||||
|
||||
```bash
|
||||
~/.local/share/chezmoi/provision/arch/jumpstart.sh
|
||||
```
|
||||
|
||||
Perform additional setup found in [additional-setup](additional-setup.md)
|
||||
|
||||
## Update Setup
|
||||
|
||||
`linux-update --arch` command updates the system with ansible. Run `linux-update -h` for information on usage.
|
@ -14,6 +14,7 @@
|
||||
- pcmanfm
|
||||
- blueman
|
||||
- flameshot
|
||||
- playerctl
|
||||
state: present
|
||||
become: true
|
||||
|
||||
|
1
provision/nixos/.gitignore
vendored
1
provision/nixos/.gitignore
vendored
@ -1 +0,0 @@
|
||||
*~
|
102
provision/nixos/flake.lock
generated
102
provision/nixos/flake.lock
generated
@ -1,102 +0,0 @@
|
||||
{
|
||||
"nodes": {
|
||||
"flake-utils": {
|
||||
"locked": {
|
||||
"lastModified": 1642700792,
|
||||
"narHash": "sha256-XqHrk7hFb+zBvRg6Ghl+AZDq03ov6OshJLiSWOoX5es=",
|
||||
"owner": "numtide",
|
||||
"repo": "flake-utils",
|
||||
"rev": "846b2ae0fc4cc943637d3d1def4454213e203cba",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "numtide",
|
||||
"repo": "flake-utils",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"home-manager": {
|
||||
"inputs": {
|
||||
"nixpkgs": [
|
||||
"nixpkgs"
|
||||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1683989410,
|
||||
"narHash": "sha256-puF/QsIkp4ch0sf6M5mNzbdZtYcq2MJHcKre9wJ3ZYo=",
|
||||
"owner": "nix-community",
|
||||
"repo": "home-manager",
|
||||
"rev": "6702b22b9805bc1879715d4111e3764cd4237aed",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "nix-community",
|
||||
"repo": "home-manager",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"mach-nix": {
|
||||
"inputs": {
|
||||
"flake-utils": "flake-utils",
|
||||
"nixpkgs": [
|
||||
"nixpkgs"
|
||||
],
|
||||
"pypi-deps-db": "pypi-deps-db"
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1681814846,
|
||||
"narHash": "sha256-IMQ1Twf/ozE53CwrunXNlYD3D31xqgz/mZyZG38Ov/Y=",
|
||||
"owner": "DavHau",
|
||||
"repo": "mach-nix",
|
||||
"rev": "8d903072c7b5426d90bc42a008242c76590af916",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "DavHau",
|
||||
"repo": "mach-nix",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"nixpkgs": {
|
||||
"locked": {
|
||||
"lastModified": 1683408522,
|
||||
"narHash": "sha256-9kcPh6Uxo17a3kK3XCHhcWiV1Yu1kYj22RHiymUhMkU=",
|
||||
"owner": "nixos",
|
||||
"repo": "nixpkgs",
|
||||
"rev": "897876e4c484f1e8f92009fd11b7d988a121a4e7",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "nixos",
|
||||
"ref": "nixos-unstable",
|
||||
"repo": "nixpkgs",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"pypi-deps-db": {
|
||||
"flake": false,
|
||||
"locked": {
|
||||
"lastModified": 1678051695,
|
||||
"narHash": "sha256-kFFP8TN8pEKARtjK9loGdH+TU23ZbHdVLCUdNcufKPs=",
|
||||
"owner": "DavHau",
|
||||
"repo": "pypi-deps-db",
|
||||
"rev": "e00b22ead9d3534ba1c448e1af3076af6b234acf",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "DavHau",
|
||||
"repo": "pypi-deps-db",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"root": {
|
||||
"inputs": {
|
||||
"home-manager": "home-manager",
|
||||
"mach-nix": "mach-nix",
|
||||
"nixpkgs": "nixpkgs"
|
||||
}
|
||||
}
|
||||
},
|
||||
"root": "root",
|
||||
"version": 7
|
||||
}
|
@ -1,45 +0,0 @@
|
||||
{
|
||||
description = "A very basic flake";
|
||||
|
||||
inputs = {
|
||||
nixpkgs.url = "github:nixos/nixpkgs/nixos-unstable";
|
||||
home-manager = {
|
||||
url = github:nix-community/home-manager;
|
||||
inputs.nixpkgs.follows = "nixpkgs";
|
||||
};
|
||||
mach-nix= {
|
||||
url = "github:DavHau/mach-nix";
|
||||
inputs.nixpkgs.follows = "nixpkgs";
|
||||
};
|
||||
};
|
||||
|
||||
outputs = inputs @ { self, nixpkgs, home-manager, mach-nix, ... }:
|
||||
let
|
||||
system = "x86_64-linux";
|
||||
pkgs = import nixpkgs {
|
||||
inherit system;
|
||||
config.allowUnfree = true;
|
||||
};
|
||||
lib = nixpkgs.lib;
|
||||
user = "tstarr";
|
||||
in {
|
||||
nixosConfigurations = {
|
||||
kestrel = lib.nixosSystem {
|
||||
inherit system;
|
||||
specialArgs = { inherit user; };
|
||||
modules = [
|
||||
./hosts/kestrel/configuration.nix
|
||||
./hosts/kestrel/hardware.nix
|
||||
home-manager.nixosModules.home-manager {
|
||||
home-manager.useGlobalPkgs = true;
|
||||
home-manager.useUserPackages = true;
|
||||
home-manager.extraSpecialArgs = { inherit user; };
|
||||
home-manager.users.${user} = {
|
||||
imports = [ ./hosts/kestrel/home-configuration.nix ];
|
||||
};
|
||||
}
|
||||
];
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
@ -1,145 +0,0 @@
|
||||
{ config, pkgs, user, lib, ... }:
|
||||
{
|
||||
nix = {
|
||||
package = pkgs.nixFlakes;
|
||||
extraOptions = "experimental-features = nix-command flakes";
|
||||
|
||||
settings.auto-optimise-store = true;
|
||||
gc = {
|
||||
automatic = true;
|
||||
dates = "weekly";
|
||||
options = "--delete-older-than 7d";
|
||||
};
|
||||
};
|
||||
|
||||
# Add non-free packages
|
||||
nixpkgs.config.allowUnfree = true;
|
||||
nixpkgs.overlays = import ../../lib/overlays.nix;
|
||||
|
||||
# Use zen kernel
|
||||
boot.kernelPackages = pkgs.linuxPackages_zen;
|
||||
|
||||
# Hardware options
|
||||
hardware.bluetooth.enable = true;
|
||||
hardware.sensor.iio.enable = true;
|
||||
hardware.opengl.enable = true;
|
||||
hardware.opengl.driSupport = true;
|
||||
hardware.opengl.driSupport32Bit = true;
|
||||
|
||||
# Use the systemd-boot EFI boot loader.
|
||||
boot.loader.systemd-boot.enable = true;
|
||||
boot.loader.efi.canTouchEfiVariables = true;
|
||||
|
||||
# Set networking options
|
||||
networking.hostName = "kestrel";
|
||||
networking.networkmanager.enable = true;
|
||||
|
||||
# Set your time zone.
|
||||
time.timeZone = "America/Los_Angeles";
|
||||
i18n.defaultLocale = "en_US.UTF-8";
|
||||
|
||||
#services.xserver = {
|
||||
# enable = true;
|
||||
# layout = "us";
|
||||
|
||||
# desktopManager.xterm.enable = false;
|
||||
|
||||
# # Use nvidia drivers
|
||||
# videoDrivers = [ "amdgpu" ];
|
||||
|
||||
# displayManager.gdm.enable = true;
|
||||
# desktopManager.gnome.enable = true;
|
||||
|
||||
# # Use the xmonad wm
|
||||
# windowManager = {
|
||||
# xmonad = {
|
||||
# enable = true;
|
||||
# enableContribAndExtras = true;
|
||||
# };
|
||||
# };
|
||||
#};
|
||||
|
||||
# Enable sound.
|
||||
sound.enable = true;
|
||||
hardware.pulseaudio.enable = true;
|
||||
hardware.pulseaudio.support32Bit = true;
|
||||
|
||||
# Add fonts
|
||||
fonts.fonts = with pkgs; [
|
||||
nerdfonts
|
||||
];
|
||||
|
||||
virtualisation.docker.enable = true;
|
||||
virtualisation.docker.storageDriver = "btrfs";
|
||||
programs.zsh.enable = true;
|
||||
# Define a user account. Don't forget to set a password with ‘passwd’.
|
||||
users.users.${user} = {
|
||||
isNormalUser = true;
|
||||
extraGroups = [ "wheel" "docker" ]; # Enable ‘sudo’ for the user.
|
||||
shell = pkgs.zsh;
|
||||
};
|
||||
|
||||
# List packages installed in system profile. To search, run:
|
||||
# $ nix search wget
|
||||
environment.systemPackages = with pkgs; [
|
||||
vim
|
||||
git
|
||||
killall
|
||||
pciutils
|
||||
syncthing
|
||||
#pamixer
|
||||
vifm
|
||||
mpv
|
||||
pinentry-curses
|
||||
trash-cli
|
||||
bc
|
||||
unzip
|
||||
];
|
||||
|
||||
# Enable user services
|
||||
services = {
|
||||
gvfs.enable = true; # USB automount
|
||||
blueman.enable = true;
|
||||
printing.enable = true;
|
||||
printing.drivers = [ pkgs.hplip ];
|
||||
avahi.enable = true;
|
||||
avahi.nssmdns = true;
|
||||
syncthing = {
|
||||
enable = true;
|
||||
user = "tstarr";
|
||||
dataDir = "/home/tstarr/sync";
|
||||
configDir = "/home/tstarr/.config/syncthing";
|
||||
};
|
||||
};
|
||||
|
||||
# Enable the OpenSSH daemon.
|
||||
services.openssh.enable = true;
|
||||
services.pcscd.enable = true;
|
||||
programs.gnupg.agent = {
|
||||
enable = true;
|
||||
pinentryFlavor = "curses";
|
||||
enableSSHSupport = true;
|
||||
};
|
||||
|
||||
# Enable modules
|
||||
imports = [ ../../modules ];
|
||||
modules = {
|
||||
services = {
|
||||
samba.enable = true;
|
||||
vfio.enable = false; # Currently broken
|
||||
};
|
||||
devel = {
|
||||
tooling.enable = true;
|
||||
python.enable = true;
|
||||
engineering.enable = true;
|
||||
};
|
||||
gaming = {
|
||||
steam.enable = true;
|
||||
};
|
||||
desktop = {
|
||||
sway.enable = true;
|
||||
};
|
||||
};
|
||||
|
||||
system.stateVersion = "22.11"; # Did you read the comment?
|
||||
}
|
@ -1,64 +0,0 @@
|
||||
# Do not modify this file! It was generated by ‘nixos-generate-config’
|
||||
# and may be overwritten by future invocations. Please make changes
|
||||
# to /etc/nixos/configuration.nix instead.
|
||||
{ config, lib, pkgs, modulesPath, ... }:
|
||||
|
||||
{
|
||||
imports =
|
||||
[ (modulesPath + "/installer/scan/not-detected.nix")
|
||||
];
|
||||
|
||||
boot.initrd.availableKernelModules = [ "xhci_pci" "ahci" "usbhid" "usb_storage" "sd_mod" ];
|
||||
boot.initrd.kernelModules = [ ];
|
||||
boot.kernelModules = [ "kvm-amd" ];
|
||||
boot.extraModulePackages = [ ];
|
||||
|
||||
fileSystems."/" =
|
||||
{ device = "/dev/disk/by-uuid/b946d3b5-86ea-4f22-be13-532a60023b98";
|
||||
fsType = "btrfs";
|
||||
options = [ "subvol=root" ];
|
||||
};
|
||||
|
||||
fileSystems."/home" =
|
||||
{ device = "/dev/disk/by-uuid/b946d3b5-86ea-4f22-be13-532a60023b98";
|
||||
fsType = "btrfs";
|
||||
options = [ "subvol=home" ];
|
||||
};
|
||||
|
||||
fileSystems."/nix" =
|
||||
{ device = "/dev/disk/by-uuid/b946d3b5-86ea-4f22-be13-532a60023b98";
|
||||
fsType = "btrfs";
|
||||
options = [ "subvol=nix" ];
|
||||
};
|
||||
|
||||
fileSystems."/persist" =
|
||||
{ device = "/dev/disk/by-uuid/b946d3b5-86ea-4f22-be13-532a60023b98";
|
||||
fsType = "btrfs";
|
||||
options = [ "subvol=persist" ];
|
||||
};
|
||||
|
||||
fileSystems."/var/log" =
|
||||
{ device = "/dev/disk/by-uuid/b946d3b5-86ea-4f22-be13-532a60023b98";
|
||||
fsType = "btrfs";
|
||||
options = [ "subvol=log" ];
|
||||
};
|
||||
|
||||
fileSystems."/boot" =
|
||||
{ device = "/dev/disk/by-uuid/0A89-7181";
|
||||
fsType = "vfat";
|
||||
};
|
||||
|
||||
swapDevices =
|
||||
[ { device = "/dev/disk/by-uuid/b62ff9a9-37ed-494a-9805-9f148aff4b9c"; }
|
||||
];
|
||||
|
||||
# Enables DHCP on each ethernet and wireless interface. In case of scripted networking
|
||||
# (the default) this is the recommended approach. When using systemd-networkd it's
|
||||
# still possible to use this option, but it's recommended to use it in conjunction
|
||||
# with explicit per-interface declarations with `networking.interfaces.<interface>.useDHCP`.
|
||||
networking.useDHCP = lib.mkDefault true;
|
||||
# networking.interfaces.enp3s0.useDHCP = lib.mkDefault true;
|
||||
|
||||
nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux";
|
||||
hardware.cpu.amd.updateMicrocode = lib.mkDefault config.hardware.enableRedistributableFirmware;
|
||||
}
|
@ -1,24 +0,0 @@
|
||||
{ config, pkgs, user, ... }:
|
||||
{
|
||||
home.username = "${user}";
|
||||
home.homeDirectory = "/home/${user}";
|
||||
programs.home-manager.enable = true;
|
||||
|
||||
|
||||
home.packages = with pkgs; [
|
||||
google-chrome
|
||||
firefox
|
||||
alacritty
|
||||
gamemode
|
||||
lutris
|
||||
pcmanfm
|
||||
discord
|
||||
inkscape
|
||||
libreoffice-fresh
|
||||
chezmoi
|
||||
rbw
|
||||
vscodium.fhs
|
||||
];
|
||||
|
||||
home.stateVersion = "22.11";
|
||||
}
|
@ -1,7 +0,0 @@
|
||||
/* This configures nixpkgs.overlays to include our overlays/ directory.
|
||||
*/
|
||||
let path = ../overlays; in with builtins;
|
||||
map (n: import (path + ("/" + n)))
|
||||
(filter (n: match ".*\\.nix" n != null ||
|
||||
pathExists (path + ("/" + n + "/default.nix")))
|
||||
(attrNames (readDir path)))
|
@ -1,4 +0,0 @@
|
||||
{ ... }:
|
||||
{
|
||||
imports = [ ./desktop ./gaming ./devel ./services ];
|
||||
}
|
@ -1,4 +0,0 @@
|
||||
{ ... }:
|
||||
{
|
||||
imports = [ ./sway.nix ];
|
||||
}
|
@ -1,71 +0,0 @@
|
||||
{ config, lib, pkgs, user, ... }:
|
||||
|
||||
let
|
||||
cfg = config.modules.desktop.sway;
|
||||
|
||||
# currently, there is some friction between sway and gtk:
|
||||
# https://github.com/swaywm/sway/wiki/GTK-3-settings-on-Wayland
|
||||
# the suggested way to set gtk settings is with gsettings
|
||||
# for gsettings to work, we need to tell it where the schemas are
|
||||
# using the XDG_DATA_DIR environment variable
|
||||
# run at the end of sway config
|
||||
configure-gtk = pkgs.writeTextFile {
|
||||
name = "configure-gtk";
|
||||
destination = "/bin/configure-gtk";
|
||||
executable = true;
|
||||
text = let
|
||||
schema = pkgs.gsettings-desktop-schemas;
|
||||
datadir = "${schema}/share/gsettings-schemas/${schema.name}";
|
||||
in ''
|
||||
export XDG_DATA_DIRS=${datadir}:$XDG_DATA_DIRS
|
||||
gnome_schema=org.gnome.desktop.interface
|
||||
gsettings set $gnome_schema gtk-theme 'Dracula'
|
||||
'';
|
||||
};
|
||||
|
||||
in {
|
||||
options.modules.desktop.sway.enable = lib.mkEnableOption "sway";
|
||||
config = lib.mkIf cfg.enable {
|
||||
|
||||
environment.systemPackages = with pkgs; [
|
||||
sway
|
||||
wayland
|
||||
xwayland
|
||||
configure-gtk
|
||||
xdg-utils # for opening default programs when clicking links
|
||||
glib # gsettings
|
||||
dracula-theme # gtk theme
|
||||
gnome3.adwaita-icon-theme # default gnome cursors
|
||||
swaylock-effects
|
||||
swayidle
|
||||
grim # screenshot functionality
|
||||
wl-clipboard # wl-copy and wl-paste for copy/paste from stdin / stdout
|
||||
mako # notification system developed by swaywm maintainer
|
||||
#dunst
|
||||
wdisplays # tool to configure displays
|
||||
rofi
|
||||
imagemagick
|
||||
feh
|
||||
];
|
||||
|
||||
# xdg-desktop-portal works by exposing a series of D-Bus interfaces
|
||||
# known as portals under a well-known name
|
||||
# (org.freedesktop.portal.Desktop) and object path
|
||||
# (/org/freedesktop/portal/desktop).
|
||||
# The portal interfaces include APIs for file access, opening URIs,
|
||||
# printing and others.
|
||||
services.dbus.enable = true;
|
||||
xdg.portal = {
|
||||
enable = true;
|
||||
wlr.enable = true;
|
||||
# gtk portal needed to make gtk apps happy
|
||||
extraPortals = [ pkgs.xdg-desktop-portal-gtk ];
|
||||
};
|
||||
|
||||
# enable sway window manager
|
||||
programs.sway = {
|
||||
enable = true;
|
||||
wrapperFeatures.gtk = true;
|
||||
};
|
||||
};
|
||||
}
|
@ -1,5 +0,0 @@
|
||||
{ ... }:
|
||||
|
||||
{
|
||||
imports = [ ./tooling.nix ./python.nix ./engineering.nix ];
|
||||
}
|
@ -1,14 +0,0 @@
|
||||
# CAD and 3d printing and everything nice
|
||||
|
||||
{ config, lib, pkgs, user, ... }:
|
||||
|
||||
let
|
||||
cfg = config.modules.devel.engineering;
|
||||
in {
|
||||
options.modules.devel.engineering.enable = lib.mkEnableOption "engineering";
|
||||
config = lib.mkIf cfg.enable {
|
||||
|
||||
# Install packages
|
||||
environment.systemPackages = with pkgs; [ super-slicer freecad blender ];
|
||||
};
|
||||
}
|
@ -1,27 +0,0 @@
|
||||
# python with all the venom
|
||||
|
||||
{ config, lib, pkgs, user, ... }:
|
||||
|
||||
let
|
||||
cfg = config.modules.devel.python;
|
||||
my-python-packages = ps: with ps; [
|
||||
virtualenv
|
||||
i3ipc
|
||||
ipython
|
||||
pip
|
||||
];
|
||||
|
||||
in {
|
||||
options.modules.devel.python.enable = lib.mkEnableOption "python";
|
||||
config = lib.mkIf cfg.enable {
|
||||
|
||||
# Install packages
|
||||
environment.systemPackages = with pkgs; [
|
||||
(python3.withPackages my-python-packages)
|
||||
beancount
|
||||
fava
|
||||
nodePackages_latest.pyright
|
||||
distrobox
|
||||
];
|
||||
};
|
||||
}
|
@ -1,19 +0,0 @@
|
||||
# coding stuff for all the languages
|
||||
|
||||
{ config, lib, pkgs, user, ... }:
|
||||
|
||||
let
|
||||
cfg = config.modules.devel.tooling;
|
||||
in {
|
||||
options.modules.devel.tooling.enable = lib.mkEnableOption "tooling";
|
||||
config = lib.mkIf cfg.enable {
|
||||
|
||||
# Install packages
|
||||
environment.systemPackages = with pkgs; [
|
||||
neovim
|
||||
ripgrep
|
||||
tmux
|
||||
tmuxinator
|
||||
];
|
||||
};
|
||||
}
|
@ -1,4 +0,0 @@
|
||||
{ ... }:
|
||||
{
|
||||
imports = [ ./steam.nix ];
|
||||
}
|
@ -1,23 +0,0 @@
|
||||
{ config, lib, pkgs, user, ... }:
|
||||
|
||||
let cfg = config.modules.gaming.steam;
|
||||
in {
|
||||
options.modules.gaming.steam.enable = lib.mkEnableOption "steam";
|
||||
config = lib.mkIf cfg.enable {
|
||||
hardware.opengl = { # this fixes the "glXChooseVisual failed" bug, context: https://github.com/NixOS/nixpkgs/issues/47932
|
||||
enable = true;
|
||||
driSupport32Bit = true;
|
||||
};
|
||||
|
||||
# optionally enable 32bit pulseaudio support if pulseaudio is enabled
|
||||
hardware.pulseaudio.support32Bit = config.hardware.pulseaudio.enable;
|
||||
|
||||
hardware.steam-hardware.enable = true;
|
||||
|
||||
environment.systemPackages = [
|
||||
pkgs.steam
|
||||
pkgs.ryujinx
|
||||
];
|
||||
};
|
||||
|
||||
}
|
@ -1,5 +0,0 @@
|
||||
{ ... }:
|
||||
|
||||
{
|
||||
imports = [ ./samba.nix ./vfio.nix ];
|
||||
}
|
@ -1,32 +0,0 @@
|
||||
# Samba for file sharing!
|
||||
|
||||
{ config, lib, pkgs, ... }:
|
||||
|
||||
let cfg = config.modules.services.samba;
|
||||
in {
|
||||
options.modules.services.samba.enable = lib.mkEnableOption "samba";
|
||||
config = lib.mkIf cfg.enable {
|
||||
services.samba = {
|
||||
enable = true;
|
||||
extraConfig = ''
|
||||
browseable = yes
|
||||
smb encrypt = required
|
||||
'';
|
||||
shares = {
|
||||
homes = {
|
||||
browseable = "no"; # note: each home will be browseable; the "homes" share will not.
|
||||
"read only" = "no";
|
||||
"guest ok" = "no";
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
# Curiously, `services.samba` does not automatically open
|
||||
# the needed ports in the firewall.
|
||||
networking.firewall.allowedTCPPorts = [ 445 139 ];
|
||||
networking.firewall.allowedUDPPorts = [ 137 138 ];
|
||||
|
||||
# To make SMB mounting easier on the command line
|
||||
environment.systemPackages = with pkgs; [ cifs-utils ];
|
||||
};
|
||||
}
|
@ -1,57 +0,0 @@
|
||||
# vfio setup for windows gaming with single gpu
|
||||
|
||||
{ config, lib, pkgs, user, ... }:
|
||||
|
||||
let cfg = config.modules.services.vfio;
|
||||
in {
|
||||
options.modules.services.vfio.enable = lib.mkEnableOption "samba";
|
||||
config = lib.mkIf cfg.enable {
|
||||
|
||||
users.users.${user}.extraGroups = [ "qemu-libvirtd" "libvirtd" "kvm" ];
|
||||
|
||||
# Boot configuration
|
||||
boot.kernelParams = [ "amd_iommu=on" "iommu=pt" ];
|
||||
boot.kernelModules = [ "kvm-amd" "vfio-pci" ];
|
||||
|
||||
programs.dconf.enable = true;
|
||||
|
||||
environment.systemPackages = with pkgs; [ virt-manager ];
|
||||
|
||||
# Enable libvirtd
|
||||
virtualisation.libvirtd = {
|
||||
enable = true;
|
||||
onBoot = "ignore";
|
||||
onShutdown = "shutdown";
|
||||
qemu.ovmf.enable = true;
|
||||
qemu.runAsRoot = true;
|
||||
};
|
||||
|
||||
# Place helper files where libvirt can get to them
|
||||
environment.etc = {
|
||||
"libvirt/hooks/qemu" = {
|
||||
source = "/home/${user}/.setup/local/gpu-passthrough/qemu";
|
||||
mode = "0755";
|
||||
};
|
||||
"libvirt/hooks/qemu.d/win10/prepare/begin/start.sh" = {
|
||||
source = "/home/${user}/.setup/local/gpu-passthrough/start.sh";
|
||||
mode = "0755";
|
||||
};
|
||||
"libvirt/hooks/qemu.d/win10/release/end/revert.sh" = {
|
||||
source = "/home/${user}/.setup/local/gpu-passthrough/revert.sh";
|
||||
mode = "0755";
|
||||
};
|
||||
"libvirt/qemu.conf" = {
|
||||
source = "/home/${user}/.setup/local/gpu-passthrough/qemu.conf";
|
||||
mode = "0755";
|
||||
};
|
||||
"libvirt/libvirtd.conf" = {
|
||||
source = "/home/${user}/.setup/local/gpu-passthrough/libvirtd.conf";
|
||||
mode = "0755";
|
||||
};
|
||||
"libvirt/patch.rom" = {
|
||||
source = "/home/${user}/.setup/local/gpu-passthrough/patch.rom";
|
||||
mode = "0755";
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
@ -1,5 +0,0 @@
|
||||
self: super: {
|
||||
rofi = super.rofi.override { plugins = [ self.rofi-emoji ]; };
|
||||
}
|
||||
|
||||
|
@ -1,103 +0,0 @@
|
||||
# Additional Setup
|
||||
|
||||
The following documents Void setup that wasn't automated with ansible.
|
||||
|
||||
## Radicale and vdirsyncer for contacts/calendar
|
||||
|
||||
[Radicale](https://radicale.org/v3.html) is hosted on my home server to provide
|
||||
DAV synced calendars and contacts. [Vdirsyncer](https://github.com/pimutils/vdirsyncer)
|
||||
allows for the files to be synced to the linux filesystem for desktop usage
|
||||
with [khard](https://github.com/lucc/khard) and [khal](https://github.com/pimutils/khal).
|
||||
The config files are auto-populated by chezmoi with credentials from bitwarden
|
||||
run the following commands to setup vdirsyncer files:
|
||||
|
||||
```bash
|
||||
vdirsyncer -c ~/.config/vdirsyncer/config_calendar discover
|
||||
vdirsyncer -c ~/.config/vdirsyncer/config_contacts discover
|
||||
```
|
||||
|
||||
Files can be later synced with the following commands:
|
||||
|
||||
```bash
|
||||
vdirsyncer -c ~/.config/vdirsyncer/config_calendar sync
|
||||
vdirsyncer -c ~/.config/vdirsyncer/config_contacts sync
|
||||
```
|
||||
|
||||
## Wireguard Client
|
||||
|
||||
Wireguard is nice for a home vpn and [pivpn](https://pivpn.io/) makes it easy.
|
||||
|
||||
1. Create client on server and copy resulting `.conf` file to local machine
|
||||
2. Import to networkmanager with:
|
||||
```bash
|
||||
nmcli connection import type wireguard file <conf file from pivpn>
|
||||
```
|
||||
3. Turn on/off from nm-applet
|
||||
|
||||
## BTRFS back-ups with btrbk
|
||||
|
||||
[btrbk](https://github.com/digint/btrbk) is used to create snapshots of the
|
||||
root and user volumes. User volumes are backed-up to my home server (Torus),
|
||||
but root is only stored locally.
|
||||
|
||||
```bash
|
||||
sudo btrbk -c ~/.config/btrbk/home_btrbk.conf -v run # snapshot /home/<user>
|
||||
sudo btrbk -c ~/.config/btrbk/root_btrbk.conf -v run # snapshot /
|
||||
```
|
||||
|
||||
SSH keypair is used for password-less root ssh for remote back-up. See
|
||||
[ssh setup](https://github.com/digint/btrbk#setting-up-ssh) from the btrbk
|
||||
readme.
|
||||
|
||||
anacron is used for daily backups. Copy `home_backup.sh` from the config folder
|
||||
to `/etc/cron.daily`.
|
||||
|
||||
## Mount network drives
|
||||
|
||||
I find fstab messing about more troubule than it is worth. Mount network drives
|
||||
when needed with the following command:
|
||||
|
||||
```bash
|
||||
linux-mount-<network drive name>
|
||||
```
|
||||
|
||||
## Taskopen for taskwarrior
|
||||
|
||||
[taskopen](https://github.com/jschlatow/taskopeni) is easier to install
|
||||
manually at this point since it isn't packaged and uses nim. Might get this
|
||||
automated in the future.
|
||||
|
||||
```bash
|
||||
curl https://nim-lang.org/choosenim/init.sh -sSf | sh # install nim
|
||||
git clone https://github.com/jschlatow/taskopen.git
|
||||
cd taskopen
|
||||
make PREFIX=/usr
|
||||
sudo make PREFIX=/usr install
|
||||
```
|
||||
|
||||
## Syncthing
|
||||
|
||||
Syncthing is used to sync folders between various computers and android. The
|
||||
ansible script should setup and run the service, but shares must be setup
|
||||
via the web gui. Currently four shares exists:
|
||||
- `.warrior` - `.task` and `.timewarrior` folders to sync taskwarrior tasks.
|
||||
These two folders are symlinked to the home folder where taskwarrior/timewarrior
|
||||
expects them.
|
||||
- `warrior` - contains text files associated with taskwarrior (mostly from
|
||||
taskopen).
|
||||
- `phone photos` - personal photos synched from android.
|
||||
- `phone screenshots` - personal screenshots synced from android.
|
||||
- `keys` - contains ssh keys for git remotes (~/.ssh/keys)
|
||||
|
||||
## Lxappearance
|
||||
|
||||
My GTK theme is pulled down by chezmoi, but isn't active by default. This can
|
||||
be fixed with the lxappearance gui.
|
||||
|
||||
## nb notebooks
|
||||
|
||||
Remote nb notebooks are added with the following command:
|
||||
|
||||
```bash
|
||||
nb notebooks add <notebook name> https://github.com/starr-dusT/nb <branch>
|
||||
```
|
@ -1 +0,0 @@
|
||||
local ansible_connection=local ansible_python_interpreter=/usr/bin/python3
|
@ -1,8 +0,0 @@
|
||||
# Ansible Galaxy Roles
|
||||
roles:
|
||||
- src: https://github.com/starr-dusT/ansible-role-customize-gnome
|
||||
- src: https://github.com/starr-dusT/ansible-rustup
|
||||
collections:
|
||||
- name: community.general
|
||||
version: 6.0.1
|
||||
source: https://galaxy.ansible.com
|
@ -1,14 +0,0 @@
|
||||
- name: Ansible playbook to setup void linux
|
||||
hosts: all
|
||||
|
||||
vars_files:
|
||||
- ../home/.chezmoidata.yaml
|
||||
|
||||
tasks:
|
||||
- import_tasks: tasks/system/_main.yml
|
||||
- import_tasks: tasks/terminal/_main.yml
|
||||
- import_tasks: tasks/development/_main.yml
|
||||
- import_tasks: tasks/desktop/_main.yml
|
||||
- import_tasks: tasks/gaming/_main.yml
|
||||
- import_tasks: tasks/engineering/_main.yml
|
||||
|
@ -1,7 +0,0 @@
|
||||
- import_tasks: configs.yml
|
||||
tags: ["configs"]
|
||||
- import_tasks: packages.yml
|
||||
tags: ["packages"]
|
||||
- import_tasks: gnome-settings/_main.yml
|
||||
tags: ["configs"]
|
||||
when: desktop == "gnome"
|
@ -1,19 +0,0 @@
|
||||
- name: Set desktop files to hide
|
||||
include_tasks: ../include/hide-desktop.yml
|
||||
loop:
|
||||
- /usr/share/applications/wine-winhelp.desktop
|
||||
- /usr/share/applications/wine-mime-msi.desktop
|
||||
- /usr/share/applications/wine-notepad.desktop
|
||||
- /usr/share/applications/wine-oleview.desktop
|
||||
- /usr/share/applications/wine-regedit.desktop
|
||||
- /usr/share/applications/wine-uninstaller.desktop
|
||||
- /usr/share/applications/wine-wineboot.desktop
|
||||
- /usr/share/applications/wine-winecfg.desktop
|
||||
- /usr/share/applications/wine-winefile.desktop
|
||||
- /usr/share/applications/wine-winemine.desktop
|
||||
- /usr/share/applications/wine-wordpad.desktop
|
||||
- /usr/share/applications/vifm.desktop
|
||||
- /usr/share/applications/dosbox-staging.desktop
|
||||
- /usr/share/applications/nvim.desktop
|
||||
- /usr/share/applications/syncthing-start.desktop
|
||||
- /usr/share/applications/syncthing-ui.desktop
|
@ -1,17 +0,0 @@
|
||||
- name: Set custom gnome binding {{ index }}
|
||||
dconf:
|
||||
key: "/org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/custom{{ index }}/binding"
|
||||
value: "{{ item.bind }}"
|
||||
state: present
|
||||
|
||||
- name: Set custom gnome command {{ index }}
|
||||
dconf:
|
||||
key: "/org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/custom{{ index }}/command"
|
||||
value: "{{ item.command }}"
|
||||
state: present
|
||||
|
||||
- name: Set custom gnome name {{ index }}
|
||||
dconf:
|
||||
key: "/org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/custom{{ index }}/name"
|
||||
value: "{{ index }}"
|
||||
state: present
|
@ -1,6 +0,0 @@
|
||||
- import_tasks: extensions.yml
|
||||
tags: ["gnome-extensions"]
|
||||
- import_tasks: keybinds.yml
|
||||
tags: ["configs"]
|
||||
- import_tasks: window-management.yml
|
||||
tags: ["configs"]
|
@ -1,11 +0,0 @@
|
||||
- name: Install gnome extensions
|
||||
include_role:
|
||||
name: ansible-role-customize-gnome
|
||||
vars:
|
||||
# For now extensions aren't enabled (https://github.com/PeterMosmans/ansible-role-customize-gnome/issues/25)
|
||||
gnome_extensions:
|
||||
- id: 779 # https://github.com/Tudmotu/gnome-shell-extension-clipboard-indicator
|
||||
- id: 4362 # https://github.com/Noobsai/fullscreen-avoider
|
||||
- id: 1460 # https://github.com/corecoding/Vitals
|
||||
- id: 7 # https://gitlab.gnome.org/GNOME/gnome-shell-extensions
|
||||
gnome_user: "{{ user }}"
|
@ -1,62 +0,0 @@
|
||||
- name: Unset particular default gnome keybinds
|
||||
dconf:
|
||||
key: "{{ item }}"
|
||||
value: [""]
|
||||
state: present
|
||||
loop:
|
||||
- "/org/gnome/shell/keybindings/switch-to-application-1"
|
||||
- "/org/gnome/shell/keybindings/switch-to-application-2"
|
||||
- "/org/gnome/shell/keybindings/switch-to-application-3"
|
||||
- "/org/gnome/shell/keybindings/switch-to-application-4"
|
||||
- "/org/gnome/shell/keybindings/switch-to-application-5"
|
||||
- "/org/gnome/desktop/wm/keybindings/switch-input-source"
|
||||
- "/org/gnome/desktop/wm/keybindings/switch-input-source-backwards"
|
||||
- "/org/gnome/settings-daemon/plugins/media-keys/screensaver"
|
||||
- "/org/gnome/desktop/wm/keybindings/switch-applications"
|
||||
- "/org/gnome/desktop/wm/keybindings/switch-applications-backward"
|
||||
- "/org/gnome/desktop/wm/keybindings/switch-windows"
|
||||
- "/org/gnome/desktop/wm/keybindings/switch-windows-backward"
|
||||
|
||||
- name: Change existing gnome keybinds
|
||||
dconf:
|
||||
key: "{{ item.key }}"
|
||||
value: "{{ item.value }}"
|
||||
state: present
|
||||
loop:
|
||||
- {key: "/org/gnome/desktop/wm/keybindings/switch-to-workspace-1", value: ["<Super>1"]}
|
||||
- {key: "/org/gnome/desktop/wm/keybindings/switch-to-workspace-2", value: ["<Super>2"]}
|
||||
- {key: "/org/gnome/desktop/wm/keybindings/switch-to-workspace-3", value: ["<Super>3"]}
|
||||
- {key: "/org/gnome/desktop/wm/keybindings/switch-to-workspace-4", value: ["<Super>4"]}
|
||||
- {key: "/org/gnome/desktop/wm/keybindings/switch-to-workspace-5", value: ["<Super>5"]}
|
||||
- {key: "/org/gnome/desktop/wm/keybindings/move-to-workspace-1", value: ["<Super><Shift>1"]}
|
||||
- {key: "/org/gnome/desktop/wm/keybindings/move-to-workspace-2", value: ["<Super><Shift>2"]}
|
||||
- {key: "/org/gnome/desktop/wm/keybindings/move-to-workspace-3", value: ["<Super><Shift>3"]}
|
||||
- {key: "/org/gnome/desktop/wm/keybindings/move-to-workspace-4", value: ["<Super><Shift>4"]}
|
||||
- {key: "/org/gnome/desktop/wm/keybindings/move-to-workspace-5", value: ["<Super><Shift>5"]}
|
||||
- {key: "/org/gnome/desktop/wm/keybindings/minimize", value: ["<Super>Space"]}
|
||||
- {key: "/org/gnome/desktop/wm/keybindings/toggle-fullscreen", value: ["<Super>F"]}
|
||||
- {key: "/org/gnome/desktop/wm/keybindings/close", value: ["<Super>Q"]}
|
||||
- {key: "/org/gnome/desktop/wm/keybindings/maximize-horizontally", value: ["<Super><Shift>H"]}
|
||||
- {key: "/org/gnome/desktop/wm/keybindings/maximize-vertically", value: ["<Super><Shift>V"]}
|
||||
- {key: "/org/gnome/desktop/wm/keybindings/move-to-center", value: ["<Super>C"]}
|
||||
- {key: "/org/gnome/desktop/wm/keybindings/switch-windows", value: ["<Super>Tab"]}
|
||||
- {key: "/org/gnome/desktop/wm/keybindings/switch-windows-backward", value: ["<Super><Shift>Tab"]}
|
||||
- {key: "/org/gnome/settings-daemon/plugins/media-keys/screensaver", value: ["<Super><Shift>L"]}
|
||||
|
||||
- name: Set custom gnome keybinds
|
||||
include_tasks: _custom-bind.yml
|
||||
loop:
|
||||
- {command: "'gnome-terminal'", bind: "'<Super>Return'"}
|
||||
- {command: "'firefox'", bind: "'<Super><Shift>B'"}
|
||||
- {command: "'code'", bind: "'<Super><Shift>V'"}
|
||||
loop_control:
|
||||
index_var: index
|
||||
|
||||
# Gnome requires an array of strings with the custom keybinds
|
||||
# this must match the number of keybinds defined above...
|
||||
- name: Set custom-keybinds array
|
||||
dconf:
|
||||
key: /org/gnome/settings-daemon/plugins/media-keys/custom-keybindings
|
||||
value: "['/org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/custom0/',
|
||||
'/org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/custom1/',
|
||||
'/org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/custom2/']"
|
@ -1,10 +0,0 @@
|
||||
|
||||
- name: Set Static workspaces
|
||||
dconf:
|
||||
key: "/org/gnome/mutter/dynamic-workspaces"
|
||||
value: "false"
|
||||
|
||||
- name: Set Number of workspaces
|
||||
dconf:
|
||||
key: "/org/gnome/desktop/wm/preferences/num-workspaces"
|
||||
value: "5"
|
@ -1,51 +0,0 @@
|
||||
- name: Install desktop void packages
|
||||
xbps:
|
||||
name:
|
||||
- xorg # X.org meta-package
|
||||
- xterm # X Terminal Emulator
|
||||
- alacritty # Cross-platform, GPU-accelerated terminal emulator
|
||||
- mpv # Video player based on MPlayer/mplayer2
|
||||
- python3-i3ipc # Improved Python library to control i3wm and sway
|
||||
- xprop # Property displayer for X
|
||||
- lxappearance # LXDE Theme Switcher
|
||||
- blueman # GTK+ Bluetooth Manager
|
||||
- xrandr # Primitive command line interface to RandR extension
|
||||
- dunst # Lightweight and customizable notification daemon
|
||||
- ffmpeg # Decoding, encoding and streaming software
|
||||
- i3 # Improved tiling window manager
|
||||
- i3status # Status bar generator for i3bar, dzen2, xmobar or similar programs
|
||||
- nitrogen # Background browser and setter for X with support for Xinerama
|
||||
- nvidia # NVIDIA drivers for linux - Libraries and Utilities
|
||||
- nvidia-libs-32bit # NVIDIA drivers for linux - common libraries (32bit)
|
||||
- pavucontrol # PulseAudio Volume Control
|
||||
- polybar # Fast and easy-to-use status bar
|
||||
- rofi # Window switcher, run dialog and dmenu replacement
|
||||
- pcmanfm # LXDE file manager
|
||||
- xclip # Command line interface to the X11 clipboard
|
||||
- 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
|
||||
- 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
|
||||
- system-config-printer # CUPS printer configuration tool and status applet
|
||||
state: present
|
||||
become: true
|
||||
|
||||
- name: Install desktop xbps-src packages
|
||||
tags: ["src"]
|
||||
include_tasks: ../include/xbps-src.yml
|
||||
loop:
|
||||
- package: rofi-rbw # Simplistic password typer/copier using rofi and wofi
|
||||
repository: hostdir/binpkgs
|
||||
|
||||
- name: Install desktop flatpaks
|
||||
flatpak:
|
||||
name:
|
||||
- org.mozilla.firefox # Mozilla Firefox web browser
|
||||
- com.discordapp.Discord # VoIP and instant messaging social platform
|
||||
- org.gimp.GIMP # Create images and edit photographs
|
||||
- org.inkscape.Inkscape # Vector Graphics Editor
|
||||
- com.github.tchx84.Flatseal # Manage Flatpak permissions
|
||||
state: present
|
||||
become: true
|
@ -1,4 +0,0 @@
|
||||
- import_tasks: configs.yml
|
||||
tags: ["configs"]
|
||||
- import_tasks: packages.yml
|
||||
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,25 +0,0 @@
|
||||
- name: Install development void packages
|
||||
xbps:
|
||||
name:
|
||||
- python3 # Python programming language (3.11 series)
|
||||
- python3-pip # A tool for installing and managing Python3 packages
|
||||
- ripgrep # Fast search tool inspired by ag and grep
|
||||
- fd # Simple, fast and user-friendly alternative to find
|
||||
- lazygit # Simple terminal UI for git commands
|
||||
- ruby-tmuxinator # Create and manage complex tmux sessions easily
|
||||
- python3-pipenv # Python Development Workflow for Humans
|
||||
- python3-devel # Python programming language (3.11 series) - development files
|
||||
state: present
|
||||
become: true
|
||||
|
||||
- name: Install development python packages
|
||||
ansible.builtin.pip:
|
||||
name:
|
||||
- ansible-lint # Command-line tool for linting playbooks, roles and collections
|
||||
|
||||
- name: Install development flatpaks
|
||||
flatpak:
|
||||
name:
|
||||
- com.vscodium.codium # Free/Libre Open Source Software Binaries of VS Code
|
||||
state: present
|
||||
become: true
|
@ -1,2 +0,0 @@
|
||||
- import_tasks: packages.yml
|
||||
tags: ["packages"]
|
@ -1,8 +0,0 @@
|
||||
- name: Install engineering void packages
|
||||
xbps:
|
||||
name:
|
||||
- freecad # General purpose 3D CAD modeler
|
||||
state: present
|
||||
become: true
|
||||
|
||||
- include_tasks: superslicer.yml # PrusaSlicer fork (which is a slic3r fork)
|
@ -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,2 +0,0 @@
|
||||
- import_tasks: packages.yml
|
||||
tags: ["packages"]
|
@ -1,13 +0,0 @@
|
||||
- name: Install gaming void packages
|
||||
xbps:
|
||||
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
|
||||
- lutris # Video game preservation platform
|
||||
- gamemode # Optimize system performance for games on demand
|
||||
- wine # A compatibility layer for windows applications
|
||||
state: present
|
||||
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 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,18 +0,0 @@
|
||||
- name: Check desktop file exists
|
||||
ansible.builtin.stat:
|
||||
path: "{{ item }}"
|
||||
register: p
|
||||
|
||||
- name: Edit desktop file
|
||||
ansible.builtin.lineinfile:
|
||||
path: "{{ item }}"
|
||||
insertafter: '^Type'
|
||||
line: 'NoDisplay=true'
|
||||
firstmatch: true
|
||||
state: present
|
||||
become: true
|
||||
when: p.stat.exists
|
||||
|
||||
- debug:
|
||||
msg: "Warning - {{ item }} does not exist"
|
||||
when: p.stat.exists == False
|
@ -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
|
@ -1,4 +0,0 @@
|
||||
- import_tasks: packages.yml
|
||||
tags: ["packages"]
|
||||
- import_tasks: configs.yml
|
||||
tags: ["configs"]
|
@ -1,96 +0,0 @@
|
||||
- name: Create btrbk snapshot directories
|
||||
block:
|
||||
- file:
|
||||
path: /.snapshots
|
||||
state: directory
|
||||
owner: root
|
||||
group: root
|
||||
mode: 0775
|
||||
- file:
|
||||
path: /home/.snapshots
|
||||
state: directory
|
||||
owner: root
|
||||
group: root
|
||||
mode: 0775
|
||||
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/elogind /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
|
||||
ln -s /etc/sv/cupsd /var/service
|
||||
ln -s /etc/sv/cups-browsed /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
|
@ -1,54 +0,0 @@
|
||||
- name: Install system void repos
|
||||
xbps:
|
||||
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:
|
||||
- git # Fast Version Control System
|
||||
- git-lfs # Git extension for versioning large files
|
||||
- syncthing # Continuous File Synchronization
|
||||
- flatpak # Application deployment framework for desktop apps
|
||||
- wireguard # Fast, modern, secure vpn tunnel
|
||||
- wireguard-tools # Tool for wireguard
|
||||
- cronie # Runs specified programs at scheduled times
|
||||
- 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
|
||||
- cifs-utils # CIFS filesystem user-space tools
|
||||
- ansible # Simple deployment, configuration management and execution framework
|
||||
- btrbk # Backup tool for btrfs subvolumes
|
||||
- chezmoi # Manage your dotfiles across multiple machines, securely
|
||||
- elogind # Standalone logind fork
|
||||
- rsync # Remote fast incremental file transfer tool
|
||||
- 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
|
||||
- qemu # Open Source Processor Emulator
|
||||
- libvirt # Virtualization API for controlling virtualization engines
|
||||
- virt-manager # User interface for managing virtual machines
|
||||
- bridge-utils # Layer2 ethernet bridging for Linux
|
||||
- trash-cli # Command line interface to the freedesktop.org trashcan
|
||||
- udiskie # Removable disk automounter using udisks
|
||||
- curl # Client that groks URLs
|
||||
- wget # GNU wget download utility
|
||||
- NetworkManager # Network Management daemon
|
||||
- network-manager-applet # NetworkManager panel applet for GNOME
|
||||
- psensor # Graphical hardware temperature monitor for Linux
|
||||
- upower # Abstraction for enumerating power devices
|
||||
- android-udev-rules # Android udev rules list aimed to be the most comprehensive on the net
|
||||
- cups # Common Unix Printing System
|
||||
- hplip # HP Linux Imaging and Printing
|
||||
state: present
|
||||
become: true
|
||||
|
||||
- name: Add the flathub flatpak repository remote
|
||||
flatpak_remote:
|
||||
name: flathub
|
||||
state: present
|
||||
flatpakrepo_url: https://flathub.org/repo/flathub.flatpakrepo
|
||||
become: true
|
@ -1,4 +0,0 @@
|
||||
- import_tasks: packages.yml
|
||||
tags: ["packages"]
|
||||
- import_tasks: configs.yml
|
||||
tags: ["configs"]
|
@ -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
|
@ -1,10 +0,0 @@
|
||||
- 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 }}
|
@ -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,34 +0,0 @@
|
||||
- name: Install terminal void packages
|
||||
xbps:
|
||||
name:
|
||||
- neovim # Vim-fork focused on extensibility and agility
|
||||
- task # Command-line TODO list manager
|
||||
- timewarrior # Timewarrior tracks and reports time
|
||||
- python3-tasklib # Library for interacting with taskwarrior databases (Python3)
|
||||
- vifm # Ncurses-based file manager with vi-like keybindings
|
||||
- zsh # Z SHell
|
||||
- tmux # Terminal Multiplexer
|
||||
- nmap # Utility for network discovery and security auditing
|
||||
- w3m # Text-based Web browser and pager (with Debian patches)
|
||||
- lf # Terminal file manager
|
||||
- khal # Command-line calendar build around CalDAV
|
||||
- khard # Command-line addressbook built around CardDAV
|
||||
- vdirsyncer # Synchronize calendars and addressbooks
|
||||
- neofetch # Simple system information script
|
||||
state: present
|
||||
become: true
|
||||
|
||||
- name: Install terminal python packages
|
||||
ansible.builtin.pip:
|
||||
name:
|
||||
- pynvim
|
||||
|
||||
- name: Install terminal xbps-src packages
|
||||
tags: ["src"]
|
||||
include_tasks: ../include/xbps-src.yml
|
||||
loop:
|
||||
- package: rbw # Unofficial command line client for bitwarden
|
||||
repository: hostdir/binpkgs
|
||||
|
||||
- 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
|
@ -1,52 +0,0 @@
|
||||
#!/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"
|
||||
|
||||
# initialize chezmoi
|
||||
chezmoi init
|
||||
|
||||
# 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
|
||||
|
@ -1,32 +0,0 @@
|
||||
# Dotfiles
|
||||
> My dotfiles... What do you want?
|
||||
|
||||
My personal dotfiles repo. Documentation is pretty spotty. Maybe I'll fix that someday, but I probably won't.
|
||||
|
||||
## Usage
|
||||
|
||||
Dotfiles are managed with chezmoi and Ansible (built for Void) is used for the bulk of configuration.
|
||||
|
||||
## Initial Setup
|
||||
|
||||
Install Void with BTRFS and run the following commands:
|
||||
|
||||
```bash
|
||||
sudo xbps-install -Syu -y
|
||||
sudo xbps-install -S vim git chezmoi -y
|
||||
git clone https://github.com/starr-dusT/dotfiles ~/.local/share/chezmoi
|
||||
```
|
||||
|
||||
Copy `.chezmoidata.yaml.example` to `.chezmoidata.yaml` and edit with desired settings then 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)
|
||||
|
||||
## Update Setup
|
||||
|
||||
`void-update` command updates the system with ansible. Run `void-update -h` for information on usage.
|
Loading…
x
Reference in New Issue
Block a user