Finish porting desktop stuff over

Desktop and laptop will now both be running THIS branch of the repo
This commit is contained in:
Salt 2020-11-08 06:10:12 -06:00
parent 99adf1356f
commit cd063c93bd
8 changed files with 245 additions and 4 deletions

View File

@ -10,10 +10,6 @@ This branch is kinda-sorta a port of master, so it still needs to reach some for
* Matrix(? Do I still want to keep this around? Is there a better alternative? Will my friends even use it?) * Matrix(? Do I still want to keep this around? Is there a better alternative? Will my friends even use it?)
* My inane desktop setups
* Which are part of the way there, mostly just need some off-the-wall stuff
* Backups * Backups
* Duplicity? * Duplicity?

View File

@ -3,3 +3,6 @@
- name: restart cron - name: restart cron
service: name=cron state=restarted service: name=cron state=restarted
become: yes become: yes
- name: regen initramfs
command: /usr/sbin/update-initramfs -c -k all
become: yes

View File

@ -0,0 +1,155 @@
# vim:ft=ansible:
## PIP3 CONFIGURATION
desktop_pip3_packages:
- pmbootstrap
- protontricks
- youtube-dl
desktop_pip3_packages_extra: []
## APT CONFIGURATION
desktop_apt_archs:
- amd64
- i386
desktop_apt_keys_keyserver:
- 3FA7E0328081BFF6A14DA29AA6A19B38D3D831EF # Monodevelop
desktop_apt_keys_keyserver_extra: []
desktop_apt_keys_url:
- "https://packagecloud.io/slacktechnologies/slack/gpgkey" # Slack
- "https://syncthing.net/release-key.txt" # Syncthing
- "https://packages.riot.im/debian/riot-im-archive-keyring.gpg" # Element
- "https://download.spotify.com/debian/pubkey.gpg" # Spotify 1
- "https://download.spotify.com/debian/pubkey_0D811D58.gpg" # Spotify 2
desktop_apt_keys_url_extra: []
desktop_apt_repos:
- "deb https://packagecloud.io/slacktechnologies/slack/debian/ jessie main" # Slack
- "deb http://repository.spotify.com stable non-free" # Spotify
- "deb https://apt.syncthing.net/ syncthing stable" # Syncthing
- "deb https://download.mono-project.com/repo/ubuntu vs-bionic main" # Monodevelop
- "deb https://packages.riot.im/debian/ default main" # Element
# First-party PPAs
- "ppa:phoerious/keepassxc" # KeepassXC
# Third-party PPAs
- "ppa:drewwalton19216801/dolphin-master-cosmic" # Because Dolphin doesn't update their shit
- "ppa:kgilmer/speed-ricer" # Ricing is fun and kgilmer is cool
- "ppa:lutris-team/lutris" # Lutris is useful for vidya
desktop_apt_repos_extra: []
desktop_apt_packages:
# CLI Packages
- apt # Useful for Android debugging, and also for pinephone shenanigans
- build-essential # Used in numerous build ventures, just all-around important
- cmake # Also useful for building from source
- fastboot # Also used for phone debugging
- ffmpeg # Fantastic tool, used on the daily
- git # Just ensuring it's installed, probably already in build-essential
- imagemagick # I use it from time to time to do scripted image editing
# - libinput-tools # Allows for libinput debugging
- lua-check # Used in linting computercraft scripts
- network-manager-openconnect # Used for anyconnect VPNs
- network-manager-openvpn # Used for OpenVPN VPNs
- nmap # Useful basic utility
- npm # I'm sorry
- openjdk-8-jre # Used for Minecraft
- pwgen # Useful basic utility
- python3-appdirs # Various python libraries for scripts, mostly fuselee-gelee
- python3-eyed3
- python3-pip # Except you, you're important
- python3-pyqt5
- python3-usb
- python3-venv
- tree # Useful basic utility
- vagrant # Very handy for development
- vagrant-libvirt
- vim # VERY important utility
- wine # Used for gaming and other things
- wine-binfmt # Quality-of-life support for single-click launching EXEs
- xz-utils # Required for Ansible to support some .deb-related features
# Fonts
- fonts-fork-awesome # Used in Polybar and by one or two personal websites
- fonts-ibm-plex # Used for general variable-width typeface
- fonts-inconsolata # Used as monospace typeface
- fonts-material-design-icons-iconfont # Used in Polybar
- fonts-noto # Important series of fonts to have
- fonts-roboto # Used a lot on the web
# DE
- bspwm # My main window manager
- conky-all # Used for statistics displays on desktops
- dunst # Notification daemon
# - hsetroot # Used in absence of Nitrogen to set basic wallpaper stuff
- ibus
- ibus-mozc # For Japanese input
- kubuntu-desktop # Basic sanity check
- mozc-utils-gui # Configuration panel not explicitly pulled in
- nitrogen # Wallpaper setter
- papirus-icon-theme # Fancy paper icon theme
- pavucontrol-qt # Nice audio interface
- picom # Compositor, replacement for Compton
- polybar # MY BAR
- qt5ct # Useful for qt5 themeing
- rofi # Application launcher
- xbacklight # For the day I get around to fixing support for this on my machines
# Games
- minetest
# Applications
- barrier # FOSS variant of Synergy
- chromium-browser # Nice to have an alternative browser, even if it's trash
- clonezilla # Gotta make them clones
- dolphin-emu-master # GameCube and Wii emulator
- dolphin-plugins # Unrelated to the above, improves the Dolphin file manager
- element-desktop # Matrix client
- filelight # Disk space management utility
- filezilla # FTP/SFTP/FTPS client, useful once in a blue moon
- firefox # MY MAN
- g810-led # Controls lights on Logitech peripherals
- gimp # Fantastic image editor
- joy2key # A neat wrapper to bind controller inputs to keyboard keys
- kcolorchooser # Color picker, used all the time in themeing
- kde-config-plymouth # For configuring Plymouth. Fancy. See plymouth-theme-spinner
- kdepim # I'm one of the four people on the planet that uses kmail
- keepassxc # Password manager
- libnotify-bin # Used in several scripts to send notifications
- libretro-desmume # Libretro cores
- libretro-mgba
- libretro-mupen64plus
- libretro-snes9x
- lutris # Fantastic third-party wine gaming client
- mesa-vulkan-drivers # Important graphics drivers
- mono-complete # Initialization may take an eternity
- monodevelop # For Terraria modding, don't hate me
- mpv # Video player of choice
- mupen64plus-qt # For when I don't want to fight libretro
- nextcloud-desktop # Desktop sync client for probably another box in this repo
- obs-studio # Useful for replay functionality every now and again
- piper # Peripheral LED management, only available on Focal or higher
- plymouth-theme-spinner # Gives us the sweet UEFI boot logo splash
- pulseeffects # ECHO... Echo... echo... echo...
- q4wine # Quick n dirty wine wrapper
- qbittorrent # Bittorrent client of choice
- redshift # At the moment I work thirds, so this is kinda counterintuitive, but whatever
- retroarch # Emulators are legitimate competition
- slack-desktop # Gotta get slack, slack to the past
- spotify-client # Moosucc
- steam-installer # Steam is an important part of one's life
- syncthing-gtk # Also pulls in syncthing and is very neato burrito
- telegram-desktop # Gotta talk to that one guy
- torbrowser-launcher # Useful utility
- virt-manager # Important to manage VMs
- vulkan-tools # Pulls in Vulkan support for things like DXVK
- vulkan-utils
- winetricks # Protontricks wraps this, I think
- xdotool # Used in one or two macro scripts
- xserver-xephyr # Neat but mostly useless utility that I want to get Firestarter happy with
- zim # Desktop wiki
# Other architectures, misc
- "libgl1-mesa-dri:i386"
- "mesa-vulkan-drivers:i386"
desktop_apt_packages_extra: []
desktop_apt_debs:
- "https://dl.discordapp.net/apps/linux/0.0.12/discord-0.0.12.deb" # Discord
- "https://github.com/MultiMC/MultiMC5/releases/download/0.6.8/multimc_1.4-1.deb" # MultiMC
- "https://zoom.us/client/latest/zoom_amd64.deb" # Zoom, proprietary shitware
desktop_apt_debs_extra: []

