Initialize Ansible playbook for Fedora 35 post-installation

This commit is contained in:
Gabriel Arazas 2022-03-11 20:19:13 +08:00
commit 234de5f873
3 changed files with 436 additions and 0 deletions

42
files/dconf/desktop.conf Normal file
View File

@ -0,0 +1,42 @@
[org/gnome/desktop/interface]
enable-animations=true
enable-hot-corners=false
gtk-im-module='gtk-im-context-simple'
show-battery-percentage=true
[org/gnome/desktop/notifications]
show-banners=true
[org/gnome/desktop/privacy]
disable-microphone=false
[org/gnome/shell]
disable-user-extensions=false
enabled-extensions=['arcmenu@arcmenu.com', 'just-perfection-desktop@just-perfection', 'gsconnect@andyholmes.github.io', 'flypie@schneegans.github.com', 'kimpanel@kde.org', 'workspaces-bar@fthx', 'burn-my-windows@schneegans.github.com', 'sermon@rovellipaolo-gmail.com', 'runcat@kolesnikov.se', 'mprisindicatorbutton@JasonLG1979.github.io', 'appindicatorsupport@rgcjonas.gmail.com', 'screenshot-window-sizer@gnome-shell-extensions.gcampax.github.com', 'windowsNavigator@gnome-shell-extensions.gcampax.github.com']
favorite-apps=['brave-browser.desktop', 'emacs.desktop', 'zotero-5.0.96.3.desktop', 'org.kde.krita.desktop', 'blender.desktop', 'com.usebottles.bottles.desktop']
[org/gnome/mutter]
attach-modal-dialogs=true
center-new-windows=true
dynamic-workspaces=true
edge-tiling=true
focus-change-on-pointer-rest=true
overlay-key='Super_L'
workspaces-only-on-primary=true
# My preferred world clocks for easier tracking of global events.
[org/gnome/clocks]
world-clocks=[{'location': <(uint32 2, <('New York', 'KNYC', true, [(0.71180344078725644, -1.2909618758762367)], [(0.71059804659265924, -1.2916478949920254)])>)>}, {'location': <(uint32 2, <('Coordinated Universal Time (UTC)', '@UTC', false, @a(dd) [], @a(dd) [])>)>}, {'location': <(uint32 2, <('Cairo', 'HECA', true, [(0.52592587544986047, 0.54803338512621935)], [(0.52447144022429604, 0.54541539124822791)])>)>}]
[org/gnome/shell/world-clocks]
locations=[<(uint32 2, <('New York', 'KNYC', true, [(0.71180344078725644, -1.2909618758762367)], [(0.71059804659265924, -1.2916478949920254)])>)>, <(uint32 2, <('Coordinated Universal Time (UTC)', '@UTC', false, @a(dd) [], @a(dd) [])>)>, <(uint32 2, <('Cairo', 'HECA', true, [(0.52592587544986047, 0.54803338512621935)], [(0.52447144022429604, 0.54541539124822791)])>)>]
[org/gnome/system/location]
enabled=false
[org/gnome/desktop/wm/preferences]
workspace-names=['Web', 'Dev', 'Notes', 'Graphics', 'Audio']
# Application configs.
[re/sonny/Junction]
show-app-names=true

View File

