diff --git a/playbooks/accounts.archlinux.org.yml b/playbooks/accounts.archlinux.org.yml
index 88d714123f015294026fb8b2843ea7c39e929678..a354925db1a736f4200990f132d10845410d5926 100644
--- a/playbooks/accounts.archlinux.org.yml
+++ b/playbooks/accounts.archlinux.org.yml
@@ -5,7 +5,6 @@
   remote_user: root
   roles:
     - { role: common }
-    - { role: tools }
     - { role: firewalld }
     - { role: wireguard }
     - { role: sshd }
diff --git a/playbooks/all-hosts-basic.yml b/playbooks/all-hosts-basic.yml
index 61e3dfd3521468ebcdc247d5004ae78c6f47f0bd..ebe5001d9361b2f9cd2879dca396e9e87156ea65 100644
--- a/playbooks/all-hosts-basic.yml
+++ b/playbooks/all-hosts-basic.yml
@@ -5,7 +5,6 @@
   remote_user: root
   roles:
     - { role: common }
-    - { role: tools }
     - { role: firewalld }
     - { role: wireguard }
     # reconfiguring sshd may break the AUR on luna (unchecked)
diff --git a/playbooks/archive-mirrors.yml b/playbooks/archive-mirrors.yml
index 946eadbcc60bde3b4e95b0a4c3370f2dd408a5fd..dabc6ca24d10e5cf5ce47a2c020ec4c69e2e0335 100644
--- a/playbooks/archive-mirrors.yml
+++ b/playbooks/archive-mirrors.yml
@@ -4,7 +4,6 @@
   remote_user: root
   roles:
     - { role: common }
-    - { role: tools }
     - { role: firewalld }
     - { role: wireguard }
     - { role: hardening }
diff --git a/playbooks/archlinux.org.yml b/playbooks/archlinux.org.yml
index b9c7d845a667777128f8d951a39805da232dec79..9b72b7be795c5da07f520261b1f5edec9db7df5e 100644
--- a/playbooks/archlinux.org.yml
+++ b/playbooks/archlinux.org.yml
@@ -15,7 +15,6 @@
   remote_user: root
   roles:
     - { role: common }
-    - { role: tools }
     - { role: sshd }
     - { role: root_ssh }
     - { role: borg_client, tags: ["borg"] }
diff --git a/playbooks/aur-dev.archlinux.org.yml b/playbooks/aur-dev.archlinux.org.yml
index 968ca0aec96e76337c18c858f2ca7a881d6c98d4..d2ad6600d00eea968c88e9838abafdfec4dd343b 100644
--- a/playbooks/aur-dev.archlinux.org.yml
+++ b/playbooks/aur-dev.archlinux.org.yml
@@ -5,7 +5,6 @@
   remote_user: root
   roles:
     - { role: common }
-    - { role: tools }
     - { role: sshd, sshd_enable_includes: true }
     - { role: root_ssh }
     - { role: certbot }
diff --git a/playbooks/aur.archlinux.org.yml b/playbooks/aur.archlinux.org.yml
index 804297b146537ca9419496f8ba1ab4604dedb318..5c313e949a9db559905631d8ea9baa3d6ae78cf9 100644
--- a/playbooks/aur.archlinux.org.yml
+++ b/playbooks/aur.archlinux.org.yml
@@ -5,7 +5,6 @@
   remote_user: root
   roles:
     - { role: common }
-    - { role: tools }
     - { role: sshd, sshd_enable_includes: true }
     - { role: root_ssh }
     - { role: prometheus_exporters }
diff --git a/playbooks/bbs.archlinux.org.yml b/playbooks/bbs.archlinux.org.yml
index 85587db827183a7a27fe54dae561954701e86255..b4d42be3d43afa4cbd3e0ee55e82da0705d221a8 100644
--- a/playbooks/bbs.archlinux.org.yml
+++ b/playbooks/bbs.archlinux.org.yml
@@ -5,7 +5,6 @@
   remote_user: root
   roles:
     - { role: common }
-    - { role: tools }
     - { role: sshd }
     - { role: root_ssh }
     - { role: certbot }
diff --git a/playbooks/bugs.archlinux.org.yml b/playbooks/bugs.archlinux.org.yml
index faa377abdfc99566583551693ca043eb0b4d6737..af39d94488037513f33bbc82f4ad938591d4fe2e 100644
--- a/playbooks/bugs.archlinux.org.yml
+++ b/playbooks/bugs.archlinux.org.yml
@@ -5,7 +5,6 @@
   remote_user: root
   roles:
     - { role: common }
