Browse Source

update TODO, add changes from lappy

main
cinnaboot 3 years ago
parent
commit
d0faff3854
  1. 66
      TODO
  2. 327
      files/dconf.in
  3. 4
      files/firefox/user-overrides.js
  4. 32
      files/lxd_preseed.yml
  5. 64
      files/nftables.conf
  6. 28
      group_vars/all.yml
  7. 3
      local.yml
  8. 11
      tasks/base.yml
  9. 5
      tasks/desktop.yml
  10. 10
      tasks/electronics.yml
  11. 12
      tasks/firefox.yml
  12. 5
      tasks/vim.yml

66
TODO

@ -1,19 +1,55 @@
=== sandboxing: (aka, stop using firejail's setuid) ===
ideally would be lightweight lxc containers only running Wayland, with
no fallback to X11
- there is a '--no-x11' flag for 'gnome-shell':
- https://old.reddit.com/r/gnome/comments/xa18en/how_to_disable_xwayland_completely/
- https://wiki.archlinux.org/title/LXD#Use_Wayland_and_Xorg_applications
- https://discuss.linuxcontainers.org/t/overview-gui-inside-containers/8767
- https://blog.simos.info/running-x11-software-in-lxd-containers/
- for issues mounting the X socket:
https://github.com/lxc/lxd/issues/6584#issuecomment-564367714
for seccomp filtering, maybe try bwrap, or flatpak
lxc already uses seccomp filtering
see: /usr/share/lxc/config/common.seccomp
=== bluetooth ===
set default power state to off:
https://wiki.archlinux.org/title/Bluetooth#Default_adapter_power_state
=== gnome/wayland testing ===
step 1: don't use gnome...
no notificaion area, or systray by default. most systray extensions seem to
require Xwayland. We need at least an icon for evolution mail, and for the
libnotify history.
- https://aur.archlinux.org/packages/evolution-on-appindicator
doesn't work properly
clipboard:
need to replace xclip in .tmux.conf with wl-copy
vim wayland yank to clipboard
clipboard manager for gnome?
gnome-shell-extension-clipboard-indicator works well, but for some reason
doesn't clear the last item copied...
wireguard + nftables setup
break out lxd setup
- lxd preseed
- default containers
break out gnome settings into task file and group vars
add reflector service:
https://wiki.archlinux.org/title/Reflector
add alacritty config
=== lxc ===
add lxc backup script for common containers
=== sandboxing: (aka, stop using firejail's large setuid binary) ===
bubblejail seems to be working so far after testing
- need to modify firefox installation folders for use with the bubblejail
home folders though
- evolution seems to need some extra dbus permissions
evolution mail client:
- copy ~/.config/evolution, and ~/.local/share/evolution to new install
mpv firefox native plugin

327
files/dconf.in

@ -5,8 +5,33 @@ window-height=500
window-is-maximized=false
window-width=540
[org/blueman/general]
services-last-item=0
window-properties=[624, 439, 0, 0]
[org/blueman/network]
nap-enable=false
[org/blueman/plugins/powermanager]
auto-power-on=@mb false
[org/geda-user/gerbv]
background-color=uint32 0
window-maximized=false
window-position=[100, 100]
window-size=[1440, 810]
[org/gnome/Connections]
first-run=false
[org/gnome/Console]
last-window-size=(652, 481)
last-window-size=(977, 1048)
[org/gnome/Disks/benchmark]
do-write=true
num-access-samples=1000
num-samples=100
sample-size-mib=10
[org/gnome/Klotski]
level=0
@ -23,8 +48,8 @@ panel-id='world'
size=(870, 690)
[org/gnome/control-center]
last-panel='display'
window-state=(980, 640, false)
last-panel='power'
window-state=(1258, 943, false)
[org/gnome/desktop/app-folders]
folder-children=['Utilities', 'YaST']
@ -48,22 +73,71 @@ picture-uri-dark='file:///usr/share/backgrounds/gnome/vnc-d.webp'
primary-color='#77767B'
secondary-color='#000000'
[org/gnome/desktop/calendar]
show-weekdate=false
[org/gnome/desktop/input-sources]
sources=[('xkb', 'us')]
xkb-options=['terminate:ctrl_alt_bksp']
[org/gnome/desktop/interface]
clock-format='12h'
clock-show-weekday=true
color-scheme='prefer-dark'
enable-hot-corners=false
font-antialiasing='grayscale'
font-hinting='slight'
gtk-enable-primary-paste=false
show-battery-percentage=true
[org/gnome/desktop/media-handling]
autorun-x-content-ignore=@as []
autorun-x-content-open-folder=@as []
autorun-x-content-start-app=['x-content/ostree-repository']
[org/gnome/desktop/notifications]
application-children=['org-gnome-nautilus']
application-children=['org-gnome-nautilus', 'org-gnome-console', 'gnome-power-panel', 'org-gnome-evolution', 'firefox', 'gnome-network-panel', 'org-kicad-kicad', 'steam', 'org-gnome-settings']
[org/gnome/desktop/notifications/application/firefox]
application-id='firefox.desktop'
[org/gnome/desktop/notifications/application/gnome-network-panel]
application-id='gnome-network-panel.desktop'
[org/gnome/desktop/notifications/application/gnome-power-panel]
application-id='gnome-power-panel.desktop'
[org/gnome/desktop/notifications/application/gnome-printers-panel]
application-id='gnome-printers-panel.desktop'
[org/gnome/desktop/notifications/application/org-gnome-console]
application-id='org.gnome.Console.desktop'
[org/gnome/desktop/notifications/application/org-gnome-evolution]
application-id='org.gnome.Evolution.desktop'
[org/gnome/desktop/notifications/application/org-gnome-nautilus]
application-id='org.gnome.Nautilus.desktop'
[org/gnome/desktop/notifications/application/org-gnome-settings]
application-id='org.gnome.Settings.desktop'
[org/gnome/desktop/notifications/application/org-kicad-kicad]
application-id='org.kicad.kicad.desktop'
[org/gnome/desktop/notifications/application/steam]
application-id='steam.desktop'
[org/gnome/desktop/peripherals/mouse]
speed=-0.59073359073359066
[org/gnome/desktop/peripherals/touchpad]
click-method='areas'
natural-scroll=false
speed=0.40377358490566029
tap-to-click=true
two-finger-scrolling-enabled=true
[org/gnome/desktop/privacy]
old-files-age=uint32 30
recent-files-max-age=-1
@ -79,14 +153,18 @@ secondary-color='#000000'
sort-order=['org.gnome.Contacts.desktop', 'org.gnome.Documents.desktop', 'org.gnome.Nautilus.desktop']
[org/gnome/desktop/session]
idle-delay=uint32 300
idle-delay=uint32 0
[org/gnome/desktop/sound]
event-sounds=false
theme-name='__custom'
[org/gnome/desktop/wm/keybindings]
toggle-fullscreen=['F11']
[org/gnome/desktop/wm/preferences]
button-layout='appmenu:minimize,maximize,close'
num-workspaces=2
[org/gnome/epiphany]
ask-for-default=false
@ -98,9 +176,114 @@ window-size=(1024, 768)
[org/gnome/epiphany/sync]
sync-device-name='ansible’s GNOME Web on archlinux'
[org/gnome/evince/default]
window-ratio=(1.0061815494188, 0.7126567844925884)
[org/gnome/evolution-data-server]
migrated=true
[org/gnome/evolution]
version='3.48.4'
[org/gnome/evolution/addressbook]
completion-minimum-query-length=3
completion-show-address=false
[org/gnome/evolution/calendar]
allow-direct-summary-edit=false
confirm-purge=true
date-navigator-pane-position=167
month-hpane-position=169
primary-memos='system-memo-list'
primary-tasks='system-task-list'
tag-vpane-position=0.001179245283018826
time-divisions=30
week-start-day-name='monday'
work-day-friday=true
work-day-monday=true
work-day-saturday=false
work-day-sunday=false
work-day-thursday=true
work-day-tuesday=true
work-day-wednesday=true
[org/gnome/evolution/mail]
browser-close-on-reply-policy='ask'
composer-visually-wrap-long-lines=false
forward-style-name='attached'
image-loading-policy='never'
junk-check-custom-header=true
junk-empty-on-exit-days=0
junk-lookup-addressbook=false
paned-size=1630857
paned-size-sub=1105022
prompt-on-empty-junk=true
prompt-on-mark-all-read=false
prompt-on-mark-as-junk=false
reply-style-name='quoted'
to-do-bar-width=1150000
trash-empty-on-exit-days=0
[org/gnome/evolution/mail/browser-window]
height=400
maximized=false
width=600
[org/gnome/evolution/mail/composer-window]
height=500
maximized=false
width=600
[org/gnome/evolution/plugin/autocontacts]
addressbook-source='system-address-book'
gaim-addressbook-source='system-address-book'
[org/gnome/evolution/plugin/evolution-on]
hide-on-close=true
hide-on-minimize=true
[org/gnome/evolution/plugin/mail-notification]
notify-sound-beep=false
[org/gnome/evolution/plugin/prefer-plain]
mode='prefer_plain'
show-suppressed=false
[org/gnome/evolution/shell]
default-component-id='mail'
folder-bar-width=259
menubar-visible=true
[org/gnome/evolution/shell/window]
height=1001
maximized=false
width=960
x=26
y=23
[org/gnome/gnome-session]
logout-prompt=false
[org/gnome/gnome-system-monitor]
current-tab='processes'
maximized=false
network-total-in-bits=false
show-dependencies=false
show-whose-processes='user'
window-state=(878, 643, 26, 23)
[org/gnome/gnome-system-monitor/disktreenew]
col-0-visible=true
col-0-width=144
col-1-visible=true
col-1-width=234
col-6-visible=true
col-6-width=0
[org/gnome/mutter]
attach-modal-dialogs=false
dynamic-workspaces=false
[org/gnome/nautilus/icon-view]
default-zoom-level='small'
@ -108,22 +291,129 @@ default-zoom-level='small'
default-folder-viewer='list-view'
migrated-gtk-settings=true
search-filter-time-type='last_modified'
search-view='list-view'
show-delete-permanently=true
[org/gnome/nautilus/window-state]
initial-size=(890, 550)
initial-size=(890, 693)
maximized=false
[org/gnome/nm-applet/eap/0058cecb-af57-4c6a-a02b-759cd02ab3d9]
ignore-ca-cert=false
ignore-phase2-ca-cert=false
[org/gnome/nm-applet/eap/0757ecd0-31e6-48ca-a714-ab7bbd3de4ec]
ignore-ca-cert=false
ignore-phase2-ca-cert=false
[org/gnome/nm-applet/eap/104d5889-7fdd-4a08-9ffd-22ed0a58cb5d]
ignore-ca-cert=false
ignore-phase2-ca-cert=false
[org/gnome/nm-applet/eap/15f2ee2b-0b06-497a-92dc-e18424b0297e]
ignore-ca-cert=false
ignore-phase2-ca-cert=false
[org/gnome/nm-applet/eap/225b95ff-a249-4719-9014-6fe500d079d7]
ignore-ca-cert=false
ignore-phase2-ca-cert=false
[org/gnome/nm-applet/eap/27a116ad-a839-4f1b-892a-124160aa4892]
ignore-ca-cert=false
ignore-phase2-ca-cert=false
[org/gnome/nm-applet/eap/328d574d-1ac0-4f56-88e5-b51c5e3af2fa]
ignore-ca-cert=false
ignore-phase2-ca-cert=false
[org/gnome/nm-applet/eap/40c2b57e-6c0b-4df2-a680-0464fa8a9d4b]
ignore-ca-cert=false
ignore-phase2-ca-cert=false
[org/gnome/nm-applet/eap/4444f754-b538-4107-86df-ea6ba797e406]
ignore-ca-cert=false
ignore-phase2-ca-cert=false
[org/gnome/nm-applet/eap/4c093aa5-375f-408b-b52f-d0ff867489a6]
ignore-ca-cert=false
ignore-phase2-ca-cert=false
[org/gnome/nm-applet/eap/694cf296-b707-4ca4-a683-7dd548c52d20]
ignore-ca-cert=false
ignore-phase2-ca-cert=false
[org/gnome/nm-applet/eap/6bb961d6-37e2-45b8-bb99-6b2b251b0d66]
ignore-ca-cert=false
ignore-phase2-ca-cert=false
[org/gnome/nm-applet/eap/787cdb8a-dfea-4439-8024-7bb310bb1c20]
ignore-ca-cert=false
ignore-phase2-ca-cert=false
[org/gnome/nm-applet/eap/82205001-3983-4b44-bc75-87da73f4a236]
ignore-ca-cert=false
ignore-phase2-ca-cert=false
[org/gnome/nm-applet/eap/a787d6f4-9d50-4f32-8b36-72a9ac013e00]
ignore-ca-cert=false
ignore-phase2-ca-cert=false
[org/gnome/nm-applet/eap/b426ec8b-db7c-4a83-950e-57cdb5890107]
ignore-ca-cert=false
ignore-phase2-ca-cert=false
[org/gnome/nm-applet/eap/c95cdf7d-0f75-4fc4-a5d0-36aea3cb64f8]
ignore-ca-cert=false
ignore-phase2-ca-cert=false
[org/gnome/nm-applet/eap/d4af1550-7b7c-43a6-847c-b59608fb91a5]
ignore-ca-cert=false
ignore-phase2-ca-cert=false
[org/gnome/nm-applet/eap/df33669c-abad-436f-bc39-069ca44f8a59]
ignore-ca-cert=false
ignore-phase2-ca-cert=false
[org/gnome/nm-applet/eap/e2d12336-e98a-41ac-a1ae-4073f6679d4b]
ignore-ca-cert=false
ignore-phase2-ca-cert=false
[org/gnome/nm-applet/eap/e712376c-3e04-42d2-8f02-c525ab81c378]
ignore-ca-cert=false
ignore-phase2-ca-cert=false
[org/gnome/nm-applet/eap/e7552e7a-4a41-41b7-8467-a73fabd57526]
ignore-ca-cert=false
ignore-phase2-ca-cert=false
[org/gnome/recipes]
user='ansible'
[org/gnome/settings-daemon/plugins/color]
night-light-enabled=false
night-light-temperature=uint32 3663
[org/gnome/settings-daemon/plugins/power]
idle-dim=false
sleep-inactive-ac-type='nothing'
sleep-inactive-battery-timeout=1800
[org/gnome/shell]
disable-user-extensions=false
disabled-extensions=['drive-menu@gnome-shell-extensions.gcampax.github.com', 'window-list@gnome-shell-extensions.gcampax.github.com']
enabled-extensions=['apps-menu@gnome-shell-extensions.gcampax.github.com', 'dash-to-panel@jderose9.github.com']
favorite-apps=['thunar.desktop', 'org.gnome.Console.desktop', 'firefox.desktop']
enabled-extensions=['apps-menu@gnome-shell-extensions.gcampax.github.com', 'dash-to-panel@jderose9.github.com', 'appindicatorsupport@rgcjonas.gmail.com', 'clipboard-indicator@tudmotu.com']
favorite-apps=['Alacritty.desktop', 'firefox.desktop', 'org.gnome.Evolution.desktop', 'org.gnome.Nautilus.desktop']
last-selected-power-profile='power-saver'
welcome-dialog-last-shown-version='44.1'
[org/gnome/shell/extensions/clipboard-indicator]
confirm-clear=false
enable-keybindings=false
[org/gnome/shell/extensions/dash-to-panel]
animate-app-switch=false
animate-appicon-hover-animation-extent={'RIPPLE': 4, 'PLANK': 4, 'SIMPLE': 1}
animate-window-launch=false
appicon-margin=0
appicon-padding=4
available-monitors=[0]
@ -133,11 +423,13 @@ group-apps-use-launchers=true
hide-overview-on-startup=true
hotkeys-overlay-combo='TEMPORARILY'
leftbox-padding=-1
panel-anchors='{"0":"MIDDLE"}'
panel-element-positions='{"0":[{"element":"showAppsButton","visible":true,"position":"stackedTL"},{"element":"activitiesButton","visible":false,"position":"stackedTL"},{"element":"leftBox","visible":true,"position":"stackedTL"},{"element":"taskbar","visible":true,"position":"stackedTL"},{"element":"centerBox","visible":true,"position":"stackedBR"},{"element":"rightBox","visible":true,"position":"stackedBR"},{"element":"dateMenu","visible":true,"position":"stackedBR"},{"element":"systemMenu","visible":true,"position":"stackedBR"},{"element":"desktopButton","visible":false,"position":"stackedBR"}]}'
panel-lengths='{"0":100}'
panel-sizes='{"0":32}'
multi-monitors=false
panel-anchors='{"0":"MIDDLE","1":"MIDDLE"}'
panel-element-positions='{"0":[{"element":"showAppsButton","visible":false,"position":"stackedTL"},{"element":"activitiesButton","visible":false,"position":"stackedTL"},{"element":"leftBox","visible":true,"position":"stackedTL"},{"element":"taskbar","visible":true,"position":"stackedTL"},{"element":"centerBox","visible":true,"position":"stackedBR"},{"element":"rightBox","visible":true,"position":"stackedBR"},{"element":"dateMenu","visible":true,"position":"stackedBR"},{"element":"systemMenu","visible":true,"position":"stackedBR"},{"element":"desktopButton","visible":true,"position":"stackedBR"}],"1":[{"element":"showAppsButton","visible":false,"position":"stackedTL"},{"element":"activitiesButton","visible":false,"position":"stackedTL"},{"element":"leftBox","visible":true,"position":"stackedTL"},{"element":"taskbar","visible":true,"position":"stackedTL"},{"element":"centerBox","visible":true,"position":"stackedBR"},{"element":"rightBox","visible":true,"position":"stackedBR"},{"element":"dateMenu","visible":true,"position":"stackedBR"},{"element":"systemMenu","visible":true,"position":"stackedBR"},{"element":"desktopButton","visible":true,"position":"stackedBR"}]}'
panel-lengths='{"0":100,"1":100}'
panel-sizes='{"0":32,"1":32}'
primary-monitor=0
secondarymenu-contains-showdetails=false
show-appmenu=false
show-apps-icon-file=''
status-icon-padding=-1
@ -148,9 +440,9 @@ window-preview-title-position='TOP'
locations=@av []
[org/gnome/software]
check-timestamp=int64 1684415239
check-timestamp=int64 1691232832
first-run=false
flatpak-purge-timestamp=int64 1684424407
flatpak-purge-timestamp=int64 1691237972
[org/gnome/terminal/legacy]
theme-variant='dark'
@ -170,7 +462,10 @@ sort-directories-first=false
sort-order='ascending'
type-format='category'
view-type='list'
window-size=(857, 327)
window-size=(857, 632)
[org/gtk/settings/color-chooser]
selected-color=(true, 0.0, 0.0, 0.0, 1.0)
[org/gtk/settings/file-chooser]
clock-format='12h'
@ -184,5 +479,5 @@ sort-column='name'
sort-directories-first=false
sort-order='ascending'
type-format='category'
window-position=(0, 0)
window-position=(320, 18)
window-size=(1280, 945)

4
files/firefox/user-overrides.js

@ -1,3 +1,7 @@
user_pref("browser.startup.page", 1); // 1=home
user_pref("browser.newtabpage.enabled", true);
user_pref("browser.startup.homepage", "http://10.98.46.99/dokuwiki/doku.php?id=start");
user_pref("privacy.resistFingerprinting.letterboxing", false); // [HIDDEN PREF]
user_pref("browser.cache.disk.enable", true);

32
files/lxd_preseed.yml

@ -0,0 +1,32 @@
config:
images.auto_update_interval: "0"
networks:
- config:
ipv4.address: 10.98.46.1/24
ipv4.nat: "true"
ipv6.address: none
description: ""
name: lxdbr0
type: ""
project: default
storage_pools:
- config:
source: /var/lib/lxd/storage-pools/default
description: ""
name: default
driver: btrfs
profiles:
- config: {}
description: ""
devices:
eth0:
name: eth0
network: lxdbr0
type: nic
root:
path: /
pool: default
type: disk
name: default
projects: []
cluster: null

64
files/nftables.conf

@ -0,0 +1,64 @@
#!/usr/bin/nft -f
# IPv4/IPv6 Simple & Safe firewall ruleset.
# More examples in /usr/share/nftables/ and /usr/share/doc/nftables/examples/.
define NET_LXD = 10.98.46.0/24
flush ruleset
table inet filter {
chain input {
type filter hook input priority filter; policy drop;
ct state invalid drop comment "early drop of invalid connections"
ct state {established, related} accept comment "allow tracked connections"
iifname lo accept comment "allow from loopback"
ip protocol icmp accept comment "allow icmp"
#ip protocol icmp type { echo-request, echo-reply } accept comment "allow icmp"
#meta l4proto ipv6-icmp accept comment "allow icmp v6"
ip saddr $NET_LXD accept
jump in.lxdbr0
pkttype host limit rate 5/second counter reject with icmpx type admin-prohibited
counter
}
chain output {
type filter hook output priority filter; policy accept;
jump out.lxdbr0
}
chain forward {
type filter hook forward priority filter; policy drop;
jump fwd.lxdbr0
}
chain pstrt.lxdbr0 {
type nat hook postrouting priority srcnat; policy accept;
ip saddr 10.98.46.0/24 ip daddr != 10.98.46.0/24 masquerade
}
chain fwd.lxdbr0 {
ip version 4 oifname "lxdbr0" accept
ip version 4 iifname "lxdbr0" accept
}
chain in.lxdbr0 {
iifname "lxdbr0" tcp dport 53 accept
iifname "lxdbr0" udp dport 53 accept
iifname "lxdbr0" icmp type { destination-unreachable, time-exceeded, parameter-problem } accept
iifname "lxdbr0" udp dport 67 accept
}
chain out.lxdbr0 {
oifname "lxdbr0" tcp sport 53 accept
oifname "lxdbr0" udp sport 53 accept
oifname "lxdbr0" icmp type { destination-unreachable, time-exceeded, parameter-problem } accept
oifname "lxdbr0" udp sport 67 accept
}
}

28
group_vars/all.yml

@ -1,28 +1,54 @@
---
default_user: cinnaboot
default_groups: power,audio,input,users
default_groups: power,audio,input,users,lxd,wireshark
packages_dev:
- cmake
- ctags
- binutils
- gcc
- gdb
- lxd
- make
packages_shell:
- bind
- dosfstools
- htop
- lshw
- man
- mtr
- pacman-contrib
- sshfs
- tmux
- traceroute
- tree
- vim
- wireguard-tools
- wl-clipboard
packages_electronics:
pacman:
- kicad
- kicad-library
aur:
- pcb2gcode
- candle2-git
packages_desktop:
- alacritty
- audacious
- evolution
- firefox
- gnome-shell-extension-appindicator
- gnome-tweaks
- mpv
- okular
- wireshark
- xarchiver
- yt-dlp
packages_aur:
- bubblejail
- gnome-shell-extension-clipboard-indicator
- gnome-shell-extension-dash-to-panel
- tmux-plugin-manager
- xkcdpass
firefox_profiles:

3
local.yml

@ -3,11 +3,14 @@
become: true
tasks:
- import_tasks: tasks/base.yml
- import_tasks: tasks/electronics.yml
tags: electronics
- hosts: localhost
become: false
tasks:
- import_tasks: tasks/aur.yml
tags: aur
- hosts: localhost
become: true

11
tasks/base.yml

@ -9,6 +9,17 @@
state: present
name: "{{ packages_shell }}"
- name: install desktop applications
pacman:
state: present
name: "{{ packages_desktop }}"
- name: enable lxd systemd service
systemd:
name: lxd
enabled: true
state: started
- name: set xdg default user directories
copy:
src: files/user-dirs.defaults

5
tasks/desktop.yml

@ -1,9 +1,4 @@
---
- name: install desktop applications
pacman:
state: present
name: "{{ packages_desktop }}"
- name: copy dconf prefs
copy:
src: files/dconf.in

10
tasks/electronics.yml

@ -0,0 +1,10 @@
---
- name: install pacman electronics packages
pacman:
state: present
name: "{{ packages_electronics.pacman }}"
#- name: install AUR electronics packages
# pacman:
# state: present
# name: "{{ packages_electronics.pacman }}"

12
tasks/firefox.yml

@ -56,11 +56,11 @@
# we need to look at the post-insall extensions.json, and create it manually
# TODO: find out how to copy the settings for 'customised' toolbars
# TODO: still resets the default search engine to google...
- name: copy default profile contents
copy:
src: data/firefox_default_profile/
dest: "{{ ff_dir }}/{{ item.name }}"
with_items: "{{ firefox_profiles }}"
when: item.name == 'ffprofile'
#- name: copy default profile contents
# copy:
# src: data/firefox_default_profile/
# dest: "{{ ff_dir }}/{{ item.name }}"
# with_items: "{{ firefox_profiles }}"
# when: item.name == 'ffprofile'
# TODO: copy extensions for shopping/banking profiles

5
tasks/vim.yml

@ -1 +1,6 @@
---
- name: clone Vundle repo
git:
repo: https://github.com/VundleVim/Vundle.vim
dest: "{{ user_home}}/.vim/bundle/Vundle.vim"

Loading…
Cancel
Save