@ -0,0 +1,67 @@
[org/gnome/desktop/wm/keybindings]
begin-resize=['<Super>r']
close=['<Alt>F4', '<Super>q']
cycle-group=@as []
cycle-group-backward=@as []
cycle-windows=@as []
cycle-windows-backward=@as []
maximize=@as []
minimize=@as []
move-to-monitor-down=@as []
move-to-monitor-left=@as []
move-to-monitor-right=@as []
move-to-monitor-up=@as []
move-to-workspace-first=['<Shift><Super>Home', '<Shift><Super>k']
move-to-workspace-right=['<Shift><Super>l', '<Shift><Super>Right', '<Shift><Super>Page_Down']
move-to-workspace-left=['<Shift><Super>h', '<Shift><Super>Left', '<Shift><Super>Page_Up']
move-to-workspace-last=['<Shift><Super>End', '<Shift><Super>j']
panel-main-menu=@as []
switch-group=['<Super>grave']
switch-group-backward=['<Shift><Super>grave']
switch-input-source=@as []
switch-input-source-backward=@as []
switch-to-workspace-up=@as []
switch-to-workspace-left=['<Primary><Super>h', '<Super>Page_Up']
switch-to-workspace-right=['<Primary><Super>l', '<Super>Page_Down']
switch-to-workspace-down=@as []
toggle-fullscreen=['<Super>f']
toggle-maximized=['<Shift><Super>f']
toggle-overview=['<Super>s']
toggle-tiled-left=@as []
toggle-tiled-right=@as []
[org/gnome/shell/extensions/pop-shell]
pop-workspace-down=['<Shift><Super>l', '<Shift><Super>Right', '<Shift><Super>Page_Down']
pop-workspace-up=['<Shift><Super>h', '<Shift><Super>Left', '<Shift><Super>Page_Up']
pop-monitor-up=['<Alt><Super>k', '<Alt><Super>Up']
pop-monitor-left=['<Alt><Super>h', '<Alt><Super>Left']
pop-monitor-right=['<Alt><Super>l', '<Alt><Super>Right']
pop-monitor-down=['<Alt><Super>j', '<Alt><Super>Down']
[org/gnome/shell/keybindings]
toggle-message-tray=['<Super>v']
# Bringing my old habits back when I use standalone window managers.
[org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/custom0]
binding='<Super>Return'
command='kitty'
name='Terminal'
# The equivalent to the newspaper in the morning.
[org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/custom1]
binding='<Shift><Super>r'
command='kitty -e newsboat'
name='News aggregator'
# We don't want to restore them shortcuts.
[org/gnome/mutter/wayland/keybindings]
restore-shortcuts=@as []
[org/gnome/settings-daemon/plugins/media-keys]
screensaver=['<Super>Escape']
logout=['<Shift><Super>Escape']
help=@as []
# Easy resize with the mouse.
[org/gnome/desktop/wm/preferences]
resize-with-right-button = true

327
post-install.yml Normal file
View File

