Compare commits
14 Commits
flatpak
...
0d1993ef53
| Author | SHA1 | Date | |
|---|---|---|---|
| 0d1993ef53 | |||
| 9fef9403b3 | |||
| 253cf462b3 | |||
| 54b3c4edfe | |||
| 4489c05014 | |||
| 520462a3f4 | |||
| aeba9ba7f2 | |||
| 669dffc2c5 | |||
| 399300c162 | |||
| 3a4224d200 | |||
| afa680c4d1 | |||
| cba3f6ce2a | |||
| d37b675187 | |||
| 3364d770e1 |
@@ -223,7 +223,7 @@ if ($recursive) {
|
||||
# Ensure the repository has the correct owner
|
||||
$userName = [System.Security.Principal.WindowsIdentity]::GetCurrent().Name
|
||||
$idRef = [System.Security.Principal.NTAccount]::new($userName)
|
||||
Get-Item $dest | foreach { `
|
||||
Get-Item -Force $dest | foreach { `
|
||||
$_ ; $_ | Get-ChildItem -Force -Recurse `
|
||||
} | foreach { `
|
||||
$acl = $_ | Get-Acl; $acl.SetOwner($idRef); $_ | Set-Acl -AclObject $acl `
|
||||
|
||||
@@ -5,4 +5,9 @@
|
||||
roles:
|
||||
- role: kitty
|
||||
- role: xremap
|
||||
when: ansible_os_family == "RedHat"
|
||||
when: >
|
||||
'GNOME' in ansible_env.XDG_CURRENT_DESKTOP and
|
||||
ansible_env.XDG_SESSION_TYPE == 'wayland' and (
|
||||
ansible_os_family == "RedHat" or
|
||||
ansible_os_family == "Debian"
|
||||
)
|
||||
|
||||
@@ -6,8 +6,10 @@
|
||||
- role: python
|
||||
|
||||
- role: zsh
|
||||
tags: unsafe
|
||||
- role: neovim
|
||||
- role: tmux
|
||||
tags: unsafe
|
||||
|
||||
- role: ag
|
||||
- role: bash
|
||||
|
||||
@@ -1,6 +1,9 @@
|
||||
---
|
||||
- hosts: localhost
|
||||
roles:
|
||||
- role: flatpak
|
||||
when: ansible_os_family != "Darwin"
|
||||
|
||||
- role: 1password
|
||||
- role: ferdium
|
||||
- role: fonts
|
||||
|
||||
@@ -9,6 +9,7 @@
|
||||
- role: mas
|
||||
|
||||
- role: iterm
|
||||
- role: kitty
|
||||
- role: magnet
|
||||
- role: microsoft-remote-desktop
|
||||
- role: viscosity
|
||||
|
||||
@@ -1,10 +1,10 @@
|
||||
---
|
||||
- name: add yum repository key
|
||||
- name: add dnf repository key
|
||||
become: true
|
||||
rpm_key:
|
||||
key: https://downloads.1password.com/linux/keys/1password.asc
|
||||
|
||||
- name: add yum repository
|
||||
- name: add dnf repository
|
||||
become: true
|
||||
yum_repository:
|
||||
name: 1password
|
||||
@@ -15,8 +15,8 @@
|
||||
repo_gpgcheck: true
|
||||
gpgkey: ['https://downloads.1password.com/linux/keys/1password.asc']
|
||||
|
||||
- name: install yum package
|
||||
- name: install dnf package
|
||||
become: true
|
||||
yum:
|
||||
dnf:
|
||||
name: 1password
|
||||
state: latest
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
---
|
||||
- name: install yum package
|
||||
- name: install dnf package
|
||||
become: true
|
||||
yum:
|
||||
dnf:
|
||||
name: the_silver_searcher
|
||||
state: latest
|
||||
|
||||
@@ -110,3 +110,6 @@ grey="\001\e[38;5;244m\002"
|
||||
reset="\001\e[0m\002"
|
||||
|
||||
PS1="$yellow\u$reset@$grey\h$reset "
|
||||
|
||||
# Setup environment variables
|
||||
export PATH=$HOME/.local/bin:$PATH
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
---
|
||||
- name: install yum package
|
||||
- name: install dnf package
|
||||
become: true
|
||||
yum:
|
||||
dnf:
|
||||
name: bat
|
||||
state: latest
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
---
|
||||
- name: install yum package
|
||||
- name: install dnf package
|
||||
become: true
|
||||
yum:
|
||||
dnf:
|
||||
name: curl
|
||||
state: latest
|
||||
|
||||
@@ -5,7 +5,8 @@
|
||||
name: ferdium
|
||||
state: latest
|
||||
|
||||
- when: ansible_os_family == 'Windows'
|
||||
- name: install chocolatey package
|
||||
when: ansible_os_family == 'Windows'
|
||||
win_chocolatey:
|
||||
name: ferdium
|
||||
state: latest
|
||||
@@ -13,5 +14,6 @@
|
||||
- name: install flatpak package
|
||||
when: ansible_os_family != 'Windows' and
|
||||
ansible_os_family != 'Darwin'
|
||||
become: true
|
||||
flatpak:
|
||||
name: org.ferdium.Ferdium
|
||||
|
||||
6
roles/flatpak/tasks/Debian.yaml
Normal file
6
roles/flatpak/tasks/Debian.yaml
Normal file
@@ -0,0 +1,6 @@
|
||||
---
|
||||
- name: install apt package
|
||||
become: true
|
||||
apt:
|
||||
name: flatpak
|
||||
state: latest
|
||||
6
roles/flatpak/tasks/RedHat.yaml
Normal file
6
roles/flatpak/tasks/RedHat.yaml
Normal file
@@ -0,0 +1,6 @@
|
||||
---
|
||||
- name: install dnf package
|
||||
become: true
|
||||
dnf:
|
||||
name: flatpak
|
||||
state: latest
|
||||
9
roles/flatpak/tasks/main.yaml
Normal file
9
roles/flatpak/tasks/main.yaml
Normal file
@@ -0,0 +1,9 @@
|
||||
---
|
||||
- include_tasks: '{{ansible_os_family}}.yaml'
|
||||
|
||||
- name: add flathub repository remote
|
||||
become: true
|
||||
flatpak_remote:
|
||||
name: flathub
|
||||
state: present
|
||||
flatpakrepo_url: https://dl.flathub.org/repo/flathub.flatpakrepo
|
||||
@@ -1,6 +1,6 @@
|
||||
---
|
||||
- name: install yum package
|
||||
- name: install dnf package
|
||||
become: true
|
||||
yum:
|
||||
dnf:
|
||||
name: fzf
|
||||
state: latest
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
---
|
||||
- name: add yum repository
|
||||
- name: add dnf repository
|
||||
become: true
|
||||
get_url:
|
||||
url: https://cli.github.com/packages/rpm/gh-cli.repo
|
||||
|
||||
5
roles/kitty/tasks/Darwin.yaml
Normal file
5
roles/kitty/tasks/Darwin.yaml
Normal file
@@ -0,0 +1,5 @@
|
||||
---
|
||||
- name: install homebrew package
|
||||
homebrew:
|
||||
name: kitty
|
||||
state: latest
|
||||
@@ -6,6 +6,12 @@
|
||||
state: latest
|
||||
|
||||
- set_fact:
|
||||
neovim_pip_packages: '{{neovim_pip_packages + ["pynvim"]}}'
|
||||
neovim_pip_packages: >
|
||||
{{
|
||||
neovim_pip_packages + [
|
||||
"pynvim",
|
||||
"greenlet"
|
||||
]
|
||||
}}
|
||||
|
||||
- include_tasks: Unix.yaml
|
||||
|
||||
@@ -12,6 +12,7 @@
|
||||
become: true
|
||||
apt_repository:
|
||||
repo: ppa:neovim-ppa/stable
|
||||
codename: '{{os_release.UBUNTU_CODENAME}}'
|
||||
update_cache: true
|
||||
|
||||
- name: install apt package
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
---
|
||||
- name: install yum package
|
||||
- name: install dnf package
|
||||
become: true
|
||||
yum:
|
||||
dnf:
|
||||
name: nodejs
|
||||
state: latest
|
||||
|
||||
@@ -1,75 +1,32 @@
|
||||
---
|
||||
# TODO: Prefer Flatpak over AppImage if available
|
||||
- name: install flatpak package
|
||||
become: true
|
||||
flatpak:
|
||||
name: md.obsidian.Obsidian
|
||||
|
||||
- name: stat symlink
|
||||
# Remove old appimage if it exists
|
||||
- name: stat appimage symlink
|
||||
stat:
|
||||
path: '{{ansible_env.HOME}}/.local/bin/Obsidian'
|
||||
register: symlink_file
|
||||
|
||||
- name: get latest release
|
||||
uri:
|
||||
url: https://api.github.com/repos/obsidianmd/obsidian-releases/releases/latest
|
||||
register: latest
|
||||
|
||||
- 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'
|
||||
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
|
||||
- name: remove appimage icon 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}}'
|
||||
|
||||
- name: remove squashfs-root directory
|
||||
when: needs_installed
|
||||
file:
|
||||
path: '/tmp/squashfs-root'
|
||||
state: absent
|
||||
|
||||
- name: create desktop file
|
||||
template:
|
||||
src: obsidian.desktop.j2
|
||||
- name: remove appimage desktop file
|
||||
file:
|
||||
dest: '{{ansible_env.HOME}}/.local/share/applications/obsidian-obsidian.desktop'
|
||||
notify: install desktop menu
|
||||
|
||||
state: absent
|
||||
- name: remove old appimage
|
||||
when: needs_installed and symlink_file.stat.exists
|
||||
when: "'lnk_source' in symlink_file.stat"
|
||||
file:
|
||||
path: '{{symlink_file.stat.lnk_source}}'
|
||||
state: absent
|
||||
- name: remove appimage symlink
|
||||
file:
|
||||
path: '{{ansible_env.HOME}}/.local/bin/Obsidian'
|
||||
state: absent
|
||||
|
||||
- include_tasks: Unix.yaml
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
---
|
||||
- name: install yum packages
|
||||
- name: install dnf packages
|
||||
become: true
|
||||
yum:
|
||||
dnf:
|
||||
name:
|
||||
- python3
|
||||
- python3-pip
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
---
|
||||
- name: install yum packages
|
||||
- name: install dnf packages
|
||||
become: true
|
||||
yum:
|
||||
dnf:
|
||||
name:
|
||||
- tmux
|
||||
- sysstat
|
||||
|
||||
@@ -1,7 +1,8 @@
|
||||
---
|
||||
- assert:
|
||||
that: ansible_env.XDG_CURRENT_DESKTOP == "GNOME" and
|
||||
ansible_env.XDG_SESSION_TYPE == "wayland"
|
||||
that: >
|
||||
'GNOME' in ansible_env.XDG_CURRENT_DESKTOP and
|
||||
ansible_env.XDG_SESSION_TYPE == 'wayland'
|
||||
|
||||
- set_fact:
|
||||
install_dir: '{{ansible_env.HOME}}/.local/bin'
|
||||
@@ -35,12 +36,14 @@
|
||||
set_fact:
|
||||
needs_installed:
|
||||
'{{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
|
||||
set_fact:
|
||||
asset_query: >
|
||||
[?contains(name, `xremap-linux-{{ansible_architecture}}-{{
|
||||
ansible_env.XDG_CURRENT_DESKTOP | lower}}.zip`)] | [0]
|
||||
xdg_current_desktop | lower}}.zip`)] | [0]
|
||||
- name: get release asset
|
||||
set_fact:
|
||||
asset: '{{latest.json.assets | to_json | from_json | json_query(asset_query)}}'
|
||||
@@ -81,6 +84,14 @@
|
||||
append: true
|
||||
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
|
||||
# will work too. Arch and other distros are potentially different see the docs
|
||||
# https://github.com/k0kubun/xremap
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
---
|
||||
- name: install yum packages
|
||||
- name: install dnf packages
|
||||
become: true
|
||||
yum:
|
||||
dnf:
|
||||
name:
|
||||
- zsh
|
||||
- pinentry-tty
|
||||
|
||||
Reference in New Issue
Block a user