-    - { role: tools }
     - { role: sshd }
     - { role: root_ssh }
     - { role: certbot }
diff --git a/playbooks/dashboards.archlinux.org.yml b/playbooks/dashboards.archlinux.org.yml
index 4bc84c9d42fc4ec74d2ab08c414f0b00f68dc8b2..3d744a09b9fa0650547e499de78028585c369f79 100644
--- a/playbooks/dashboards.archlinux.org.yml
+++ b/playbooks/dashboards.archlinux.org.yml
@@ -5,7 +5,6 @@
     - { role: firewalld }
     - { role: wireguard }
     - { role: common }
-    - { role: tools }
     - { role: sshd }
     - { role: root_ssh }
     - { role: hardening }
diff --git a/playbooks/gitlab.archlinux.org.yml b/playbooks/gitlab.archlinux.org.yml
index 7979379eff23d14988412ba361b96ae686c7517b..b5847e3973ba50b7268e013ab1db2353ad03a055 100644
--- a/playbooks/gitlab.archlinux.org.yml
+++ b/playbooks/gitlab.archlinux.org.yml
@@ -5,7 +5,6 @@
   remote_user: root
   roles:
     - { role: common }
-    - { role: tools }
     - { role: firewalld }
     - { role: wireguard }
     - { role: sshd }
diff --git a/playbooks/homedir.archlinux.org.yml b/playbooks/homedir.archlinux.org.yml
index f1d5294f6a447a55c3a64553aa5d93aaa6c190d0..9ec5d97c8325286703003ea3d6b5f8c29650e692 100644
--- a/playbooks/homedir.archlinux.org.yml
+++ b/playbooks/homedir.archlinux.org.yml
@@ -5,7 +5,6 @@
   remote_user: root
   roles:
     - { role: common }
-    - { role: tools }
     - { role: sshd }
     - { role: root_ssh }
     - { role: certbot }
diff --git a/playbooks/lists.archlinux.org.yml b/playbooks/lists.archlinux.org.yml
index af2e515c2f290eb399cca091a696e47f32b39cd8..298aeb1dce25c6c9d32891376925a3bdec303ebb 100644
--- a/playbooks/lists.archlinux.org.yml
+++ b/playbooks/lists.archlinux.org.yml
@@ -5,7 +5,6 @@
     - { role: common }
     - { role: firewalld }
     - { role: wireguard }
-    - { role: tools }
     - { role: sshd }
     - { role: root_ssh }
     - { role: hardening }
diff --git a/playbooks/mail.archlinux.org.yml b/playbooks/mail.archlinux.org.yml
index 36cad509c681de29299ec38eb23c86ed08f42cf8..08ea63b0281bf08f0fb8cc68e475567b413896e9 100644
--- a/playbooks/mail.archlinux.org.yml
+++ b/playbooks/mail.archlinux.org.yml
@@ -3,7 +3,6 @@
   remote_user: root
   roles:
     - { role: common }
-    - { role: tools }
     - { role: sshd }
     - { role: root_ssh }
     - { role: borg_client, tags: ['borg'] }
diff --git a/playbooks/man.archlinux.org.yml b/playbooks/man.archlinux.org.yml
index 22e5367b23cfe24b7def413799022d2f52afde40..6a1535e930b6cd7d6c829f9c9cc24b54deaaa06d 100644
--- a/playbooks/man.archlinux.org.yml
+++ b/playbooks/man.archlinux.org.yml
@@ -7,7 +7,6 @@
     - { role: firewalld }
     - { role: wireguard }
     - { role: common }
-    - { role: tools }
     - { role: sshd }
     - { role: root_ssh }
     - { role: hardening }
diff --git a/playbooks/matrix.archlinux.org.yml b/playbooks/matrix.archlinux.org.yml
index 98a6fc777d303e08eb5cc8a3ea07ce253ca18290..7d7f3da0ace977f7d44c0c7b14dab197ea588666 100644
--- a/playbooks/matrix.archlinux.org.yml
+++ b/playbooks/matrix.archlinux.org.yml
@@ -5,7 +5,6 @@
   remote_user: root
   roles:
     - { role: common }
-    - { role: tools }
     - { role: firewalld }
     - { role: wireguard }
     - { role: sshd }
diff --git a/playbooks/md.archlinux.org.yml b/playbooks/md.archlinux.org.yml
index 497fe76f1731e7613f724f98e48b50e20c245a38..565ece24942485970bc9f7d1ad09f9941d1d8146 100644
--- a/playbooks/md.archlinux.org.yml
+++ b/playbooks/md.archlinux.org.yml
@@ -5,7 +5,6 @@
   remote_user: root
   roles:
     - { role: common }
