Compare commits
10 commits
97a654347f
...
ec32ff9a22
Author | SHA1 | Date | |
---|---|---|---|
ec32ff9a22 | |||
e2ed89ddd1 | |||
cc13808081 | |||
76d3b54c8d | |||
1bbbd8a952 | |||
972940332b | |||
573701b777 | |||
5d1b066d98 | |||
7e7ce2bd40 | |||
cfe9358624 |
35 changed files with 896 additions and 101 deletions
34
Makefile
34
Makefile
|
@ -1,4 +1,34 @@
|
||||||
%:
|
all:
|
||||||
ansible-playbook playbooks/$@.yml -i inventory/hosts.yml -K --ask-vault-pass
|
ansible-playbook playbooks/all.yml -i inventory/hosts.yml -K --ask-vault-pass
|
||||||
|
|
||||||
|
asdf:
|
||||||
|
ansible-playbook playbooks/asdf.yml -i inventory/hosts.yml -K
|
||||||
|
|
||||||
|
neovim:
|
||||||
|
ansible-playbook playbooks/neovim.yml -i inventory/hosts.yml -K
|
||||||
|
|
||||||
|
nicotine:
|
||||||
|
ansible-playbook playbooks/nicotine.yml -i inventory/hosts.yml -K --ask-vault-pass
|
||||||
|
|
||||||
|
signal:
|
||||||
|
ansible-playbook playbooks/signal.yml -i inventory/hosts.yml -K
|
||||||
|
|
||||||
|
strawberry:
|
||||||
|
ansible-playbook playbooks/strawberry.yml -i inventory/hosts.yml -K
|
||||||
|
|
||||||
|
syncthing:
|
||||||
|
ansible-playbook playbooks/syncthing.yml -i inventory/hosts.yml -K --ask-vault-pass
|
||||||
|
|
||||||
|
system:
|
||||||
|
ansible-playbook playbooks/system.yml -i inventory/hosts.yml -K
|
||||||
|
|
||||||
|
virtualbox:
|
||||||
|
ansible-playbook playbooks/virtualbox.yml -i inventory/hosts.yml -K
|
||||||
|
|
||||||
|
vscodium:
|
||||||
|
ansible-playbook playbooks/vscodium.yml -i inventory/hosts.yml -K
|
||||||
|
|
||||||
|
zsh:
|
||||||
|
ansible-playbook playbooks/zsh.yml -i inventory/hosts.yml -K
|
||||||
|
|
||||||
.PHONY: run
|
.PHONY: run
|
||||||
|
|
|
@ -9,15 +9,12 @@
|
||||||
## TODO
|
## TODO
|
||||||
|
|
||||||
- Telegram (maybe only possible to download)
|
- Telegram (maybe only possible to download)
|
||||||
- Oh my zsh?
|
|
||||||
- Cool neovim setup
|
- Cool neovim setup
|
||||||
- strawberry
|
|
||||||
- fuzzy find
|
|
||||||
- keepassxc config
|
|
||||||
- thunderbird config
|
- thunderbird config
|
||||||
- some kind of tag setup with: bootstrap, update etc
|
- some kind of tag setup with: bootstrap, update etc
|
||||||
- sync music collection
|
- i3 app shortcuts
|
||||||
- nicotine+
|
- terminal font
|
||||||
|
- default git branch master
|
||||||
|
|
||||||
Would like Ansible Vault to check in keypair for syncthing.
|
Would like Ansible Vault to check in keypair for syncthing.
|
||||||
However, then I would need a password to unlock the vault.
|
However, then I would need a password to unlock the vault.
|
||||||
|
|
8
library/rescue_role.yml
Normal file
8
library/rescue_role.yml
Normal file
|
@ -0,0 +1,8 @@
|
||||||
|
# https://stackoverflow.com/a/55524120
|
||||||
|
- name: Rescue role
|
||||||
|
block:
|
||||||
|
- include_role:
|
||||||
|
name: "{{ item_my_role }}"
|
||||||
|
rescue:
|
||||||
|
- set_fact:
|
||||||
|
failed_roles: "{{ failed_roles|default([]) + [ item_my_role ] }}"
|
|
@ -2,6 +2,8 @@
|
||||||
hosts: self
|
hosts: self
|
||||||
roles:
|
roles:
|
||||||
- system
|
- system
|
||||||
|
vars:
|
||||||
|
my_roles:
|
||||||
- zsh
|
- zsh
|
||||||
- asdf
|
- asdf
|
||||||
- neovim
|
- neovim
|
||||||
|
@ -9,3 +11,10 @@
|
||||||
- virtualbox
|
- virtualbox
|
||||||
- vscodium
|
- vscodium
|
||||||
- syncthing
|
- syncthing
|
||||||
|
- strawberry
|
||||||
|
- nicotine
|
||||||
|
tasks:
|
||||||
|
- include_tasks: "../library/rescue_role.yml"
|
||||||
|
loop: "{{ my_roles }}"
|
||||||
|
loop_control:
|
||||||
|
loop_var: item_my_role
|
||||||
|
|
4
playbooks/nicotine.yml
Normal file
4
playbooks/nicotine.yml
Normal file
|
@ -0,0 +1,4 @@
|
||||||
|
- name: Install nicotine+
|
||||||
|
hosts: self
|
||||||
|
roles:
|
||||||
|
- nicotine
|
4
playbooks/strawberry.yml
Normal file
4
playbooks/strawberry.yml
Normal file
|
@ -0,0 +1,4 @@
|
||||||
|
- name: Install strawberry
|
||||||
|
hosts: self
|
||||||
|
roles:
|
||||||
|
- strawberry
|
2
roles/asdf/meta/main.yml
Normal file
2
roles/asdf/meta/main.yml
Normal file
|
@ -0,0 +1,2 @@
|
||||||
|
dependencies:
|
||||||
|
- role: common
|
|
@ -5,9 +5,6 @@
|
||||||
- name: Install Erlang prerequisite APT packages
|
- name: Install Erlang prerequisite APT packages
|
||||||
become: true
|
become: true
|
||||||
apt:
|
apt:
|
||||||
state: present
|
|
||||||
update_cache: true
|
|
||||||
cache_valid_time: 86400 # One day
|
|
||||||
pkg:
|
pkg:
|
||||||
- build-essential
|
- build-essential
|
||||||
- autoconf
|
- autoconf
|
||||||
|
@ -33,9 +30,6 @@
|
||||||
- name: Install Elixir prerequisite APT packages
|
- name: Install Elixir prerequisite APT packages
|
||||||
become: true
|
become: true
|
||||||
apt:
|
apt:
|
||||||
state: present
|
|
||||||
update_cache: true
|
|
||||||
cache_valid_time: 86400 # One day
|
|
||||||
name: unzip
|
name: unzip
|
||||||
- name: Install asdf Elixir plugin
|
- name: Install asdf Elixir plugin
|
||||||
shell:
|
shell:
|
||||||
|
|
8
roles/common/tasks/main.yml
Normal file
8
roles/common/tasks/main.yml
Normal file
|
@ -0,0 +1,8 @@
|
||||||
|
- name: APT upgrade
|
||||||
|
become: true
|
||||||
|
apt:
|
||||||
|
autoremove: true
|
||||||
|
upgrade: yes
|
||||||
|
state: latest
|
||||||
|
update_cache: yes
|
||||||
|
cache_valid_time: 86400 # One day
|
2
roles/neovim/meta/main.yml
Normal file
2
roles/neovim/meta/main.yml
Normal file
|
@ -0,0 +1,2 @@
|
||||||
|
dependencies:
|
||||||
|
- role: common
|
|
@ -8,9 +8,13 @@
|
||||||
become: true
|
become: true
|
||||||
apt_repository:
|
apt_repository:
|
||||||
repo: "deb [signed-by=/etc/apt/keyrings/neovim.gpg] https://ppa.launchpadcontent.net/neovim-ppa/stable/ubuntu {{ ansible_distribution_release }} main"
|
repo: "deb [signed-by=/etc/apt/keyrings/neovim.gpg] https://ppa.launchpadcontent.net/neovim-ppa/stable/ubuntu {{ ansible_distribution_release }} main"
|
||||||
state: present
|
register: apt_repository
|
||||||
|
- name: Update APT cache
|
||||||
|
become: true
|
||||||
|
apt:
|
||||||
|
update_cache: true
|
||||||
|
when: apt_repository.changed
|
||||||
- name: Install Neovim
|
- name: Install Neovim
|
||||||
become: true
|
become: true
|
||||||
apt:
|
apt:
|
||||||
name: neovim
|
name: neovim
|
||||||
state: present
|
|
||||||
|
|
2
roles/nicotine/meta/main.yml
Normal file
2
roles/nicotine/meta/main.yml
Normal file
|
@ -0,0 +1,2 @@
|
||||||
|
dependencies:
|
||||||
|
- role: common
|
29
roles/nicotine/tasks/main.yml
Normal file
29
roles/nicotine/tasks/main.yml
Normal file
|
@ -0,0 +1,29 @@
|
||||||
|
- name: Download PPA signing key
|
||||||
|
become: true
|
||||||
|
apt_key:
|
||||||
|
keyserver: keyserver.ubuntu.com
|
||||||
|
id: 6CEB6050A30E5769
|
||||||
|
keyring: /etc/apt/keyrings/nicotine.gpg
|
||||||
|
- name: Install PPA repository
|
||||||
|
become: true
|
||||||
|
apt_repository:
|
||||||
|
repo: "deb [signed-by=/etc/apt/keyrings/nicotine.gpg] https://ppa.launchpadcontent.net/nicotine-team/stable/ubuntu {{ ansible_distribution_release }} main"
|
||||||
|
register: apt_repository
|
||||||
|
- name: Update APT cache
|
||||||
|
become: true
|
||||||
|
apt:
|
||||||
|
update_cache: true
|
||||||
|
when: apt_repository.changed
|
||||||
|
- name: Install nicotine
|
||||||
|
become: true
|
||||||
|
apt:
|
||||||
|
name: nicotine
|
||||||
|
- name: Create configuration directory
|
||||||
|
file:
|
||||||
|
path: ~/.config/nicotine
|
||||||
|
recurse: true
|
||||||
|
state: directory
|
||||||
|
- name: Copy configuration file
|
||||||
|
template:
|
||||||
|
src: "{{ role_path }}/templates/config.j2"
|
||||||
|
dest: ~/.config/nicotine/config
|
246
roles/nicotine/templates/config.j2
Normal file
246
roles/nicotine/templates/config.j2
Normal file
|
@ -0,0 +1,246 @@
|
||||||
|
[server]
|
||||||
|
server = ('server.slsknet.org', 2242)
|
||||||
|
login = {{ nicotine.login }}
|
||||||
|
passw = {{ nicotine.passw }}
|
||||||
|
interface =
|
||||||
|
ctcpmsgs = False
|
||||||
|
autosearch = []
|
||||||
|
autoreply =
|
||||||
|
portrange = (2234, 2239)
|
||||||
|
upnp = True
|
||||||
|
upnp_interval = 4
|
||||||
|
auto_connect_startup = True
|
||||||
|
userlist = []
|
||||||
|
banlist = []
|
||||||
|
ignorelist = []
|
||||||
|
ipignorelist = {}
|
||||||
|
ipblocklist = {}
|
||||||
|
autojoin = ['nicotine']
|
||||||
|
autoaway = 15
|
||||||
|
away = False
|
||||||
|
private_chatrooms = False
|
||||||
|
command_aliases = {}
|
||||||
|
|
||||||
|
[transfers]
|
||||||
|
incompletedir = /home/{{ ansible_user_id }}/.local/share/nicotine/incomplete
|
||||||
|
downloaddir = /home/{{ ansible_user_id }}/Music
|
||||||
|
uploaddir = /home/{{ ansible_user_id }}/.local/share/nicotine/received
|
||||||
|
usernamesubfolders = False
|
||||||
|
shared = [('Music', '/home/{{ ansible_user_id }}/Music')]
|
||||||
|
buddyshared = []
|
||||||
|
uploadbandwidth = 50
|
||||||
|
uselimit = False
|
||||||
|
usealtlimits = False
|
||||||
|
uploadlimit = 1000
|
||||||
|
uploadlimitalt = 100
|
||||||
|
downloadlimit = 0
|
||||||
|
downloadlimitalt = 100
|
||||||
|
preferfriends = False
|
||||||
|
useupslots = False
|
||||||
|
uploadslots = 2
|
||||||
|
afterfinish =
|
||||||
|
afterfolder =
|
||||||
|
lock = True
|
||||||
|
reverseorder = False
|
||||||
|
fifoqueue = False
|
||||||
|
usecustomban = False
|
||||||
|
limitby = True
|
||||||
|
customban = Banned, don't bother retrying
|
||||||
|
usecustomgeoblock = False
|
||||||
|
customgeoblock = Sorry, your country is blocked
|
||||||
|
queuelimit = 10000
|
||||||
|
filelimit = 100
|
||||||
|
buddysharestrustedonly = False
|
||||||
|
friendsnolimits = False
|
||||||
|
groupdownloads = folder_grouping
|
||||||
|
groupuploads = folder_grouping
|
||||||
|
geoblock = False
|
||||||
|
geoblockcc = ['']
|
||||||
|
remotedownloads = True
|
||||||
|
uploadallowed = 2
|
||||||
|
autoclear_downloads = False
|
||||||
|
autoclear_uploads = False
|
||||||
|
uploadsinsubdirs = True
|
||||||
|
rescanonstartup = True
|
||||||
|
enablefilters = False
|
||||||
|
downloadregexp = (\\(.*\.url|albumart(_{........-....-....-....-............}_)?(_?(large|small))?\.jpg|desktop\.ini|folder\.jpg|thumbs\.db)$)
|
||||||
|
downloadfilters = [['desktop.ini', 1], ['folder.jpg', 1], ['*.url', 1], ['thumbs.db', 1], ['albumart(_{........-....-....-....-............}_)?(_?(large|small))?\\.jpg', 0]]
|
||||||
|
download_doubleclick = 2
|
||||||
|
upload_doubleclick = 2
|
||||||
|
downloadsexpanded = True
|
||||||
|
uploadsexpanded = True
|
||||||
|
|
||||||
|
[userinfo]
|
||||||
|
descr = ''
|
||||||
|
pic =
|
||||||
|
|
||||||
|
[userbrowse]
|
||||||
|
expand_folders = True
|
||||||
|
|
||||||
|
[words]
|
||||||
|
censored = []
|
||||||
|
autoreplaced = {'teh ': 'the ', 'taht ': 'that ', 'tihng': 'thing', 'youre': "you're", 'jsut': 'just', 'thier': 'their', 'tihs': 'this'}
|
||||||
|
censorfill = *
|
||||||
|
censorwords = False
|
||||||
|
replacewords = False
|
||||||
|
tab = True
|
||||||
|
cycle = False
|
||||||
|
dropdown = False
|
||||||
|
characters = 3
|
||||||
|
roomnames = False
|
||||||
|
buddies = True
|
||||||
|
roomusers = True
|
||||||
|
commands = True
|
||||||
|
aliases = True
|
||||||
|
onematch = False
|
||||||
|
|
||||||
|
[logging]
|
||||||
|
debug = False
|
||||||
|
debugmodes = []
|
||||||
|
debuglogsdir = /home/{{ ansible_user_id }}/.local/share/nicotine/logs/debug
|
||||||
|
logcollapsed = True
|
||||||
|
transferslogsdir = /home/{{ ansible_user_id }}/.local/share/nicotine/logs/transfers
|
||||||
|
rooms_timestamp = %H:%M:%S
|
||||||
|
private_timestamp = %Y-%m-%d %H:%M:%S
|
||||||
|
log_timestamp = %Y-%m-%d %H:%M:%S
|
||||||
|
privatechat = True
|
||||||
|
chatrooms = True
|
||||||
|
transfers = False
|
||||||
|
debug_file_output = False
|
||||||
|
roomlogsdir = /home/{{ ansible_user_id }}/.local/share/nicotine/logs/rooms
|
||||||
|
privatelogsdir = /home/{{ ansible_user_id }}/.local/share/nicotine/logs/private
|
||||||
|
readroomlogs = True
|
||||||
|
readroomlines = 15
|
||||||
|
readprivatelines = 15
|
||||||
|
rooms = ['nicotine']
|
||||||
|
|
||||||
|
[privatechat]
|
||||||
|
store = True
|
||||||
|
users = []
|
||||||
|
|
||||||
|
[columns]
|
||||||
|
file_search = {'id': {'visible': False, 'width': 0}, 'user': {'visible': True, 'width': 200}, 'country': {'visible': True, 'width': 25}, 'speed': {'visible': True, 'width': 120}, 'in_queue': {'visible': True, 'width': 110}, 'folder': {'visible': True, 'width': 400}, 'filename': {'visible': True, 'width': 400}, 'size': {'visible': True, 'width': 100}, 'bitrate': {'visible': True, 'width': 100}, 'length': {'visible': True, 'width': 465}}
|
||||||
|
download = {'user': {'visible': True, 'width': 200}, 'path': {'visible': True, 'width': 400}, 'filename': {'visible': True, 'width': 400}, 'status': {'visible': True, 'width': 140}, 'queue_position': {'visible': True, 'width': 90}, 'percent': {'visible': True, 'width': 90}, 'size': {'visible': True, 'width': 180}, 'speed': {'visible': True, 'width': 100}, 'time_elapsed': {'visible': True, 'width': 140}, 'time_left': {'visible': True, 'width': 180}}
|
||||||
|
upload = {}
|
||||||
|
user_browse = {'filename': {'visible': True, 'width': 600}, 'size': {'visible': True, 'width': 100}, 'bitrate': {'visible': True, 'width': 100}, 'length': {'visible': True, 'width': 219}}
|
||||||
|
buddy_list = {}
|
||||||
|
chat_room = {'nicotine': {'status': {'visible': True, 'width': 25}, 'country': {'visible': True, 'width': 25}, 'user': {'visible': True, 'width': 155}, 'speed': {'visible': True, 'width': 100}, 'files': {'visible': True, 'width': 94}}}
|
||||||
|
|
||||||
|
[searches]
|
||||||
|
expand_searches = True
|
||||||
|
group_searches = folder_grouping
|
||||||
|
maxresults = 150
|
||||||
|
enable_history = True
|
||||||
|
history = []
|
||||||
|
enablefilters = False
|
||||||
|
filters_visible = False
|
||||||
|
defilter = ['', '', '', '', 0, '']
|
||||||
|
filtercc = []
|
||||||
|
filterin = []
|
||||||
|
filterout = []
|
||||||
|
filtersize = []
|
||||||
|
filterbr = []
|
||||||
|
filtertype = []
|
||||||
|
search_results = True
|
||||||
|
max_displayed_results = 1500
|
||||||
|
min_search_chars = 3
|
||||||
|
remove_special_chars = True
|
||||||
|
private_search_results = True
|
||||||
|
|
||||||
|
[ui]
|
||||||
|
dark_mode = False
|
||||||
|
header_bar = True
|
||||||
|
icontheme =
|
||||||
|
chatme = #908e8b
|
||||||
|
chatremote =
|
||||||
|
chatlocal =
|
||||||
|
chathilite = #5288ce
|
||||||
|
urlcolor = #5288ce
|
||||||
|
useronline = #16bb5c
|
||||||
|
useraway = #c9ae13
|
||||||
|
useroffline = #e04f5e
|
||||||
|
usernamehotspots = True
|
||||||
|
usernamestyle = bold
|
||||||
|
textbg =
|
||||||
|
search =
|
||||||
|
searchq = GREY
|
||||||
|
inputcolor =
|
||||||
|
spellcheck = True
|
||||||
|
exitdialog = 1
|
||||||
|
tab_default =
|
||||||
|
tab_hilite = #497ec2
|
||||||
|
tab_changed = #497ec2
|
||||||
|
tab_select_previous = True
|
||||||
|
tabmain = Top
|
||||||
|
tabrooms = Top
|
||||||
|
tabprivate = Top
|
||||||
|
tabinfo = Top
|
||||||
|
tabbrowse = Top
|
||||||
|
tabsearch = Top
|
||||||
|
tab_status_icons = True
|
||||||
|
globalfont =
|
||||||
|
chatfont =
|
||||||
|
tabclosers = True
|
||||||
|
searchfont =
|
||||||
|
listfont =
|
||||||
|
browserfont =
|
||||||
|
transfersfont =
|
||||||
|
last_tab_id = downloads
|
||||||
|
modes_visible = {'search': True, 'downloads': True, 'uploads': True, 'userbrowse': True, 'userinfo': True, 'private': True, 'chatrooms': True, 'interests': True, 'userlist': True}
|
||||||
|
modes_order = ['search', 'downloads', 'uploads', 'userbrowse', 'userinfo', 'private', 'userlist', 'chatrooms', 'interests']
|
||||||
|
buddylistinchatrooms = tab
|
||||||
|
trayicon = True
|
||||||
|
startup_hidden = False
|
||||||
|
filemanager =
|
||||||
|
speechenabled = False
|
||||||
|
speechprivate = User %(user)s told you: %(message)s
|
||||||
|
speechrooms = In room %(room)s, user %(user)s said: %(message)s
|
||||||
|
speechcommand = flite -t $
|
||||||
|
width = 800
|
||||||
|
height = 600
|
||||||
|
xposition = -1
|
||||||
|
yposition = -1
|
||||||
|
maximized = True
|
||||||
|
urgencyhint = True
|
||||||
|
file_path_tooltips = True
|
||||||
|
reverse_file_paths = True
|
||||||
|
|
||||||
|
[private_rooms]
|
||||||
|
rooms = {}
|
||||||
|
|
||||||
|
[urls]
|
||||||
|
protocols = {}
|
||||||
|
|
||||||
|
[interests]
|
||||||
|
likes = []
|
||||||
|
dislikes = []
|
||||||
|
|
||||||
|
[players]
|
||||||
|
default =
|
||||||
|
npothercommand =
|
||||||
|
npplayer = mpris
|
||||||
|
npformatlist = []
|
||||||
|
npformat =
|
||||||
|
|
||||||
|
[notifications]
|
||||||
|
notification_window_title = True
|
||||||
|
notification_tab_colors = False
|
||||||
|
notification_popup_sound = False
|
||||||
|
notification_popup_file = True
|
||||||
|
notification_popup_folder = True
|
||||||
|
notification_popup_private_message = True
|
||||||
|
notification_popup_chatroom = False
|
||||||
|
notification_popup_chatroom_mention = True
|
||||||
|
|
||||||
|
[plugins]
|
||||||
|
enable = True
|
||||||
|
enabled = []
|
||||||
|
|
||||||
|
[statistics]
|
||||||
|
started_downloads = 160
|
||||||
|
completed_downloads = 160
|
||||||
|
downloaded_size = 5712912242
|
||||||
|
started_uploads = 0
|
||||||
|
completed_uploads = 0
|
||||||
|
uploaded_size = 0
|
||||||
|
|
9
roles/nicotine/vars/main.yml
Normal file
9
roles/nicotine/vars/main.yml
Normal file
|
@ -0,0 +1,9 @@
|
||||||
|
nicotine:
|
||||||
|
login: dellmonitor
|
||||||
|
passw: !vault |
|
||||||
|
$ANSIBLE_VAULT;1.1;AES256
|
||||||
|
37393034356130363563333637326334656263316234373738643563653632353438333230313131
|
||||||
|
3165373937613366356336326165656535336433633365390a383163306162303366303466363663
|
||||||
|
37363739343930383161333031373965623634386235363632363961643865383933616363373061
|
||||||
|
3061636563356539620a303161363536616333343463343761366462363730376638656362386335
|
||||||
|
30623232616431316563663565376133623430316330346162623737636430383937
|
2
roles/signal/meta/main.yml
Normal file
2
roles/signal/meta/main.yml
Normal file
|
@ -0,0 +1,2 @@
|
||||||
|
dependencies:
|
||||||
|
- role: common
|
|
@ -7,11 +7,13 @@
|
||||||
become: true
|
become: true
|
||||||
apt_repository:
|
apt_repository:
|
||||||
repo: "deb [arch=amd64 signed-by=/etc/apt/trusted.gpg.d/signal.asc] https://updates.signal.org/desktop/apt xenial main"
|
repo: "deb [arch=amd64 signed-by=/etc/apt/trusted.gpg.d/signal.asc] https://updates.signal.org/desktop/apt xenial main"
|
||||||
state: present
|
register: apt_repository
|
||||||
|
- name: Update APT cache
|
||||||
|
become: true
|
||||||
|
apt:
|
||||||
|
update_cache: true
|
||||||
|
when: apt_repository.changed
|
||||||
- name: Install Signal
|
- name: Install Signal
|
||||||
become: true
|
become: true
|
||||||
apt:
|
apt:
|
||||||
state: latest
|
|
||||||
update_cache: yes
|
|
||||||
cache_valid_time: 86400 # One day
|
|
||||||
name: signal-desktop
|
name: signal-desktop
|
||||||
|
|
2
roles/strawberry/meta/main.yml
Normal file
2
roles/strawberry/meta/main.yml
Normal file
|
@ -0,0 +1,2 @@
|
||||||
|
dependencies:
|
||||||
|
- role: common
|
29
roles/strawberry/tasks/main.yml
Normal file
29
roles/strawberry/tasks/main.yml
Normal file
|
@ -0,0 +1,29 @@
|
||||||
|
- name: Download PPA signing key
|
||||||
|
become: true
|
||||||
|
apt_key:
|
||||||
|
keyserver: keyserver.ubuntu.com
|
||||||
|
id: BE5ED0F9261CAAD9A1E5B1A4CD6289E999EA819D
|
||||||
|
keyring: /etc/apt/keyrings/strawberry.gpg
|
||||||
|
- name: Install PPA repository
|
||||||
|
become: true
|
||||||
|
apt_repository:
|
||||||
|
repo: "deb [signed-by=/etc/apt/keyrings/strawberry.gpg] https://ppa.launchpadcontent.net/jonaski/strawberry/ubuntu {{ ansible_distribution_release }} main"
|
||||||
|
register: apt_repository
|
||||||
|
- name: Update APT cache
|
||||||
|
become: true
|
||||||
|
apt:
|
||||||
|
update_cache: true
|
||||||
|
when: apt_repository.changed
|
||||||
|
- name: Install Strawberry
|
||||||
|
become: true
|
||||||
|
apt:
|
||||||
|
name: strawberry
|
||||||
|
- name: Create configuration directory
|
||||||
|
file:
|
||||||
|
path: ~/.config/strawberry
|
||||||
|
recurse: true
|
||||||
|
state: directory
|
||||||
|
- name: Copy configuration file
|
||||||
|
template:
|
||||||
|
src: "{{ role_path }}/templates/strawberry.conf.j2"
|
||||||
|
dest: ~/.config/strawberry/strawberry.conf
|
396
roles/strawberry/templates/strawberry.conf.j2
Normal file
396
roles/strawberry/templates/strawberry.conf.j2
Normal file
|
@ -0,0 +1,396 @@
|
||||||
|
[Analyzer]
|
||||||
|
framerate=25
|
||||||
|
type=BlockAnalyzer
|
||||||
|
|
||||||
|
[Appearance]
|
||||||
|
background-color=@Variant(\0\0\0\x43\x1\xff\xff\xff\xff\xff\xff\xff\xff\0\0)
|
||||||
|
background_image_do_not_cut=true
|
||||||
|
background_image_keep_aspect_ratio=false
|
||||||
|
background_image_max_size=0
|
||||||
|
background_image_position=1
|
||||||
|
background_image_stretch=true
|
||||||
|
background_image_type=3
|
||||||
|
blur_radius=80
|
||||||
|
foreground-color=@Variant(\0\0\0\x43\x1\xff\xff\0\0\0\0\0\0\0\0)
|
||||||
|
icon_size_configure_buttons=16
|
||||||
|
icon_size_left_panel_buttons=22
|
||||||
|
icon_size_play_control_buttons=32
|
||||||
|
icon_size_playlist_buttons=20
|
||||||
|
icon_size_tabbar_large_mode=40
|
||||||
|
icon_size_tabbar_small_mode=32
|
||||||
|
opacity_level=70
|
||||||
|
playlist_playing_song_color=@Variant(\0\0\0\x43\0\xff\xff\0\0\0\0\0\0\0\0)
|
||||||
|
style=Fusion
|
||||||
|
system_icons=false
|
||||||
|
tab_color=@Variant(\0\0\0\x43\x2\xff\xffOL\x87\x87\x92+\0\0)
|
||||||
|
tab_gradient=true
|
||||||
|
tab_system_color=true
|
||||||
|
use-custom-set=true
|
||||||
|
|
||||||
|
[Backend]
|
||||||
|
AutoCrossfadeEnabled=false
|
||||||
|
CrossfadeEnabled=false
|
||||||
|
FadeoutDuration=2000
|
||||||
|
FadeoutEnabled=false
|
||||||
|
FadeoutPauseDuration=250
|
||||||
|
FadeoutPauseEnabled=false
|
||||||
|
NoCrossfadeSameAlbum=true
|
||||||
|
bs2b=false
|
||||||
|
bufferduration=4000
|
||||||
|
bufferhighwatermark=0.99
|
||||||
|
bufferlowwatermark=0.33
|
||||||
|
channels=2
|
||||||
|
channels_enabled=false
|
||||||
|
device=@Invalid()
|
||||||
|
engine=gstreamer
|
||||||
|
http2=false
|
||||||
|
output=autoaudiosink
|
||||||
|
rgcompression=true
|
||||||
|
rgenabled=false
|
||||||
|
rgfallbackgain=0
|
||||||
|
rgmode=0
|
||||||
|
rgpreamp=0
|
||||||
|
volume_control=true
|
||||||
|
|
||||||
|
[Behaviour]
|
||||||
|
doubleclick_addmode=1
|
||||||
|
doubleclick_playlist_addmode=1
|
||||||
|
doubleclick_playmode=3
|
||||||
|
keeprunning=true
|
||||||
|
language=
|
||||||
|
menu_playmode=2
|
||||||
|
menu_previousmode=1
|
||||||
|
playing_widget=true
|
||||||
|
resumeplayback=false
|
||||||
|
seek_step_sec=10
|
||||||
|
showtrayicon=true
|
||||||
|
startupbehaviour=2
|
||||||
|
trayicon_progress=true
|
||||||
|
|
||||||
|
[Collection]
|
||||||
|
auto_open=true
|
||||||
|
cache_size=160
|
||||||
|
cache_size_unit=1
|
||||||
|
cover_art_patterns=front, cover
|
||||||
|
cover_lowercase=true
|
||||||
|
cover_overwrite=false
|
||||||
|
cover_pattern=%albumartist-%album
|
||||||
|
cover_replace_spaces=true
|
||||||
|
delete_files=false
|
||||||
|
disk_cache_enable=false
|
||||||
|
disk_cache_size=360
|
||||||
|
disk_cache_size_unit=1
|
||||||
|
expire_unavailable_songs=60
|
||||||
|
group_by1=1
|
||||||
|
group_by2=4
|
||||||
|
group_by3=0
|
||||||
|
group_by_version=1
|
||||||
|
io_priority=3
|
||||||
|
last_path=/home/{{ ansible_user_id }}/Music
|
||||||
|
mark_songs_unavailable=true
|
||||||
|
monitor=true
|
||||||
|
overwrite_playcount=false
|
||||||
|
overwrite_rating=false
|
||||||
|
pretty_covers=true
|
||||||
|
save_cover_filename=2
|
||||||
|
save_cover_type=3
|
||||||
|
save_playcounts=false
|
||||||
|
save_ratings=false
|
||||||
|
separate_albums_by_grouping=false
|
||||||
|
show_dividers=true
|
||||||
|
song_tracking=true
|
||||||
|
startup_scan=true
|
||||||
|
tagreader_workers=2
|
||||||
|
thread_priority=0
|
||||||
|
|
||||||
|
[Context]
|
||||||
|
AlbumEnable=true
|
||||||
|
EngineAndDeviceEnable=false
|
||||||
|
SearchCoverEnable=true
|
||||||
|
SearchLyricsEnable=true
|
||||||
|
SongLyricsEnable=true
|
||||||
|
SummaryFmt=%album%
|
||||||
|
TechnicalDataEnable=false
|
||||||
|
TitleFmt=%title% - %artist%
|
||||||
|
font_headline=Bitstream Vera Sans
|
||||||
|
font_normal=Bitstream Vera Sans
|
||||||
|
font_size_headline=11
|
||||||
|
font_size_normal=11
|
||||||
|
|
||||||
|
[CoverManager]
|
||||||
|
geometry=@ByteArray(\x1\xd9\xd0\xcb\0\x3\0\0\0\0\x3\xc2\0\0\0\x4\0\0\a{\0\0\x4\x92\0\0\x3\xc4\0\0\0\x6\0\0\ay\0\0\x4\x90\0\0\0\0\0\0\0\0\a\x80\0\0\x3\xc4\0\0\0\x6\0\0\ay\0\0\x4\x90)
|
||||||
|
save_cover_type=1
|
||||||
|
splitter_state=@ByteArray(\0\0\0\xff\0\0\0\x1\0\0\0\x2\0\0\0\xc8\0\0\x2\xbf\x1\xff\xff\xff\xff\x1\0\0\0\x1\0)
|
||||||
|
|
||||||
|
[Covers]
|
||||||
|
providers=Last.fm, MusicBrainz, Deezer, Musixmatch, Spotify, Tidal, Qobuz
|
||||||
|
|
||||||
|
[Equalizer]
|
||||||
|
enable_stereo_balancer=false
|
||||||
|
enabled=false
|
||||||
|
presets\1\name=Classical
|
||||||
|
presets\1\params=@Variant(\0\0\0\x7f\0\0\0\x12\x45qualizer::Params\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\xff\xff\xff\xd8\xff\xff\xff\xd8\xff\xff\xff\xd8\xff\xff\xff\xce)
|
||||||
|
presets\10\name=Live
|
||||||
|
presets\10\params=@Variant(\0\0\0\x7f\0\0\0\x12\x45qualizer::Params\0\0\0\0\0\xff\xff\xff\xe7\0\0\0\0\0\0\0\x14\0\0\0\x19\0\0\0\x1e\0\0\0\x1e\0\0\0\x14\0\0\0\xf\0\0\0\xf\0\0\0\n)
|
||||||
|
presets\11\name=Party
|
||||||
|
presets\11\params=@Variant(\0\0\0\x7f\0\0\0\x12\x45qualizer::Params\0\0\0\0\0\0\0\0#\0\0\0#\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0#\0\0\0#)
|
||||||
|
presets\12\name=Pop
|
||||||
|
presets\12\params=@Variant(\0\0\0\x7f\0\0\0\x12\x45qualizer::Params\0\0\0\0\0\xff\xff\xff\xf6\0\0\0\x19\0\0\0#\0\0\0(\0\0\0\x19\xff\xff\xff\xfb\xff\xff\xff\xf1\xff\xff\xff\xf1\xff\xff\xff\xf6\xff\xff\xff\xf6)
|
||||||
|
presets\13\name=Reggae
|
||||||
|
presets\13\params=@Variant(\0\0\0\x7f\0\0\0\x12\x45qualizer::Params\0\0\0\0\0\0\0\0\0\0\0\0\0\xff\xff\xff\xfb\xff\xff\xff\xe2\0\0\0\0\xff\xff\xff\xdd\xff\xff\xff\xdd\0\0\0\0\0\0\0\0\0\0\0\0)
|
||||||
|
presets\14\name=Rock
|
||||||
|
presets\14\params=@Variant(\0\0\0\x7f\0\0\0\x12\x45qualizer::Params\0\0\0\0\0\0\0\0(\0\0\0\x19\xff\xff\xff\xe2\xff\xff\xff\xd8\xff\xff\xff\xec\0\0\0\x14\0\0\0-\0\0\0\x37\0\0\0\x37\0\0\0\x37)
|
||||||
|
presets\15\name=Ska
|
||||||
|
presets\15\params=@Variant(\0\0\0\x7f\0\0\0\x12\x45qualizer::Params\0\0\0\0\0\xff\xff\xff\xf1\xff\xff\xff\xe7\xff\xff\xff\xe7\xff\xff\xff\xfb\0\0\0\x14\0\0\0\x1e\0\0\0-\0\0\0\x32\0\0\0\x37\0\0\0\x32)
|
||||||
|
presets\16\name=Soft
|
||||||
|
presets\16\params=@Variant(\0\0\0\x7f\0\0\0\x12\x45qualizer::Params\0\0\0\0\0\0\0\0\x19\0\0\0\n\xff\xff\xff\xfb\xff\xff\xff\xf1\xff\xff\xff\xfb\0\0\0\x14\0\0\0-\0\0\0\x32\0\0\0\x37\0\0\0<)
|
||||||
|
presets\17\name=Soft Rock
|
||||||
|
presets\17\params=@Variant(\0\0\0\x7f\0\0\0\x12\x45qualizer::Params\0\0\0\0\0\0\0\0\x14\0\0\0\x14\0\0\0\n\xff\xff\xff\xfb\xff\xff\xff\xe7\xff\xff\xff\xe2\xff\xff\xff\xec\xff\xff\xff\xfb\0\0\0\xf\0\0\0-)
|
||||||
|
presets\18\name=Techno
|
||||||
|
presets\18\params=@Variant(\0\0\0\x7f\0\0\0\x12\x45qualizer::Params\0\0\0\0\0\0\0\0(\0\0\0\x1e\0\0\0\0\xff\xff\xff\xe2\xff\xff\xff\xe7\0\0\0\0\0\0\0(\0\0\0\x32\0\0\0\x32\0\0\0-)
|
||||||
|
presets\19\name=Zero
|
||||||
|
presets\19\params=@Variant(\0\0\0\x7f\0\0\0\x12\x45qualizer::Params\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0)
|
||||||
|
presets\2\name=Club
|
||||||
|
presets\2\params=@Variant(\0\0\0\x7f\0\0\0\x12\x45qualizer::Params\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x14\0\0\0\x1e\0\0\0\x1e\0\0\0\x1e\0\0\0\x14\0\0\0\0\0\0\0\0\0\0\0\0)
|
||||||
|
presets\3\name=Custom
|
||||||
|
presets\3\params=@Variant(\0\0\0\x7f\0\0\0\x12\x45qualizer::Params\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0)
|
||||||
|
presets\4\name=Dance
|
||||||
|
presets\4\params=@Variant(\0\0\0\x7f\0\0\0\x12\x45qualizer::Params\0\0\0\0\0\0\0\0\x32\0\0\0#\0\0\0\n\0\0\0\0\0\0\0\0\xff\xff\xff\xe2\xff\xff\xff\xd8\xff\xff\xff\xd8\0\0\0\0\0\0\0\0)
|
||||||
|
presets\5\name=Full Bass
|
||||||
|
presets\5\params=@Variant(\0\0\0\x7f\0\0\0\x12\x45qualizer::Params\0\0\0\0\0\0\0\0\x46\0\0\0\x46\0\0\0\x46\0\0\0(\0\0\0\x14\xff\xff\xff\xd3\xff\xff\xff\xce\xff\xff\xff\xc9\xff\xff\xff\xc9\xff\xff\xff\xc9)
|
||||||
|
presets\6\name=Full Bass + Treble
|
||||||
|
presets\6\params=@Variant(\0\0\0\x7f\0\0\0\x12\x45qualizer::Params\0\0\0\0\0\0\0\0#\0\0\0\x1e\0\0\0\0\xff\xff\xff\xd8\xff\xff\xff\xe7\0\0\0\n\0\0\0-\0\0\0\x37\0\0\0<\0\0\0<)
|
||||||
|
presets\7\name=Full Treble
|
||||||
|
presets\7\params=@Variant(\0\0\0\x7f\0\0\0\x12\x45qualizer::Params\0\0\0\0\0\xff\xff\xff\xce\xff\xff\xff\xce\xff\xff\xff\xce\xff\xff\xff\xe7\0\0\0\xf\0\0\0\x37\0\0\0P\0\0\0P\0\0\0P\0\0\0U)
|
||||||
|
presets\8\name=Laptop/Headphones
|
||||||
|
presets\8\params=@Variant(\0\0\0\x7f\0\0\0\x12\x45qualizer::Params\0\0\0\0\0\0\0\0\x19\0\0\0\x32\0\0\0\x19\xff\xff\xff\xec\0\0\0\0\xff\xff\xff\xe2\xff\xff\xff\xd8\xff\xff\xff\xd8\0\0\0\0\0\0\0\0)
|
||||||
|
presets\9\name=Large Hall
|
||||||
|
presets\9\params=@Variant(\0\0\0\x7f\0\0\0\x12\x45qualizer::Params\0\0\0\0\0\0\0\0\x32\0\0\0\x32\0\0\0\x1e\0\0\0\x1e\0\0\0\0\xff\xff\xff\xe7\xff\xff\xff\xe7\xff\xff\xff\xe7\0\0\0\0\0\0\0\0)
|
||||||
|
presets\size=19
|
||||||
|
selected_preset=Custom
|
||||||
|
stereo_balance=0
|
||||||
|
|
||||||
|
[GlobalShortcuts]
|
||||||
|
dec_volume=
|
||||||
|
inc_volume=
|
||||||
|
love=
|
||||||
|
mute=
|
||||||
|
next_track=Media Next
|
||||||
|
pause=
|
||||||
|
play=
|
||||||
|
play_pause=Media Play
|
||||||
|
prev_track=Media Previous
|
||||||
|
repeat_mode=
|
||||||
|
seek_backward=
|
||||||
|
seek_forward=
|
||||||
|
show_hide=
|
||||||
|
show_osd=
|
||||||
|
shuffle_mode=
|
||||||
|
stop=Media Stop
|
||||||
|
stop_after=
|
||||||
|
toggle_pretty_osd=
|
||||||
|
toggle_scrobbling=
|
||||||
|
use_gnome=true
|
||||||
|
use_kde=false
|
||||||
|
use_mate=false
|
||||||
|
use_x11=false
|
||||||
|
|
||||||
|
[LastFM]
|
||||||
|
enabled=false
|
||||||
|
https=false
|
||||||
|
|
||||||
|
[LibreFM]
|
||||||
|
enabled=false
|
||||||
|
|
||||||
|
[ListenBrainz]
|
||||||
|
enabled=false
|
||||||
|
user_token=
|
||||||
|
|
||||||
|
[Lyrics]
|
||||||
|
providers=AudD, Genius, Lyrics.ovh, LoloLyrics, Musixmatch
|
||||||
|
|
||||||
|
[MainWindow]
|
||||||
|
current_tab=1
|
||||||
|
geometry=@ByteArray(\x1\xd9\xd0\xcb\0\x3\0\0\0\0\0\0\0\0\0\0\0\0\a\x7f\0\0\x4\x96\0\0\0\0\0\0\0\x14\0\0\x4j\0\0\x2\xc0\0\0\0\0\x2\0\0\0\a\x80\0\0\0\0\0\0\0\0\0\0\a\x7f\0\0\x4\x96)
|
||||||
|
hidden=false
|
||||||
|
maximized=true
|
||||||
|
minimized=false
|
||||||
|
search_for_cover_auto=true
|
||||||
|
show_sidebar=true
|
||||||
|
splitter_state=@ByteArray(\0\0\0\xff\0\0\0\x1\0\0\0\x2\0\0\x1p\0\0\x4W\0\xff\xff\xff\xff\x1\0\0\0\x1\0)
|
||||||
|
tab_collection=1
|
||||||
|
tab_context=0
|
||||||
|
tab_devices=7
|
||||||
|
tab_files=5
|
||||||
|
tab_mode=1
|
||||||
|
tab_playlists=3
|
||||||
|
tab_queue=2
|
||||||
|
tab_radios=6
|
||||||
|
tab_smartplaylists=4
|
||||||
|
|
||||||
|
[Moodbar]
|
||||||
|
enabled=false
|
||||||
|
save=false
|
||||||
|
show=false
|
||||||
|
style=0
|
||||||
|
|
||||||
|
[NetworkProxy]
|
||||||
|
engine=true
|
||||||
|
hostname=
|
||||||
|
mode=0
|
||||||
|
password=
|
||||||
|
port=0
|
||||||
|
type=3
|
||||||
|
use_authentication=false
|
||||||
|
username=
|
||||||
|
|
||||||
|
[OSD]
|
||||||
|
Behaviour=3
|
||||||
|
CustomText1=%title%
|
||||||
|
CustomText2=%artist% - %album%
|
||||||
|
CustomTextEnabled=true
|
||||||
|
ShowArt=true
|
||||||
|
ShowOnPausePlayback=true
|
||||||
|
ShowOnPlayModeChange=true
|
||||||
|
ShowOnResumePlayback=false
|
||||||
|
ShowOnVolumeChange=false
|
||||||
|
Timeout=5000
|
||||||
|
|
||||||
|
[OSDPretty]
|
||||||
|
background_color=4291434000
|
||||||
|
background_opacity=0.8700000047683716
|
||||||
|
disable_duration=false
|
||||||
|
fading=true
|
||||||
|
font="Bitstream Vera Sans,11,-1,5,400,0,0,0,0,0,0,0,0,0,0,1"
|
||||||
|
foreground_color=4278190080
|
||||||
|
popup_pos=@Point(1524 0)
|
||||||
|
popup_screen=DP-1
|
||||||
|
|
||||||
|
[Player]
|
||||||
|
playback_playlist=1
|
||||||
|
playback_position=219
|
||||||
|
playback_state=3
|
||||||
|
volume=32
|
||||||
|
|
||||||
|
[Playlist]
|
||||||
|
alternating_row_colors=true
|
||||||
|
auto_sort=false
|
||||||
|
column_alignments=@Variant(\0\0\0\x7f\0\0\0\x13\x43olumnAlignmentMap\0\0\0\0\v\0\0\0\x6\0\0\0\x82\0\0\0\a\0\0\0\x82\0\0\0\b\0\0\0\x82\0\0\0\t\0\0\0\x82\0\0\0\n\0\0\0\x82\0\0\0\f\0\0\0\x82\0\0\0\r\0\0\0\x82\0\0\0\xe\0\0\0\x82\0\0\0\x11\0\0\0\x82\0\0\0\x15\0\0\0\x82\0\0\0\x16\0\0\0\x82)
|
||||||
|
continue_on_error=true
|
||||||
|
delete_files=false
|
||||||
|
editmetadatainline=false
|
||||||
|
glow_effect=true
|
||||||
|
greyout_songs_play=true
|
||||||
|
greyout_songs_startup=true
|
||||||
|
path_type=0
|
||||||
|
playlist_clear=true
|
||||||
|
rating_locked=false
|
||||||
|
select_track=true
|
||||||
|
show_bars=true
|
||||||
|
show_toolbar=true
|
||||||
|
state="@ByteArray(P,\x95\xf\x1\0\0\0\x1e\0\0\x2\x1\0\0\x1\xc2\0\0\x1R\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x41\0\0\0\0\0\0\0\x45\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x1e\0\0\0\b\0\0\0\0\0\0\0\x1\0\0\0\x2\0\0\0\x3\0\0\0\x4\0\0\0\x5\0\0\0\x6\0\0\0\a\0\0\0\t\0\0\0\n\0\0\0\v\0\0\0\f\0\0\0\r\0\0\0\xe\0\0\0\xf\0\0\0\x10\0\0\0\x11\0\0\0\x12\0\0\0\x13\0\0\0\x14\0\0\0\x15\0\0\0\x16\0\0\0\x17\0\0\0\x18\0\0\0\x19\0\0\0\x1a\0\0\0\x1b\0\0\0\x1c\0\0\0\x1d\0\0\0\x1e?\xd6\xe1\x8a|/\xea\x13?\xd4\xe\x98\x66\xb0\x6\xa6?\xce\x1e\x88\xae\xb2\x45\xd5\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0?\xa7S\xde\x3\xc1)j\0\0\0\0\0\0\0\0?\xa8\xb0\xe8*v9\x8a\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\b)"
|
||||||
|
state_version=1
|
||||||
|
warn_close_playlist=true
|
||||||
|
write_metadata=false
|
||||||
|
|
||||||
|
[PlaylistSequence]
|
||||||
|
repeat_mode=0
|
||||||
|
shuffle_mode=0
|
||||||
|
|
||||||
|
[Qobuz]
|
||||||
|
albums_group_by1=1
|
||||||
|
albums_group_by2=4
|
||||||
|
albums_group_by3=0
|
||||||
|
albums_group_by_version=1
|
||||||
|
albums_separate_albums_by_grouping=false
|
||||||
|
artists_group_by1=1
|
||||||
|
artists_group_by2=4
|
||||||
|
artists_group_by3=0
|
||||||
|
artists_group_by_version=1
|
||||||
|
artists_separate_albums_by_grouping=false
|
||||||
|
search_group_by1=1
|
||||||
|
search_group_by2=4
|
||||||
|
search_group_by3=0
|
||||||
|
search_group_by_version=1
|
||||||
|
songs_group_by1=1
|
||||||
|
songs_group_by2=4
|
||||||
|
songs_group_by3=0
|
||||||
|
songs_group_by_version=1
|
||||||
|
songs_separate_albums_by_grouping=false
|
||||||
|
tab=artists
|
||||||
|
|
||||||
|
[Scrobbler]
|
||||||
|
albumartist=false
|
||||||
|
enabled=false
|
||||||
|
love_button=false
|
||||||
|
offline=false
|
||||||
|
scrobble_button=false
|
||||||
|
show_error_dialog=true
|
||||||
|
sources=collection, file, cd, device, subsonic, tidal, qobuz, stream, somafm, radioparadise, unknown
|
||||||
|
submit=0
|
||||||
|
|
||||||
|
[SerializedSmartPlaylists]
|
||||||
|
songs\1\data=@ByteArray(\0\0\0\0\x2\x11\0\0\0\x14\x2\0)
|
||||||
|
songs\1\name=Newest tracks
|
||||||
|
songs\1\type=1
|
||||||
|
songs\10\data=@ByteArray(\0\0\0\0\0\x3\0\0\0\x14\x2\x1)
|
||||||
|
songs\10\name=Dynamic random mix
|
||||||
|
songs\10\type=1
|
||||||
|
songs\2\data=@ByteArray(\0\0\0\0\0\x3\0\0\0\x32\x2\0)
|
||||||
|
songs\2\name=50 random tracks
|
||||||
|
songs\2\type=1
|
||||||
|
songs\3\data=@ByteArray(\0\0\0\x1\x13\x4\0\0\0\x2\0\0\0\0\0\0\0\0\0\x1\0\0\x3\0\0\0\x14\0\0)
|
||||||
|
songs\3\name=Ever played
|
||||||
|
songs\3\type=1
|
||||||
|
songs\4\data=@ByteArray(\0\0\0\x1\x13\x6\0\0\0\x2\0\0\0\0\0\0\0\0\0\x1\0\0\x3\0\0\0\x14\0\0)
|
||||||
|
songs\4\name=Never played
|
||||||
|
songs\4\type=1
|
||||||
|
songs\5\data=@ByteArray(\0\0\0\0\x2\x15\0\0\0\x14\x2\0)
|
||||||
|
songs\5\name=Last played
|
||||||
|
songs\5\type=1
|
||||||
|
songs\6\data=@ByteArray(\0\0\0\0\x2\x13\0\0\0\x14\x2\0)
|
||||||
|
songs\6\name=Most played
|
||||||
|
songs\6\type=1
|
||||||
|
songs\7\data=@ByteArray(\0\0\0\0\x2\x16\0\0\0\x14\x2\0)
|
||||||
|
songs\7\name=Favourite tracks
|
||||||
|
songs\7\type=1
|
||||||
|
songs\8\data=@ByteArray(\0\0\0\x2\x16\x5\0\0\0\x6\0?\xe0\0\0\0\0\0\0\0\0\0\0\x1\0\x14\x4\0\0\0\x2\0\0\0\0\x4\0\0\0\0\x1\0\x2\x14\0\0\0\x14\x1\0)
|
||||||
|
songs\8\name=Least favourite tracks
|
||||||
|
songs\8\type=1
|
||||||
|
songs\9\data=@ByteArray(\0\0\0\0\x1\x1\xff\xff\xff\xff\x2\0)
|
||||||
|
songs\9\name=All tracks
|
||||||
|
songs\9\type=1
|
||||||
|
songs\size=10
|
||||||
|
songs_version=3
|
||||||
|
|
||||||
|
[SettingsDialog]
|
||||||
|
geometry=@ByteArray(\x1\xd9\xd0\xcb\0\x3\0\0\0\0\x1\xb0\0\0\0\xd9\0\0\x5\xd2\0\0\x3\xda\0\0\x1\xb1\0\0\0\xda\0\0\x5\xd1\0\0\x3\xd9\0\0\0\0\0\0\0\0\a\x80\0\0\x1\xb1\0\0\0\xda\0\0\x5\xd1\0\0\x3\xd9)
|
||||||
|
|
||||||
|
[Subsonic]
|
||||||
|
group_by1=1
|
||||||
|
group_by2=4
|
||||||
|
group_by3=0
|
||||||
|
group_by_version=1
|
||||||
|
separate_albums_by_grouping=false
|
||||||
|
|
||||||
|
[Tidal]
|
||||||
|
albums_group_by1=1
|
||||||
|
albums_group_by2=4
|
||||||
|
albums_group_by3=0
|
||||||
|
albums_group_by_version=1
|
||||||
|
albums_separate_albums_by_grouping=false
|
||||||
|
artists_group_by1=1
|
||||||
|
artists_group_by2=4
|
||||||
|
artists_group_by3=0
|
||||||
|
artists_group_by_version=1
|
||||||
|
artists_separate_albums_by_grouping=false
|
||||||
|
search_group_by1=1
|
||||||
|
search_group_by2=4
|
||||||
|
search_group_by3=0
|
||||||
|
search_group_by_version=1
|
||||||
|
songs_group_by1=1
|
||||||
|
songs_group_by2=4
|
||||||
|
songs_group_by3=0
|
||||||
|
songs_group_by_version=1
|
||||||
|
songs_separate_albums_by_grouping=false
|
||||||
|
tab=artists
|
2
roles/syncthing/meta/main.yml
Normal file
2
roles/syncthing/meta/main.yml
Normal file
|
@ -0,0 +1,2 @@
|
||||||
|
dependencies:
|
||||||
|
- role: common
|
|
@ -1,29 +1,31 @@
|
||||||
- name: Install Syncthing
|
- name: Install Syncthing
|
||||||
become: true
|
become: true
|
||||||
apt:
|
apt:
|
||||||
state: latest
|
|
||||||
update_cache: true
|
|
||||||
cache_valid_time: 86400
|
|
||||||
name: syncthing
|
name: syncthing
|
||||||
- name: Create Syncthing configuration directory
|
- name: Create Syncthing configuration directory
|
||||||
file:
|
file:
|
||||||
path: ~/.config/syncthing
|
path: ~/.config/syncthing
|
||||||
state: directory
|
state: directory
|
||||||
- name: Copy Syncthing configuration
|
- name: Copy Syncthing configuration
|
||||||
copy:
|
template:
|
||||||
src: "{{ role_path }}/files/config.xml"
|
src: "{{ role_path }}/templates/config.xml.j2"
|
||||||
dest: ~/.config/syncthing/config.xml
|
dest: ~/.config/syncthing/config.xml
|
||||||
|
register: config
|
||||||
- name: Copy Syncthing private key
|
- name: Copy Syncthing private key
|
||||||
copy:
|
copy:
|
||||||
src: "{{ role_path }}/files/key.pem"
|
src: "{{ role_path }}/files/key.pem"
|
||||||
dest: ~/.config/syncthing/key.pem
|
dest: ~/.config/syncthing/key.pem
|
||||||
|
register: private_key
|
||||||
- name: Copy Syncthing certificate
|
- name: Copy Syncthing certificate
|
||||||
copy:
|
copy:
|
||||||
src: "{{ role_path }}/files/cert.pem"
|
src: "{{ role_path }}/files/cert.pem"
|
||||||
dest: ~/.config/syncthing/cert.pem
|
dest: ~/.config/syncthing/cert.pem
|
||||||
|
register: certificate
|
||||||
- name: Enable Syncthing
|
- name: Enable Syncthing
|
||||||
become: true
|
become: true
|
||||||
systemd:
|
systemd:
|
||||||
enabled: true
|
enabled: true
|
||||||
name: "syncthing@{{ ansible_user_id }}"
|
name: "syncthing@{{ ansible_user_id }}"
|
||||||
state: restarted
|
state: "{{ state }}"
|
||||||
|
vars:
|
||||||
|
state: "{{ 'restarted' if config.changed or private_key.changed or certificate.changed else 'started' }}"
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
<configuration version="37">
|
<configuration version="37">
|
||||||
<folder id="6pgsm-opvsv" label="Sync" path="/home/pim/sync" type="sendreceive" rescanIntervalS="3600" fsWatcherEnabled="true" fsWatcherDelayS="10" ignorePerms="false" autoNormalize="true">
|
<folder id="6pgsm-opvsv" label="Sync" path="/home/{{ ansible_user_id }}/sync" type="sendreceive" rescanIntervalS="3600" fsWatcherEnabled="true" fsWatcherDelayS="10" ignorePerms="false" autoNormalize="true">
|
||||||
<filesystemType>basic</filesystemType>
|
<filesystemType>basic</filesystemType>
|
||||||
<device id="IGS4TYV-TQ6X2CG-OE3M2RE-DKZWKQZ-HEKIGHT-C6EIGHL-CBP2ULE-M3WZ7QC" introducedBy="">
|
<device id="IGS4TYV-TQ6X2CG-OE3M2RE-DKZWKQZ-HEKIGHT-C6EIGHL-CBP2ULE-M3WZ7QC" introducedBy="">
|
||||||
<encryptionPassword></encryptionPassword>
|
<encryptionPassword></encryptionPassword>
|
||||||
|
@ -43,7 +43,7 @@
|
||||||
<maxTotalSize>4096</maxTotalSize>
|
<maxTotalSize>4096</maxTotalSize>
|
||||||
</xattrFilter>
|
</xattrFilter>
|
||||||
</folder>
|
</folder>
|
||||||
<folder id="gfx9s-zaxrt" label="Music" path="/home/pim/Music" type="sendreceive" rescanIntervalS="3600" fsWatcherEnabled="true" fsWatcherDelayS="10" ignorePerms="false" autoNormalize="true">
|
<folder id="gfx9s-zaxrt" label="Music" path="/home/{{ ansible_user_id }}/Music" type="sendreceive" rescanIntervalS="3600" fsWatcherEnabled="true" fsWatcherDelayS="10" ignorePerms="false" autoNormalize="true">
|
||||||
<filesystemType>basic</filesystemType>
|
<filesystemType>basic</filesystemType>
|
||||||
<device id="IGS4TYV-TQ6X2CG-OE3M2RE-DKZWKQZ-HEKIGHT-C6EIGHL-CBP2ULE-M3WZ7QC" introducedBy="">
|
<device id="IGS4TYV-TQ6X2CG-OE3M2RE-DKZWKQZ-HEKIGHT-C6EIGHL-CBP2ULE-M3WZ7QC" introducedBy="">
|
||||||
<encryptionPassword></encryptionPassword>
|
<encryptionPassword></encryptionPassword>
|
||||||
|
@ -109,7 +109,7 @@
|
||||||
</device>
|
</device>
|
||||||
<gui enabled="true" tls="false" debugging="false">
|
<gui enabled="true" tls="false" debugging="false">
|
||||||
<address>127.0.0.1:40465</address>
|
<address>127.0.0.1:40465</address>
|
||||||
<apikey></apikey>
|
<apikey>{{ syncthing.apikey }}</apikey>
|
||||||
<theme>default</theme>
|
<theme>default</theme>
|
||||||
</gui>
|
</gui>
|
||||||
<ldap></ldap>
|
<ldap></ldap>
|
||||||
|
@ -134,7 +134,7 @@
|
||||||
<natTimeoutSeconds>10</natTimeoutSeconds>
|
<natTimeoutSeconds>10</natTimeoutSeconds>
|
||||||
<urAccepted>3</urAccepted>
|
<urAccepted>3</urAccepted>
|
||||||
<urSeen>3</urSeen>
|
<urSeen>3</urSeen>
|
||||||
<urUniqueID></urUniqueID>
|
<urUniqueID>{{ syncthing.usage_report_unique_id }}</urUniqueID>
|
||||||
<urURL>https://data.syncthing.net/newdata</urURL>
|
<urURL>https://data.syncthing.net/newdata</urURL>
|
||||||
<urPostInsecurely>false</urPostInsecurely>
|
<urPostInsecurely>false</urPostInsecurely>
|
||||||
<urInitialDelayS>1800</urInitialDelayS>
|
<urInitialDelayS>1800</urInitialDelayS>
|
16
roles/syncthing/vars/main.yml
Normal file
16
roles/syncthing/vars/main.yml
Normal file
|
@ -0,0 +1,16 @@
|
||||||
|
syncthing:
|
||||||
|
apikey: !vault |
|
||||||
|
$ANSIBLE_VAULT;1.1;AES256
|
||||||
|
63616464333437376436333362353263396536633733656431363563626364346536376331646531
|
||||||
|
3762666230663933633937303130356238343963323030320a643639353833616666316536326434
|
||||||
|
65333136656530353062303434633830343765613937386134303463323730666332353439343762
|
||||||
|
3230356330333565630a336239646134333364383165383662393735306566666662623237663164
|
||||||
|
35633538303738366538666466626666633431363134633963313739623231363065653936383131
|
||||||
|
6637636561393762323431303430353661396162393463646636
|
||||||
|
usage_report_unique_id: !vault |
|
||||||
|
$ANSIBLE_VAULT;1.1;AES256
|
||||||
|
65636631303566326435306335663363393362613565326638666336353139376538343631663365
|
||||||
|
6666643239396464326438353438323033343334363731340a376638633564626563373866353132
|
||||||
|
30306363303664363233303533653232386264666432303537313630373636613061633237373930
|
||||||
|
6434346565383833300a316334663965353066633234636564653366326436663163363733616439
|
||||||
|
6666
|
|
@ -30,3 +30,7 @@ UpperCase=true
|
||||||
|
|
||||||
[SSHAgent]
|
[SSHAgent]
|
||||||
Enabled=true
|
Enabled=true
|
||||||
|
|
||||||
|
[Security]
|
||||||
|
ClearClipboardTimeout=30
|
||||||
|
ClearSearch=false
|
2
roles/system/meta/main.yml
Normal file
2
roles/system/meta/main.yml
Normal file
|
@ -0,0 +1,2 @@
|
||||||
|
dependencies:
|
||||||
|
- role: common
|
|
@ -1,14 +1,6 @@
|
||||||
- name: Update repositories
|
|
||||||
become: true
|
|
||||||
apt:
|
|
||||||
upgrade: yes
|
|
||||||
state: latest
|
|
||||||
update_cache: yes
|
|
||||||
cache_valid_time: 86400 # One day
|
|
||||||
- name: Install APT packages
|
- name: Install APT packages
|
||||||
become: true
|
become: true
|
||||||
apt:
|
apt:
|
||||||
state: latest
|
|
||||||
pkg:
|
pkg:
|
||||||
- git
|
- git
|
||||||
- make
|
- make
|
||||||
|
@ -22,19 +14,24 @@
|
||||||
- gimp
|
- gimp
|
||||||
- tree
|
- tree
|
||||||
- wireshark
|
- wireshark
|
||||||
|
- units
|
||||||
- name: Install .gitconfig
|
- name: Install .gitconfig
|
||||||
template:
|
template:
|
||||||
src: "{{ role_path }}/templates/.gitconfig.j2"
|
src: "{{ role_path }}/templates/.gitconfig.j2"
|
||||||
dest: ~/.gitconfig
|
dest: ~/.gitconfig
|
||||||
- name: Install Regolith Xresources file
|
- name: Copy Xresources
|
||||||
template:
|
copy:
|
||||||
src: "{{ role_path }}/templates/Xresources.j2"
|
src: "{{ role_path }}/files/Xresources"
|
||||||
dest: ~/.config/regolith2/Xresources
|
dest: ~/.config/regolith2/Xresources
|
||||||
- name: Create keepassxc config directory
|
- name: Create keepassxc config directory
|
||||||
file:
|
file:
|
||||||
path: ~/.config/keepassxc
|
path: ~/.config/keepassxc
|
||||||
state: directory
|
state: directory
|
||||||
- name: Install keepassxc.ini
|
- name: Copy keepassxc.ini
|
||||||
template:
|
copy:
|
||||||
src: "{{ role_path }}/templates/keepassxc.ini.j2"
|
src: "{{ role_path }}/files/keepassxc.ini"
|
||||||
dest: ~/.config/keepassxc/keepassxc.ini
|
dest: ~/.config/keepassxc/keepassxc.ini
|
||||||
|
- name: Create repos directory
|
||||||
|
file:
|
||||||
|
path: ~/repos
|
||||||
|
state: directory
|
||||||
|
|
2
roles/virtualbox/meta/main.yml
Normal file
2
roles/virtualbox/meta/main.yml
Normal file
|
@ -0,0 +1,2 @@
|
||||||
|
dependencies:
|
||||||
|
- role: common
|
|
@ -7,11 +7,13 @@
|
||||||
become: true
|
become: true
|
||||||
apt_repository:
|
apt_repository:
|
||||||
repo: "deb [arch=amd64 signed-by=/etc/apt/trusted.gpg.d/oracle_vbox_2016.asc] https://download.virtualbox.org/virtualbox/debian {{ ansible_distribution_release }} contrib"
|
repo: "deb [arch=amd64 signed-by=/etc/apt/trusted.gpg.d/oracle_vbox_2016.asc] https://download.virtualbox.org/virtualbox/debian {{ ansible_distribution_release }} contrib"
|
||||||
state: present
|
register: apt_repository
|
||||||
|
- name: Update APT cache
|
||||||
|
become: true
|
||||||
|
apt:
|
||||||
|
update_cache: true
|
||||||
|
when: apt_repository.changed
|
||||||
- name: Install VirtualBox
|
- name: Install VirtualBox
|
||||||
become: true
|
become: true
|
||||||
apt:
|
apt:
|
||||||
state: latest
|
|
||||||
update_cache: yes
|
|
||||||
cache_valid_time: 86400 # One day
|
|
||||||
name: virtualbox-6.1
|
name: virtualbox-6.1
|
||||||
|
|
2
roles/vscodium/meta/main.yml
Normal file
2
roles/vscodium/meta/main.yml
Normal file
|
@ -0,0 +1,2 @@
|
||||||
|
dependencies:
|
||||||
|
- role: common
|
|
@ -7,13 +7,15 @@
|
||||||
become: true
|
become: true
|
||||||
apt_repository:
|
apt_repository:
|
||||||
repo: "deb [signed-by=/etc/apt/trusted.gpg.d/vscodium-archive-keyring.asc ] https://download.vscodium.com/debs vscodium main"
|
repo: "deb [signed-by=/etc/apt/trusted.gpg.d/vscodium-archive-keyring.asc ] https://download.vscodium.com/debs vscodium main"
|
||||||
state: present
|
register: apt_repository
|
||||||
|
- name: Update APT cache
|
||||||
|
become: true
|
||||||
|
apt:
|
||||||
|
update_cache: true
|
||||||
|
when: apt_repository.changed
|
||||||
- name: Install VSCodium
|
- name: Install VSCodium
|
||||||
become: true
|
become: true
|
||||||
apt:
|
apt:
|
||||||
state: latest
|
|
||||||
update_cache: yes
|
|
||||||
cache_valid_time: 86400 # One day
|
|
||||||
name: codium
|
name: codium
|
||||||
- name: Check VSCodium extensions
|
- name: Check VSCodium extensions
|
||||||
setup:
|
setup:
|
||||||
|
|
|
@ -1,40 +1,13 @@
|
||||||
# Set up the prompt
|
export ZSH=$HOME/.oh-my-zsh
|
||||||
|
|
||||||
autoload -Uz promptinit
|
plugins=(git asdf colored-man-pages colorize command-not-found copyfile copypath docker extract docker-compose fancy-ctrl-z fzf ripgrep)
|
||||||
promptinit
|
|
||||||
prompt adam1
|
|
||||||
|
|
||||||
setopt histignorealldups sharehistory
|
export ZSH_THEME="strug"
|
||||||
|
export ZSH_COLORIZE_TOOL=pygmentize
|
||||||
|
export FZF_BASE=~/repos/fzf
|
||||||
|
export FZF_DEFAULT_COMMAND='ag'
|
||||||
|
|
||||||
# Use emacs keybindings even if our EDITOR is set to vi
|
source $ZSH/oh-my-zsh.sh
|
||||||
bindkey -e
|
|
||||||
|
|
||||||
# Keep 1000 lines of history within the shell and save it to ~/.zsh_history:
|
|
||||||
HISTSIZE=1000
|
|
||||||
SAVEHIST=1000
|
|
||||||
HISTFILE=~/.zsh_history
|
|
||||||
|
|
||||||
# Use modern completion system
|
|
||||||
autoload -Uz compinit
|
|
||||||
compinit
|
|
||||||
|
|
||||||
zstyle ':completion:*' auto-description 'specify: %d'
|
|
||||||
zstyle ':completion:*' completer _expand _complete _correct _approximate
|
|
||||||
zstyle ':completion:*' format 'Completing %d'
|
|
||||||
zstyle ':completion:*' group-name ''
|
|
||||||
zstyle ':completion:*' menu select=2
|
|
||||||
eval "$(dircolors -b)"
|
|
||||||
zstyle ':completion:*:default' list-colors ${(s.:.)LS_COLORS}
|
|
||||||
zstyle ':completion:*' list-colors ''
|
|
||||||
zstyle ':completion:*' list-prompt %SAt %p: Hit TAB for more, or the character to insert%s
|
|
||||||
zstyle ':completion:*' matcher-list '' 'm:{a-z}={A-Z}' 'm:{a-zA-Z}={A-Za-z}' 'r:|[._-]=* r:|=* l:|=*'
|
|
||||||
zstyle ':completion:*' menu select=long
|
|
||||||
zstyle ':completion:*' select-prompt %SScrolling active: current selection at %p%s
|
|
||||||
zstyle ':completion:*' use-compctl false
|
|
||||||
zstyle ':completion:*' verbose true
|
|
||||||
|
|
||||||
zstyle ':completion:*:*:kill:*:processes' list-colors '=(#b) #([0-9]#)*=0=01;31'
|
|
||||||
zstyle ':completion:*:kill:*' command 'ps -u $USER -o pid,%cpu,tty,cputime,cmd'
|
|
||||||
|
|
||||||
# Git aliases
|
# Git aliases
|
||||||
alias gp='git push'
|
alias gp='git push'
|
||||||
|
@ -47,10 +20,10 @@ alias gb='git branch'
|
||||||
alias ga='git add'
|
alias ga='git add'
|
||||||
alias gl='git log'
|
alias gl='git log'
|
||||||
|
|
||||||
# asdf
|
|
||||||
. $HOME/.asdf/asdf.sh
|
|
||||||
|
|
||||||
# For neovim
|
# For neovim
|
||||||
PATH=$PATH:/usr/local
|
PATH=$PATH:/usr/local
|
||||||
alias vi='nvim'
|
alias vi='nvim'
|
||||||
alias vim='nvim'
|
alias vim='nvim'
|
||||||
|
|
||||||
|
zstyle ':completion:*:*:docker:*' option-stacking yes
|
||||||
|
zstyle ':completion:*:*:docker-*:*' option-stacking yes
|
||||||
|
|
2
roles/zsh/meta/main.yml
Normal file
2
roles/zsh/meta/main.yml
Normal file
|
@ -0,0 +1,2 @@
|
||||||
|
dependencies:
|
||||||
|
- role: common
|
|
@ -1,10 +1,20 @@
|
||||||
- name: Install zsh
|
- name: Install apt packages
|
||||||
become: true
|
become: true
|
||||||
apt:
|
apt:
|
||||||
state: latest
|
pkg:
|
||||||
update_cache: yes
|
- zsh
|
||||||
cache_valid_time: 86400 # One day
|
- fzf
|
||||||
name: zsh
|
- silversearcher-ag
|
||||||
|
- xclip
|
||||||
|
- name: Install pygments
|
||||||
|
pip:
|
||||||
|
name:
|
||||||
|
- pygments
|
||||||
|
- name: Clone oh-my-zsh
|
||||||
|
git:
|
||||||
|
repo: https://github.com/ohmyzsh/ohmyzsh.git
|
||||||
|
depth: 1
|
||||||
|
dest: ~/.oh-my-zsh
|
||||||
- name: Set default shell to zsh
|
- name: Set default shell to zsh
|
||||||
become: true
|
become: true
|
||||||
user:
|
user:
|
||||||
|
|
Reference in a new issue