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?)
|
* 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?
|
||||||
|
@ -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
|
||||||
|
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