1 Commits

Author SHA1 Message Date
652d32b175 Add flatpak role for Debian 2023-08-01 19:46:24 +01:00
30 changed files with 88 additions and 148 deletions

View File

@@ -223,7 +223,7 @@ if ($recursive) {
# Ensure the repository has the correct owner # Ensure the repository has the correct owner
$userName = [System.Security.Principal.WindowsIdentity]::GetCurrent().Name $userName = [System.Security.Principal.WindowsIdentity]::GetCurrent().Name
$idRef = [System.Security.Principal.NTAccount]::new($userName) $idRef = [System.Security.Principal.NTAccount]::new($userName)
Get-Item -Force $dest | foreach { ` Get-Item $dest | foreach { `
$_ ; $_ | Get-ChildItem -Force -Recurse ` $_ ; $_ | Get-ChildItem -Force -Recurse `
} | foreach { ` } | foreach { `
$acl = $_ | Get-Acl; $acl.SetOwner($idRef); $_ | Set-Acl -AclObject $acl ` $acl = $_ | Get-Acl; $acl.SetOwner($idRef); $_ | Set-Acl -AclObject $acl `

View File

@@ -3,12 +3,6 @@
- import_playbook: UnixGUI.yaml - import_playbook: UnixGUI.yaml
- hosts: localhost - hosts: localhost
roles: roles:
- role: cider
- role: kitty - role: kitty
- role: xremap - role: xremap
when: > when: ansible_os_family == "RedHat"
'GNOME' in ansible_env.XDG_CURRENT_DESKTOP and
ansible_env.XDG_SESSION_TYPE == 'wayland' and (
ansible_os_family == "RedHat" or
ansible_os_family == "Debian"
)

View File

@@ -6,10 +6,8 @@
- role: python - role: python
- role: zsh - role: zsh
tags: unsafe
- role: neovim - role: neovim
- role: tmux - role: tmux
tags: unsafe
- role: ag - role: ag
- role: bash - role: bash

View File

@@ -1,9 +1,6 @@
--- ---
- hosts: localhost - hosts: localhost
roles: roles:
- role: flatpak
when: ansible_os_family != "Darwin"
- role: 1password - role: 1password
- role: ferdium - role: ferdium
- role: fonts - role: fonts

View File

@@ -23,7 +23,6 @@
- role: 1password - role: 1password
- role: autohotkey - role: autohotkey
- role: cider
- role: ferdium - role: ferdium
- role: firefox - role: firefox
- role: fonts - role: fonts

View File

@@ -8,11 +8,7 @@
roles: roles:
- role: mas - role: mas
- role: hiddenbar
- role: iterm - role: iterm
- role: kitty
- role: magnet - role: magnet
- role: microsoft-remote-desktop - role: microsoft-remote-desktop
- role: viscosity - role: viscosity
- role: macos

View File

@@ -1,10 +1,10 @@
--- ---
- name: add dnf repository key - name: add yum repository key
become: true become: true
rpm_key: rpm_key:
key: https://downloads.1password.com/linux/keys/1password.asc key: https://downloads.1password.com/linux/keys/1password.asc
- name: add dnf repository - name: add yum repository
become: true become: true
yum_repository: yum_repository:
name: 1password name: 1password
@@ -15,8 +15,8 @@
repo_gpgcheck: true repo_gpgcheck: true
gpgkey: ['https://downloads.1password.com/linux/keys/1password.asc'] gpgkey: ['https://downloads.1password.com/linux/keys/1password.asc']
- name: install dnf package - name: install yum package
become: true become: true
dnf: yum:
name: 1password name: 1password
state: latest state: latest

View File

@@ -1,6 +1,6 @@
--- ---
- name: install dnf package - name: install yum package
become: true become: true
dnf: yum:
name: the_silver_searcher name: the_silver_searcher
state: latest state: latest

View File

@@ -110,13 +110,3 @@ grey="\001\e[38;5;244m\002"
reset="\001\e[0m\002" reset="\001\e[0m\002"
PS1="$yellow\u$reset@$grey\h$reset " PS1="$yellow\u$reset@$grey\h$reset "
# Setup environment variables
export PATH=$HOME/.local/bin:$PATH
if command -v nvim > /dev/null; then
export EDITOR=nvim
elif command -v vim > /dev/null; then
export EDITOR=vim
elif command -v vi > /dev/null; then
export EDITOR=vi
fi

View File

@@ -1,6 +1,6 @@
--- ---
- name: install dnf package - name: install yum package
become: true become: true
dnf: yum:
name: bat name: bat
state: latest state: latest

View File

@@ -1,13 +0,0 @@
---
- name: install chocolatey package
when: ansible_os_family == 'Windows'
win_chocolatey:
state: latest
name: Cider
- name: install flatpak package
when: ansible_os_family != 'Windows' and
ansible_os_family != 'Darwin'
become: true
flatpak:
name: sh.cider.Cider

View File

@@ -1,6 +1,6 @@
--- ---
- name: install dnf package - name: install yum package
become: true become: true
dnf: yum:
name: curl name: curl
state: latest state: latest

View File

@@ -1,14 +0,0 @@
---
- name: install chocolatey package
win_chocolatey:
name: ferdium
state: latest
- set_fact:
ferdium_exe: 'C:/Program Files/Ferdium/Ferdium.exe'
- name: create start menu shortcut
win_shortcut:
src: '{{ferdium_exe}}'
dest: '{{ansible_env.ProgramData}}/Microsoft/Windows/Start Menu/Programs/Ferdium.lnk'
icon: '{{ferdium_exe}},0'

View File

@@ -6,11 +6,12 @@
state: latest state: latest
- when: ansible_os_family == 'Windows' - when: ansible_os_family == 'Windows'
include_tasks: Windows.yaml win_chocolatey:
name: ferdium
state: latest
- name: install flatpak package - name: install flatpak package
when: ansible_os_family != 'Windows' and when: ansible_os_family != 'Windows' and
ansible_os_family != 'Darwin' ansible_os_family != 'Darwin'
become: true
flatpak: flatpak:
name: org.ferdium.Ferdium name: org.ferdium.Ferdium

View File

@@ -1,6 +0,0 @@
---
- name: install dnf package
become: true
dnf:
name: flatpak
state: latest

View File

@@ -1,6 +1,6 @@
--- ---
- name: install dnf package - name: install yum package
become: true become: true
dnf: yum:
name: fzf name: fzf
state: latest state: latest

View File

@@ -1,5 +1,5 @@
--- ---
- name: add dnf repository - name: add yum repository
become: true become: true
get_url: get_url:
url: https://cli.github.com/packages/rpm/gh-cli.repo url: https://cli.github.com/packages/rpm/gh-cli.repo

View File

@@ -1,8 +0,0 @@
---
- assert:
that: ansible_os_family == 'Darwin'
- name: install homebrew package
homebrew_cask:
name: hiddenbar
state: latest

View File

@@ -1,5 +0,0 @@
---
- name: install homebrew package
homebrew_cask:
name: kitty
state: latest

View File

@@ -1,9 +0,0 @@
---
- assert:
that: ansible_os_family == 'Darwin'
- name: disable creation of .DS_Store in directories
osx_defaults:
domain: com.apple.desktopservices
key: DSDontWriteNetworkStores
value: 'true'

View File

@@ -6,12 +6,6 @@
state: latest state: latest
- set_fact: - set_fact:
neovim_pip_packages: > neovim_pip_packages: '{{neovim_pip_packages + ["pynvim"]}}'
{{
neovim_pip_packages + [
"pynvim",
"greenlet"
]
}}
- include_tasks: Unix.yaml - include_tasks: Unix.yaml

View File

@@ -12,7 +12,6 @@
become: true become: true
apt_repository: apt_repository:
repo: ppa:neovim-ppa/stable repo: ppa:neovim-ppa/stable
codename: '{{os_release.UBUNTU_CODENAME}}'
update_cache: true update_cache: true
- name: install apt package - name: install apt package

View File

@@ -1,6 +1,6 @@
--- ---
- name: install dnf package - name: install yum package
become: true become: true
dnf: yum:
name: nodejs name: nodejs
state: latest state: latest

View File

@@ -1,32 +1,75 @@
--- ---
- name: install flatpak package # TODO: Prefer Flatpak over AppImage if available
become: true
flatpak:
name: md.obsidian.Obsidian
# Remove old appimage if it exists - name: stat symlink
- name: stat appimage symlink
stat: stat:
path: '{{ansible_env.HOME}}/.local/bin/Obsidian' path: '{{ansible_env.HOME}}/.local/bin/Obsidian'
register: symlink_file register: symlink_file
- name: get latest release
uri:
url: https://api.github.com/repos/obsidianmd/obsidian-releases/releases/latest
register: latest
- set_fact: - set_fact:
appimage: 'Obsidian-{{latest.json.name}}.AppImage'
- set_fact:
filepath: '{{ansible_env.HOME}}/.local/bin/{{appimage}}'
iconpath: 'share/icons/hicolor/512x512/apps/obsidian.png' iconpath: 'share/icons/hicolor/512x512/apps/obsidian.png'
- name: remove appimage icon file asset_query: '[?contains(name, `{{appimage}}`)] | [0]'
- set_fact:
needs_installed:
'{{not symlink_file.stat.exists or symlink_file.stat.lnk_source != filepath}}'
asset: '{{latest.json.assets | to_json | from_json | json_query(asset_query)}}'
- name: download latest version
get_url:
url: '{{asset.browser_download_url}}'
dest: '{{filepath}}'
mode: '0755'
- name: create directories
file: file:
path: '{{item}}'
state: directory
with_items:
- '{{ansible_env.HOME}}/.local/bin'
- '{{ansible_env.HOME}}/.local/share/icons/hicolor/512x512/apps'
- name: create symlink
file:
src: '{{filepath}}'
dest: '{{ansible_env.HOME}}/.local/bin/Obsidian'
state: link
- name: extract squashfs-root for app icon
when: needs_installed
command:
cmd: '{{ansible_env.HOME}}/.local/bin/Obsidian --appimage-extract'
chdir: '/tmp'
- name: copy icon file
when: needs_installed
copy:
src: '/tmp/squashfs-root/usr/{{iconpath}}'
dest: '{{ansible_env.HOME}}/.local/{{iconpath}}' dest: '{{ansible_env.HOME}}/.local/{{iconpath}}'
state: absent
- name: remove appimage desktop file - name: remove squashfs-root directory
when: needs_installed
file: file:
dest: '{{ansible_env.HOME}}/.local/share/applications/obsidian-obsidian.desktop' path: '/tmp/squashfs-root'
state: absent state: absent
- name: create desktop file
template:
src: obsidian.desktop.j2
dest: '{{ansible_env.HOME}}/.local/share/applications/obsidian-obsidian.desktop'
notify: install desktop menu
- name: remove old appimage - name: remove old appimage
when: "'lnk_source' in symlink_file.stat" when: needs_installed and symlink_file.stat.exists
file: file:
path: '{{symlink_file.stat.lnk_source}}' path: '{{symlink_file.stat.lnk_source}}'
state: absent state: absent
- name: remove appimage symlink
file:
path: '{{ansible_env.HOME}}/.local/bin/Obsidian'
state: absent
- include_tasks: Unix.yaml - include_tasks: Unix.yaml

View File

@@ -1,7 +1,7 @@
--- ---
- name: install dnf packages - name: install yum packages
become: true become: true
dnf: yum:
name: name:
- python3 - python3
- python3-pip - python3-pip

View File

@@ -1,7 +1,7 @@
--- ---
- name: install dnf packages - name: install yum packages
become: true become: true
dnf: yum:
name: name:
- tmux - tmux
- sysstat - sysstat

View File

@@ -1,8 +1,7 @@
--- ---
- assert: - assert:
that: > that: ansible_env.XDG_CURRENT_DESKTOP == "GNOME" and
'GNOME' in ansible_env.XDG_CURRENT_DESKTOP and ansible_env.XDG_SESSION_TYPE == "wayland"
ansible_env.XDG_SESSION_TYPE == 'wayland'
- set_fact: - set_fact:
install_dir: '{{ansible_env.HOME}}/.local/bin' install_dir: '{{ansible_env.HOME}}/.local/bin'
@@ -36,14 +35,12 @@
set_fact: set_fact:
needs_installed: needs_installed:
'{{not executable.stat.exists or installed_version != latest.json.name}}' '{{not executable.stat.exists or installed_version != latest.json.name}}'
xdg_current_desktop:
"{{ansible_env.XDG_CURRENT_DESKTOP | regex_replace('(.*:)?(.*)', '\\2')}}"
- name: construct asset query - name: construct asset query
set_fact: set_fact:
asset_query: > asset_query: >
[?contains(name, `xremap-linux-{{ansible_architecture}}-{{ [?contains(name, `xremap-linux-{{ansible_architecture}}-{{
xdg_current_desktop | lower}}.zip`)] | [0] ansible_env.XDG_CURRENT_DESKTOP | lower}}.zip`)] | [0]
- name: get release asset - name: get release asset
set_fact: set_fact:
asset: '{{latest.json.assets | to_json | from_json | json_query(asset_query)}}' asset: '{{latest.json.assets | to_json | from_json | json_query(asset_query)}}'
@@ -84,14 +81,6 @@
append: true append: true
groups: input groups: input
- name: load the uinput kernel module
when: ansible_os_family == 'Debian'
become: true
copy:
content: |
uinput
dest: /etc/modules-load.d/uinput.conf
# TODO: This works for on Fedora, author uses it on Ubuntu so I assume Debian # TODO: This works for on Fedora, author uses it on Ubuntu so I assume Debian
# will work too. Arch and other distros are potentially different see the docs # will work too. Arch and other distros are potentially different see the docs
# https://github.com/k0kubun/xremap # https://github.com/k0kubun/xremap

View File

@@ -1,7 +1,7 @@
--- ---
- name: install dnf packages - name: install yum packages
become: true become: true
dnf: yum:
name: name:
- zsh - zsh
- pinentry-tty - pinentry-tty

View File

@@ -61,11 +61,6 @@
dest: ~/.local/bin/cmake-uninstall dest: ~/.local/bin/cmake-uninstall
- src: ~/.config/zsh/$ - src: ~/.config/zsh/$
dest: ~/.local/bin/$ dest: ~/.local/bin/$
- src: ~/.config/zsh/url/url
dest: ~/.local/bin/url
- src: ~/.config/zsh/url/_url
dest: ~/.local/share/zsh/site-functions/_url
loop_control: loop_control:
label: '{{item.dest}}' label: '{{item.dest}}'