-    - { role: tools }
     - { role: firewalld }
     - { role: wireguard }
     - { role: sshd }
diff --git a/playbooks/mirrors.yml b/playbooks/mirrors.yml
index 632a0b6a4318aad4e46e650dd798c28c13551267..b3a7b61e8946ca23fd4ada0d7a013ee188fba22c 100644
--- a/playbooks/mirrors.yml
+++ b/playbooks/mirrors.yml
@@ -4,7 +4,6 @@
   remote_user: root
   roles:
     - { role: common }
-    - { role: tools }
     - { role: sshd }
     - { role: root_ssh }
     - { role: certbot }
diff --git a/playbooks/monitoring.archlinux.org.yml b/playbooks/monitoring.archlinux.org.yml
index 121be67c74fdee01f1f53382dca139b08694da22..a4d4ebe8c38f686149f8118c53028936907bbbc0 100644
--- a/playbooks/monitoring.archlinux.org.yml
+++ b/playbooks/monitoring.archlinux.org.yml
@@ -5,7 +5,6 @@
     - { role: firewalld }
     - { role: wireguard }
     - { role: common }
-    - { role: tools }
     - { role: sshd }
     - { role: root_ssh }
     - { role: hardening }
diff --git a/playbooks/patchwork.archlinux.org.yml b/playbooks/patchwork.archlinux.org.yml
index 7c766c8a81ce11090327e4bf72c566a3b686d039..c68ca5f59ecf142c4f2289725f627683a59be469 100644
--- a/playbooks/patchwork.archlinux.org.yml
+++ b/playbooks/patchwork.archlinux.org.yml
@@ -5,7 +5,6 @@
   remote_user: root
   roles:
     - { role: common }
-    - { role: tools }
     - { role: sshd }
     - { role: root_ssh }
     - { role: borg_client, tags: ["borg"] }
diff --git a/playbooks/phrik.yml b/playbooks/phrik.yml
index 55e4cc18cc26e31941e7fbe2b3cffe2a9427d4b0..ac912955def477b6e9d834020bcb81ee49314e12 100644
--- a/playbooks/phrik.yml
+++ b/playbooks/phrik.yml
@@ -5,7 +5,6 @@
   remote_user: root
   roles:
     - { role: common }
-    - { role: tools }
     - { role: archusers }
     - { role: bugbot }
     - { role: phrik }
diff --git a/playbooks/quassel.archlinux.org.yml b/playbooks/quassel.archlinux.org.yml
index d107e25f935393634466c5ee1c74370d3e4e772f..7674a80636fe0ebe02a4959aa2ced2fd2b094a6c 100644
--- a/playbooks/quassel.archlinux.org.yml
+++ b/playbooks/quassel.archlinux.org.yml
@@ -5,7 +5,6 @@
   remote_user: root
   roles:
     - { role: common }
-    - { role: tools }
     - { role: firewalld }
     - { role: wireguard }
     - { role: sshd }
diff --git a/playbooks/rebuilderd-workers.yml b/playbooks/rebuilderd-workers.yml
index b1deff2304c72c90f4e6c06eb482fb22ba2af9bf..c92c0f27c577f388d6a962c8777523a7d0dfbd69 100644
--- a/playbooks/rebuilderd-workers.yml
+++ b/playbooks/rebuilderd-workers.yml
@@ -5,7 +5,6 @@
   remote_user: root
   roles:
     - { role: common }
-    - { role: tools }
     - { role: firewalld }
     - { role: wireguard }
     - { role: sshd }
diff --git a/playbooks/redirect.archlinux.org.yml b/playbooks/redirect.archlinux.org.yml
index 873e2437c0a4c39d989282d1b6bd3c2a70cdb713..f2d15df759f53c65a5674998d05a6effbef97b95 100644
--- a/playbooks/redirect.archlinux.org.yml
+++ b/playbooks/redirect.archlinux.org.yml
@@ -3,7 +3,6 @@
   remote_user: root
   roles:
     - { role: common }
-    - { role: tools }
     - { role: firewalld }
     - { role: wireguard }
     - { role: sshd }
diff --git a/playbooks/reproducible.archlinux.org.yml b/playbooks/reproducible.archlinux.org.yml
index e5462adbc7957b36863b164da07dfd2907db3f9e..6fe30895c90cb715f61ca7587eaa86861e4dd118 100644
--- a/playbooks/reproducible.archlinux.org.yml
+++ b/playbooks/reproducible.archlinux.org.yml
@@ -5,7 +5,6 @@
   remote_user: root
   roles:
     - { role: common }