@ -0,0 +1,327 @@
- hosts: localhost
tasks:
- name: Install Flatpak development tools
become: yes
dnf:
state: present
name:
- flatpak
- flatpak-builder
# Add Flatpak remotes
- name: Add Flathub remote
flatpak_remote:
state: present
name: flathub
flatpakrepo_url: https://flathub.org/repo/flathub.flatpakrepo
- name: Add Flathub beta remote
flatpak_remote:
state: present
name: flathub-beta
flatpakrepo_url: https://flathub.org/beta-repo/flathub-beta.flatpakrepo
- name: Add GNOME Nightly remote
flatpak_remote:
state: present
name: gnome-nightly
flatpakrepo_url: https://nightly.gnome.org/gnome-nightly.flatpakrepo
- name: Add KDE Flatpak remote
flatpak_remote:
state: present
name: kdeapps
flatpakrepo_url: https://distribute.kde.org/kdeapps.flatpakrepo
# Enable several copr repositories.
- name: Enable opentabletdriver from copr
become: yes
community.general.copr:
state: enabled
name: cappyishihara/opentabletdriver
- name: Enable lazygit from copr
become: yes
community.general.copr:
state: enabled
name: atim/lazygit
- name: Enable gopass from copr
become: yes
community.general.copr:
state: enabled
name: fale/gopass
- name: Install packages from enabled copr repositories
become: yes
dnf:
state: present
name:
- lazygit
- opentabletdriver
- golang-github-gopasspw-gopass
- name: Set minimal development environment
become: yes
dnf:
state: present
name:
- neovim
- python-neovim
- git
- kitty
- kitty-doc
- kitty-terminfo
- man-db
- man-pages
- name: Install additional development tools
become: yes
dnf:
state: present
name:
- tealdeer
- bat
- fzf
- exa
- ripgrep
- sqlite
- zoxide
- direnv
- name: Setup container development tools
become: yes
dnf:
state: present
name:
- podman
- toolbox
- openssl
- name: Install backup tools
become: yes
dnf:
state: present
name:
- borgbackup
- borgmatic
- name: Install (Doom) Emacs with its required dependencies
become: yes
dnf:
state: present
name:
- emacs
- libvterm
- aspell
- aspell-en
- wordnet
- zstd
- name: Install web-related tools
become: yes
dnf:
state: present
name:
- thunderbird
- chromium
- firefox
- name: Install extra dependencies
become: yes
dnf:
state: present
name:
- ImageMagick
- ImageMagick-doc
- ImageMagick-libs
- hyperfine
- libtree-sitter
- recoll
- recoll-gssp
- recoll-kio
- starship
- name: Install Fedora COPR dev't tools
become: yes
dnf:
state: present
name:
- copr-cli
- dnf-plugins-core
- name: Install Ansible
become: yes
dnf:
state: present
name:
- ansible
- ansible-doc
- ansible-collection-community-general
- python3-psutil
- name: Install fonts
become: yes
dnf:
state: present
name:
- google-noto-serif-fonts
- google-noto-sans-fonts
- google-noto-cjk-fonts
- google-noto-cjk-fonts-common
- google-noto-emoji-fonts
# Install applications from Flatpak
- name: Install Zrythm, a DAW
become: yes
flatpak:
state: present
name: org.zrythm.Zrythm
remote: flathub
- name: Install Krita
become: yes
flatpak:
state: present
name: org.kde.krita
remote: flathub
- name: Install Krita nightly
become: yes
flatpak:
state: present
name: org.kde.krita-nightly
remote: kdeapps
- name: Install Junction, an application launcher
become: yes
flatpak:
state: present
name: re.sonny.Junction
remote: flathub
- name: Install Tangram, a browser
become: yes
flatpak:
state: present
name: re.sonny.Tangram
remote: flathub
- name: Install Blender, a 3D modelling software
become: yes
flatpak:
state: present
name: org.blender.Blender
remote: flathub
- name: Install Lutris
become: yes
flatpak:
state: present
name: net.lutris.Lutris
remote: flathub-beta
- name: Install Steam
become: yes
flatpak:
state: present
name: com.valvesoftware.Steam
remote: flathub
- name: Install Emulsion, a color palette manager
become: yes
flatpak:
state: present
name: io.github.lainsce.Emulsion
remote: flathub
- name: Install Inkscape, an alternative to Adobe Illustrator
become: yes
flatpak:
state: present
name: org.inkscape.Inkscape
remote: flathub
- name: Install OBS Studio, the Swiss army knife for screencasts
become: yes
flatpak:
state: present
name: com.obsproject.Studio
remote: flathub
- name: Install Flatseal, a Flatpak app permissions manager
become: yes
flatpak:
state: present
name: com.github.tchx84.Flatseal
remote: flathub
- name: Install Helvum, a Patchbay-like app
become: yes
flatpak:
state: present
name: org.pipewire.Helvum
remote: flathub
- name: Install EasyEffects, an audio effects app
become: yes
flatpak:
state: present
name: com.github.wwmm.easyeffects
remote: flathub
- name: Install 0 A.D., a RTS game
become: yes
flatpak:
state: present
name: com.play0ad.zeroad
remote: flathub
- name: Install Remnants of the Precursors, a 4X game
become: yes
flatpak:
state: present
name: com.remnantsoftheprecursors.ROTP
remote: flathub
- name: Install Musescore, a music composition software
become: yes
flatpak:
state: present
name: org.musescore.MuseScore
remote: flathub
- name: Install Bottles, a Windows app runner
become: yes
flatpak:
state: present
name: com.usebottles.bottles
remote: flathub
- name: Install GIMP (nightly), a photo editor
become: yes
flatpak:
state: present
name: org.gimp.GIMP
remote: gnome-nightly
# Configure desktop environment.
- name: Install dconf keyfiles
become: yes
copy:
src: ./files/dconf
dest: /etc/dconf/db/a-happy-gnome.d
- name: Set 'user' dconf profile with the custom GNOME config
become: yes
ansible.builtin.shell: echo "system-db:a-happy-gnome" >> /etc/dconf/profile/user
- name: Enable night light in GNOME
dconf:
state: present
key: /org/gnome/settings-daemon/plugins/color/night-light-enabled
value: true
# TODO:
# * Configure GNOME with dconf module
# * Configure GNOME extensions