View File

@ -0,0 +1,15 @@
#!/usr/bin/env ansible-playbook
# vim:ft=ansible:
---
- name: configure X misc
template: src={{ item }} dest=/etc/X11/xorg.conf.d/{{ item }}
loop:
# Disables mouse acceleration on all mouse peripherals
- 90-mouse-acceleration.conf
# Enables things like triple-tapping, etc. on touchpads
- 90-touchpad.conf
- name: configure plymouth
alternatives: name=default.plymouth path=/usr/share/plymouth/themes/bgrt/bgrt.plymouth
notify: regen initramfs
- name: configure packages
include_tasks: packages.yml

View File

@ -0,0 +1,48 @@
#!/usr/bin/env ansible-playbook
# vim:ft=ansible:
---
- name: configure packages for apt
block:
# Manage archs
- name: enable archs
lineinfile: dest=/var/lib/dpkg/arch line={{ item }} create=yes
loop: "{{ desktop_apt_archs }}"
# Manage keys
- name: enroll keys from keyserver
apt_key: keyserver=keyserver.ubuntu.com id={{ item }}
loop: "{{ desktop_apt_keys_keyserver + desktop_apt_keys_keyserver_extra }}"
- name: enroll keys by url
apt_key: url={{ item }}
loop: "{{ desktop_apt_keys_url + desktop_apt_keys_url_extra }}"
# Manage repos
- name: configure repos
apt_repository: repo={{ item }}
loop: "{{ desktop_apt_repos + desktop_apt_repos_extra }}"
# Manage packages
- name: configure installed packages
apt: name="{{ desktop_apt_packages + desktop_apt_packages_extra }}"
- name: configure out-of-repo packages
apt: deb="{{ item }}"
loop: "{{ desktop_apt_debs + desktop_apt_debs_extra }}"
# Ignoring errors here is important because this task fails on package backdates
ignore_errors: yes
# System76-specific config
# Kinda out of the spirit of the role but whatever
- name: configure system76 machines
block:
- name: configure system76 repo
apt_repository: repo="ppa:system76-dev/stable"
- name: configure system76-specific packages
apt:
name:
- firmware-manager
- kamoso
- system76-acpi-dkms
- system76-dkms
- system76-firmware
- system76-io-dkms
- system76-power
when: ansible_system_vendor == "System76"
when: ansible_pkg_mgr == "apt"
- name: configure pip3 packages
pip: executable=/usr/bin/pip3 state=latest name="{{ desktop_pip3_packages + desktop_pip3_packages_extra }}"

View File

@ -0,0 +1,9 @@
# This file managed via Ansible
# vim:ft=xf86conf
Section "InputClass"
Identifier "mouse"
MatchIsPointer "yes"
# Options
Option "AccelProfile" "flat"
Option "AccelSpeed" "-1"
EndSection

View File

@ -0,0 +1,12 @@
# This file managed via Ansible
# vim:ft=xf86conf
Section "InputClass"
Identifier "touchpad"
MatchIsTouchpad "yes"
Driver "libinput"
# Options
Option "DisableWhileTyping" "yes"
Option "Tapping" "yes"
Option "TappingButtonMap" "lrm" # 1/2/3-finger taps
Option "TappingDrag" "yes"
EndSection

View File

@ -13,6 +13,9 @@
# Home desktops # Home desktops
- hosts: desktop - hosts: desktop
roles: roles:
- role: desktop
become: yes
tags: [ desktop ]
- role: grub - role: grub
become: yes become: yes
tags: [ desktop, grub ] tags: [ desktop, grub ]