jorgecastro05.github.io

coderocking personal blog

View on GitHub

Minimal Fedora Instalation with i3wm and Ansible

This is the same tutorial for sway but using i3wm, rembember that i3wm uses X11 so this playbook handle all x11 dependencies instead wayland.

Download the fedora Anywhere ISO and burn into a CD rom or USB.

In the installation steps select minimal installation and Common NetworkManager Submodules group for network wireless support.

After installation install ansible and check the following playbook:

setup-playbook.yaml
# ansible-playbook ~/.config/setup-playbook.yaml -b --ask-become-pass
---
- name: Setup laptop config
  hosts: localhost
  tasks:
  - name: Enable Fusion repositories
    dnf:
      name:
        - 'https://download1.rpmfusion.org/free/fedora/rpmfusion-free-release-34.noarch.rpm'
      state: latest
      disable_gpg_check: true
  - name: Upgrade all packages
    dnf:
      name: "*"
      state: latest
  - name: Install UI software
    dnf:
      name: 
        - setxkbmap
        - i3
        - xorg-x11-server-Xorg
        - dbus-x11
        - notification-daemon
        - xss-lock
        - numlockx
        - picom
        - py3status
        - rofi
        - clipman
        - blueberry
        - lxpolkit
        - htop
        - ranger
        - bashmount
        - pavucontrol
        - zip
        - unzip
        - p7zip
        - p7zip-plugins
        - flatpak
        - mediawriter
        - neovim
        - liberation-fonts
        - liberation-sans-fonts
        - light
        - dunst
        - arandr
        - gnome-themes-extra
        - candy-icon-theme
        - pipewire
        - pipewire0.2-libs
        - pulseaudio-utils
        - alsa-utils
        - firefox
        - iwl7260-firmware
        - NetworkManager-wifi
        - NetworkManager-tui
        - terminus-fonts
        - rbanffy-3270-fonts
        - bash-completion
        - lxterminal
        - ffmpeg
        - flameshot
        - ncdu
        - atool
        - cronie
        - imv
        - libva-intel-driver
        - upower
        - feh
        - wget
      state: latest
  - name: Install Development software
    dnf:
      name:
        - podman
        - skopeo
        - buildah
        - toolbox
        - '@virtualization'
      state: latest
  - name: flatpak add flathub repo
    become: yes
    ansible.builtin.shell: flatpak remote-add --if-not-exists flathub https://flathub.org/repo/flathub.flatpakrepo
  - name: flatpak install software
    become: yes
    become_user: "user"
    ansible.builtin.shell: flatpak install -y --noninteractive --or-update flathub 
    with_items:
      - org.libreoffice.LibreOffice 
      - com.vscodium.codium 
      - io.mpv.Mpv
      - com.jetbrains.IntelliJ-IDEA-Community 
      - org.gimp.GIMP 
      - org.filezillaproject.Filezilla
      - com.github.tchx84.Flatseal
      - net.cozic.joplin_desktop
  - name: flatpak install superuser dependencies
    become: yes
    ansible.builtin.shell: flatpak install -y --noninteractive --or-update flathub 
    with_items:
      - org.gtk.Gtk3theme.Adwaita-dark
  - name: install ubuntu font family
    become: yes
    become_user: "user"
    ansible.builtin.unarchive:
      src: https://assets.ubuntu.com/v1/0cef8205-ubuntu-font-family-0.83.zip
      dest: ~/.fonts
      remote_src: yes
  - name: install oh my bash
    become: yes
    become_user: "user"
    ansible.builtin.shell: bash -c "$(curl -fsSL https://raw.githubusercontent.com/ohmybash/oh-my-bash/master/tools/install.sh)"
---

you can customize according your needs, this playbook manages flatpak software, container tools and several fonts and themes as well. run the playbook with the user permissions to install software

ansible-playbook ~/.config/setup-playbook.yaml -b --ask-become-pass