#!/usr/bin/ansible-playbook # vim:ft=ansible: --- - name: Configure desktop system block: - name: Create config directories file: path: "{{ item }}" state: directory recurse: yes loop: - "/etc/X11/xorg.conf.d" - name: Nuke some configs file: path: "{{ item }}" state: absent loop: # Works around a bug where this causes failed logins - "/etc/X11/Xsession.d/70im-config_launch" - name: Copy system configs template: src: "{{ item.src }}" dest: "{{ item.dest }}" mode: "{{ item.mode }}" loop: - { src: "hosts", dest: "/etc/hosts", mode: "0644" } - { src: "nomouseaccel.conf", dest: "/etc/X11/xorg.conf.d/90-mouse-acceleration.conf", mode: "0644" } - { src: "i3.desktop", dest: "/usr/share/xsessions/i3-custom.desktop", mode: "0644" } - { src: "startx.desktop", dest: "/usr/share/xsessions/startx-custom.desktop", mode: "0644" } - name: Copy udev rules template: src: "{{ item.src }}" dest: "{{ item.dest }}" mode: "{{ item.mode }}" loop: - { src: "g810-led.rules", dest: "/etc/udev/rules.d/50-g810-led.rules", mode: "0644" } - { src: "switch-rcm.rules", dest: "/etc/udev/rules.d/50-switch-rcm.rules", mode: "0644" } notify: reload udev - name: Enable i386 architecture command: /usr/bin/dpkg --add-architecture i386 - name: Add repo keys apt_key: keyserver: 'keyserver.ubuntu.com' id: "{{ item }}" loop: - "3FA7E0328081BFF6A14DA29AA6A19B38D3D831EF" # Monodevelop - name: Add repos apt_repository: repo: "{{ item }}" loop: - "deb https://download.mono-project.com/repo/ubuntu vs-bionic main" # Monodevelop; see above for key - "ppa:drewwalton19216801/dolphin-master-cosmic" # Because Dolphin doesn't update their shit - "ppa:kgilmer/speed-ricer" # Rice rice rice - "ppa:lutris-team/lutris" - name: Update and upgrade apt packages apt: upgrade: "yes" update_cache: yes # One day cache_valid_time: 86400 - name: Remove packages apt: name: - mpd state: absent - name: Install packages apt: name: # Terminal packages - adb - build-essential - earlyoom - fastboot - ffmpeg - git - imagemagick - lua-check # I am good ComputerCraft guy - neofetch - network-manager-openconnect - network-manager-openvpn - npm - openjdk-8-jre # For Minecraft - pwgen - python3-appdirs - python3-eyed3 - python3-pip - python3-pyqt5 - python3-usb # fuselee-gelee - python3-venv - qt5-default # For Multimc, should be installed on Kubuntu - tree - units - vim - wamerican # Dictionaries because I have like two scripts that use them - wamerican-large - wamerican-huge - wamerican-insane - wine - wine-binfmt - xz-utils # For Ansible deb support # Fonts - fonts-inconsolata - fonts-noto - fonts-roboto # DE - compton - dunst - hsetroot - i3-gaps-wm - i3lock - kubuntu-desktop - papirus-icon-theme - pavucontrol-qt - polybar - qt5ct - xbacklight # Desktop applications - cantata - chromium-browser - chromium-chromedriver # Because Selenium - clonezilla - dolphin-emu-master - dolphin-plugins - filelight - filezilla - firefox - g810-led - gimp - inkscape - joy2key - joystick - kcolorchooser - kdenlive - keepassxc - krita - libnotify-bin - lutris - mesa-vulkan-drivers - monodevelop - mpc - mopidy - mpv - mupen64plus-qt - nextcloud-desktop - obs-studio - pidgin - pidgin-libnotify - pidgin-plugin-pack - pulseeffects - qbittorrent - redshift - rofi - scrot - steam-installer - syncthing-gtk - telegram-desktop - torbrowser-launcher - virt-manager - vulkan-tools - vulkan-utils - winetricks - xdotool - zim - "libgl1-mesa-dri:i386" - "mesa-vulkan-drivers:i386" # Games - minetest - name: Install Focal-exclusive desktop applications apt: name: - piper when: ansible_distribution_release == "focal" - name: Install packages without recommends apt: install_recommends: no name: - php # Dev stuff - php-xml - name: Install out-of-repo packages apt: deb: "{{ item }}" loop: - "https://github.com/MultiMC/MultiMC5/releases/download/0.6.8/multimc_1.4-1.deb" - "https://d11yldzmag5yn.cloudfront.net/prod/5.0.413237.0524/zoom_amd64.deb" - name: Install desktop applications through pip3 pip: executable: "/usr/bin/pip3" name: - protontricks - youtube-dl - name: Install desktop applications through Snap snap: name: - discord - pixelorama - riot-web - scrcpy # Remote Android viewing - spotify # Forgive me father - name: Install Snap applications classically snap: classic: yes name: "{{ item }}" loop: - slack - name: Remove desktop applications through APT apt: state: absent name: - ktorrent - name: Stop services systemd: name: "{{ item }}" enabled: no state: stopped loop: - mopidy.service - motd-news.service - motd-news.timer - name: Start services systemd: name: "{{ item }}" enabled: yes state: started loop: - syncthing@salt.service become: yes