diff --git a/defaults/main.yml b/defaults/main.yml
index a75f757293c1151816a33a5bb007fd2ff7a07516..e086b808d4af6618aeeb92fc72d8c383a4a61ee6 100644
--- a/defaults/main.yml
+++ b/defaults/main.yml
@@ -1,3 +1,6 @@
+basic_tools:
+  install_packages: True
+
 default_repos:
   debian:
     bookworm: &debian_default_repos
diff --git a/tasks/main.yml b/tasks/main.yml
index c8174cf69f16ed0973cbd709a9dccdd3e90ac010..2099436f28bbda7574c5797d4ee24839d7fdeffc 100644
--- a/tasks/main.yml
+++ b/tasks/main.yml
@@ -3,6 +3,8 @@
   set_fact:
     package_distro: "{% if ansible_lsb.id|d('') == 'Raspbian' %}raspbian{% else %}{{ ansible_distribution|lower }}{% endif %}"
 - name: install default packages and repos
+  when:
+    - basic_tools.install_packages
   include_role:
     name: packages
   vars:
@@ -19,7 +21,7 @@
 - name: copy vimrc
   copy:
     src: dotfiles/vimrc
-    dest: /etc/vim/vimrc
+    dest: "{% if ansible_facts['distribution'] != 'Archlinux' %}/etc/vim/vimrc{% else %}/etc/vimrc{% endif %}"
     mode: 0644
 - name: copy zshrc
   copy:
@@ -44,11 +46,15 @@
     mode: 0644
 
 - name: enforce vim as editor
+  when:
+    - ansible_facts['distribution'] != 'Archlinux'
   community.general.alternatives:
     name: editor
     path: /usr/bin/vim.basic
 
 - name: remove /etc/apt/sources.list
+  when:
+    - ansible_facts['distribution'] != 'Archlinux'
   copy:
     dest: /etc/apt/sources.list
     content: "# managed by ansible\n"