-    - { role: tools }
     - { role: firewalld }
     - { role: wireguard }
     - { role: sshd }
diff --git a/playbooks/security.archlinux.org.yml b/playbooks/security.archlinux.org.yml
index 39821cef42bcba37022d148ab5c3fcee08d31981..74f13e91fcb93b1ecca9664308f93649339b1efe 100644
--- a/playbooks/security.archlinux.org.yml
+++ b/playbooks/security.archlinux.org.yml
@@ -5,7 +5,6 @@
   remote_user: root
   roles:
     - { role: common }
-    - { role: tools }
     - { role: sshd }
     - { role: root_ssh }
     - { role: borg_client, tags: ["borg"] }
diff --git a/playbooks/state.archlinux.org.yml b/playbooks/state.archlinux.org.yml
index b0a4b68e1af10118a4ad9f2d216c18283c1a4ac4..38def502ed07f1182f9f73720f01c459b0ce7da3 100644
--- a/playbooks/state.archlinux.org.yml
+++ b/playbooks/state.archlinux.org.yml
@@ -5,7 +5,6 @@
   remote_user: root
   roles:
     - { role: common }
-    - { role: tools }
     - { role: firewalld }
     - { role: wireguard }
     - { role: sshd }
diff --git a/playbooks/wiki.archlinux.org.yml b/playbooks/wiki.archlinux.org.yml
index 543d3f2d0691c463719f9a297358fc38b5e27e43..67fd9ed67cfc2d29041b2f5e97833e6d1abb1b90 100644
--- a/playbooks/wiki.archlinux.org.yml
+++ b/playbooks/wiki.archlinux.org.yml
@@ -7,7 +7,6 @@
     - { role: firewalld }
     - { role: wireguard }
     - { role: common }
-    - { role: tools }
     - { role: sshd }
     - { role: root_ssh }
     - { role: borg_client, tags: ["borg"] }
diff --git a/roles/common/tasks/main.yml b/roles/common/tasks/main.yml
index 9dc76ec71a9968c5ea179d4fd2786ac10f00e0da..878866babe3e08e77281c03972b1fb4ac0443f96 100644
--- a/roles/common/tasks/main.yml
+++ b/roles/common/tasks/main.yml
@@ -1,5 +1,11 @@
 ---
 
+- name: install essential tools
+  pacman: name=vim,nano,tmux,htop,rsync,vnstat state=present
+
+- name: start and enable vnstatd
+  service: name=vnstat enabled=yes state=started
+
 - name: install inetutils for hostname
   pacman: name=inetutils state=present
 
diff --git a/roles/tools/tasks/main.yml b/roles/tools/tasks/main.yml
index 9fb5e46b9ca2f8d43203ce7c373e990812eb86c0..b2cb7e4505f580ead24b7b25cbb2d9a11eb02394 100644
--- a/roles/tools/tasks/main.yml
+++ b/roles/tools/tasks/main.yml
@@ -1,67 +1,10 @@
-- name: install sysadmin tools
-  pacman:
-    state: present
-    name:
-      - lsof
-      - psmisc
-      - htop
-      - nethogs
-      - iftop
-      - rsync
-      - tmux
-      - mtr
-      - sshfs
-      - dfc
-      - tree
-      - dstat
-      - dmidecode
-      - net-tools
-      - ncdu
-      - nmap
-      - sysstat
-      - iptraf-ng
-      - vnstat
-      - screen
-      - tcpdump
-      - sudo
-      - glances
-      - cloud-utils
-
 - name: install misc utils
   pacman:
     state: present
     name:
-      - zsh
-      - colordiff
-      - multitail
-      - httpie
-      - the_silver_searcher
-      - ripgrep
-      - ipcalc
-      - calc
-      - wget
-      - neovim
-      - python-pynvim
-      - vim
-      - parallel
       - bash-completion
-      - socat
-      - pv
-      - ccze
-      - rxvt-unicode-terminfo
-      - p7zip
-      - unzip
-      - setconf
+      - zsh
       - fish
-      - bat
-      - hexyl
-      - stow
-      - fzf
-      - fasd
-      - ranger
-      - vifm
       - git
-      - perl-term-readkey
-
-- name: start vnstatd
-  service: name=vnstat state=started enabled=true
+      - parallel
+      - nnn  # Added for it's screen reader support