Finish porting desktop stuff over
Desktop and laptop will now both be running THIS branch of the repo
This commit is contained in:
parent
99adf1356f
commit
cd063c93bd
@ -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?)
|
||||
|
||||
* My inane desktop setups
|
||||
|
||||
* Which are part of the way there, mostly just need some off-the-wall stuff
|
||||
|
||||
* Backups
|
||||
|
||||
* Duplicity?
|
||||
|
@ -3,3 +3,6 @@
|
||||
- name: restart cron
|
||||
service: name=cron state=restarted
|
||||
become: yes
|
||||
- name: regen initramfs
|
||||
command: /usr/sbin/update-initramfs -c -k all
|
||||
become: yes
|
||||
|
155
roles/desktop/defaults/main.yml
Normal file
155
roles/desktop/defaults/main.yml
Normal 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: []
|
15
roles/desktop/tasks/main.yml
Normal file
15
roles/desktop/tasks/main.yml
Normal 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
|
48
roles/desktop/tasks/packages.yml
Normal file
48
roles/desktop/tasks/packages.yml
Normal 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 }}"
|
9
roles/desktop/templates/90-mouse-acceleration.conf
Normal file
9
roles/desktop/templates/90-mouse-acceleration.conf
Normal 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
|
12
roles/desktop/templates/90-touchpad.conf
Normal file
12
roles/desktop/templates/90-touchpad.conf
Normal 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
|
Loading…
Reference in New Issue
Block a user