{"id":20932753,"url":"https://github.com/rtucek/dotfiles","last_synced_at":"2025-05-13T20:30:46.360Z","repository":{"id":43444533,"uuid":"83373798","full_name":"rtucek/dotfiles","owner":"rtucek","description":"My dotfiles","archived":false,"fork":false,"pushed_at":"2025-05-11T18:18:16.000Z","size":1478,"stargazers_count":3,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-05-11T19:27:57.182Z","etag":null,"topics":["chezmoi","configuration","dotfiles","gitconfig","tmux-conf","vimrc"],"latest_commit_sha":null,"homepage":"","language":"Shell","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/rtucek.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2017-02-28T01:07:38.000Z","updated_at":"2025-05-11T18:18:20.000Z","dependencies_parsed_at":"2023-09-30T01:19:52.143Z","dependency_job_id":"d17fc030-6aea-43c0-ae3b-652dcecd7d16","html_url":"https://github.com/rtucek/dotfiles","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rtucek%2Fdotfiles","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rtucek%2Fdotfiles/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rtucek%2Fdotfiles/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rtucek%2Fdotfiles/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/rtucek","download_url":"https://codeload.github.com/rtucek/dotfiles/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":254020902,"owners_count":22000805,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["chezmoi","configuration","dotfiles","gitconfig","tmux-conf","vimrc"],"created_at":"2024-11-18T21:53:15.567Z","updated_at":"2025-05-13T20:30:46.352Z","avatar_url":"https://github.com/rtucek.png","language":"Shell","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Dotfiles\n\nMy dotfiles - use them and contribute your personal changes/suggestions.\n\n\n## Installation\n\nThe specifically target Arch-alike distributions. For instance, the\ninstructions here should also work for Manjaro, which builds upon Arch.\n\nMost importantly, it's require to install a package manager, which\nmakes use of the AUR. [yay](https://github.com/Jguer/yay) is by far\nthe best one I've ever seen and can simply be installed like so.\n\n```bash\nsudo pacman -S --needed git base-devel \u0026\u0026 git clone https://aur.archlinux.org/yay.git \u0026\u0026 cd yay \u0026\u0026 makepkg -si\n```\n\nThen, you'd want to install all relevant packages from the [General\npackages](#general-packages), [Fonts](#fonts) and [AUR](#aur) sections.\n\nDotfiles are managed by [`chezmoi`](https://github.com/twpayne/chezmoi). Run\n`chezmoi init rtucek` in order to download all dotfiles, followed by `chezmoi\ncd` for jumping directly to the git repo of the dotfiles.\n\nA couple of template variables have to be set for proper configuration.\nUse the sample config file from `dot_config/chezmoi/chezmoi.toml.sample` and\ncopy it to `~/.config/chezmoi/chezmoi.toml`, then set the value accordingly and\nrun `chezmoi apply` for having the actual dotfiles being put a their right\nplace.\n\nRefer to [chezmoi's docs](https://www.chezmoi.io/) for further details.\n\n\n## Contribution\n\nPull requests are welcome!\n\n\n## Dependencies\n\nThe dotfiles are optimized for the following setup.\n\n\n### General packages\n\n- alsa-utils\n- arandr\n- arch-audit\n- autorandr [[8]](#autorandr-post-installation-activation-[8])\n- bash-completion\n- bat [[1]](#syntax-highlight-with-bat-and-cat-[1])\n- bluetui\n- bluez\n- bluez-utils\n- bolt [[4]](#fix-hotplug-issue-with-thunderbolt-[4])\n- brightnessctl\n- chezmoi\n- ctags\n- devspace-bin\n- diff-so-fancy\n- dmidecode\n- docker [[2]](#docker-post-installation-[2])\n- docker-compose\n- dog\n- dunst\n- firefox\n- fwupd\n- fzf\n- gimp\n- git-delta [[1]](#syntax-highlight-with-bat-and-cat-[1])\n- glab\n- globalprotect-openconnect\n- gnome-keyring\n- gnu-netcat\n- go\n- gparted\n- gufw\n- gzip\n- helm\n- helvum\n- httpie\n- i3-battery-popup-git\n- imagemagick\n- inxi\n- ipcalc\n- jless\n- jq\n- k9s\n- kubectl\n- lastpass-cli\n- less\n- litecli\n- lsb-release\n- lshw\n- lsof\n- man-db\n- mkcert\n- msr-tools\n- mtr\n- mycli\n- mysql-workbench\n- neovim\n- networkmanager-openconnect\n- nitrogen\n- openconnect\n- openssh\n- osquery\n- pcmanfm\n- percona-server-clients\n- percona-toolkit\n- pgcli\n- picom\n- pigz\n- pipewire [[7]](#pipewire-post-installation-activation-[7])\n- pipewire-pulse\n- playerctl\n- polkit-gnome\n- polybar [[6]](#permissions-for-polybar-[6])\n- postgresql-client\n- pw-volume\n- pwgen\n- python-pip\n- python-pipx\n- python-pynvim\n- ranger\n- rofi\n- rsync\n- ruby-erb\n- scrot\n- snapd\n- sound-theme-freedesktop\n- speedtest-cli\n- stern\n- strongswan\n- tcpdump\n- tela-circle-icon-theme-manjaro\n- terminator\n- testssl.sh\n- the_silver_searcher\n- thunderbird\n- tmux [[3]](#install-tmux-plugins-[3])\n- torbrowser-launcher\n- tree\n- tree-sitter-cli\n- udiskie\n- udisks2\n- ufw [[5]](#ufw-post-install-actions-[5])\n- unzip\n- usbutils\n- veracrypt\n- vi\n- whois\n- wireplumber\n- xclip\n- xorg-xinput\n- xorg-xkill\n- xss-lock\n- yay\n- yubioath-desktop\n\n\n### FS support\n\n- bcachefs-tools\n- btrfs-progs\n- btrfs-tools\n- cryptsetup\n- dosfstools\n- exfatprogs\n- hfsprogrs\n- hfsutils\n- lvm2\n- mtools\n- ntfs-3g\n- ntfs-progrs\n\n\n### Fonts\n\n- noto-fonts\n- noto-fonts-cjk\n- noto-fonts-emoji\n- ttf-dejavu\n- ttf-font-awesome\n- ttf-input-nerd\n- ttf-joypixels\n\n\n### AUR\n\n- 1password\n- 1password-cli\n- auto-cpufreq [[9]](http://localhost:8530/1#auto-cpufreq-post-installation-activation-[9])\n- certigo\n- csvtools-git\n- google-chrome\n- kind-bin\n- nvm\n- postman-bin\n- tmuxinator\n- unimatrix-git\n- xidlehook\n\n\n### Snap packages\n\nn/a\n\n\n### Composer\n\n```bash\ncomposer global require consolidation/cgr\n```\n\n\n### nvm\n\nMost important commands are:\n\n```bash\nnvm install --lts # Installing most recent LTS version\nnvm alias default \"lts/*\" # Alias most recent lts node version as default\nnvm use default # Use most recent version\nnvm install-latest-npm # Upgrade npm to the latest version\n```\n\n\n### npm\n\nThe following npm packages are considered as standard.\nInstall them via `npm install --global [packages]`:\n\n- @vue/cli\n- create-react-app\n- neovim\n\n\n### yarn\n\nInstall yarn via npm. Let yarn manage itself by re-installing yarn globally and\nremoving it afterwards via npm again.\n\n```\nnpm -g install yarn\nyarn global add yarn\nnpm -g remove yarn\n```\n\n\n### PIP\n\n```bash\npipx install python-language-server # (coc-python)\n```\n\n\n### Bash completion\n\n- composer (`cgr require bamarni/symfony-console-autocomplete`)\n- tmux (https://github.com/imomaliev/tmux-bash-completion/blob/master/completions/tmux)\n- yarn (https://github.com/dsifford/yarn-completion/blob/master/yarn-completion.bash)\n\n\n## Addendum\n\n### Syntax highlight with bat and cat [1]\n\nAs a special case, in order to have syntax highlighting for PHP work with\n`bat` in combination with `delta` diffs, refer to [these\ninstructions](https://github.com/dandavison/delta/issues/162#issuecomment-625952288).\n\nIt's necessary to perform this step, whenever `bat` gets updated.\n\n\n### Docker post-installation [2]\n\nBy default, the docker installation requires some manual actions. For instance,\nthe docker daemon is not started automatically. It's required to run `sudo\nsystemctl start docker` after the installation and likewise, it's required to\nrun every docker command with sudo. For convenience, you'd typically want to run\nthese commands once ([based on Docker's official\ndocs](https://docs.docker.com/engine/install/linux-postinstall/):\n\n```bash\n# Start docker and containerd daemon upon boot\nsudo systemctl enable --now docker.service\nsudo systemctl enable --now containerd.service\n\n# Run docker commands root-less\nsudo groupadd docker\nsudo usermod -aG docker $USER\nnewgrp docker\n```\n\n\n### Install tmux plugins [3]\n\nAfter tmux has been installed, run the following commands in order to install\nand setup tmux plugin manager ([TPM](https://github.com/tmux-plugins/tpm)) for\nthe first time. The following commands below will clone TPM's source code and\ninstall it at the right location, then type; `Ctrl + SPACE + I` in order to\nactually install tmux plugins.\n\n```bash\ngit clone https://github.com/tmux-plugins/tpm ~/.tmux/plugins/tpm\n```\n\n\n### sudo password indicator\n\nWhen using `sudo`, it's convenient to have a masked password indicator in case\nsudo requires to enter the user's password. In order to have a password\nindicator, simply run `sudo visudo` and add the following lines below.\n\n```diff\n+# Have a masked password indicator, when typing the password for sudo\n+Defaults pwfeedback\n```\n\n\n### Pacman tweaks\n\nThere are some nice2have tweaks for pacman. Simply add these lines to the\n`/etc/pacman.conf` file (or uncomment existing ones).\n\n```diff\n+# Have colored output\n+Color\n+# Add fancy pacman gimmick to progres bar\n+ILoveCandy\n+# Multiple simultaneous downloads\n+ParallelDownloads = 5\n```\n\n\n### Faillock account lockout\n\nFaillock with cause a temporary account lock for users, who mistype their\npassword too often. Usually, the default values are a lockout of 10 minutes\nafter 3 failed attempts. In case this is unwanted, disable faillock like so by\nmodifying `/etc/security/faillock.conf` (source: [Arch Wiki -\nSecurity](https://wiki.archlinux.org/title/Security#Lock_out_user_after_three_failed_login_attempts)):\n\n```diff\n #\n # Only track failed user authentications attempts for local users\n # in /etc/passwd and ignore centralized (AD, IdM, LDAP, etc.) users.\n # The `faillock` command will also no longer track user failed\n # authentication attempts. Enabling this option will prevent a\n # double-lockout scenario where a user is locked out locally and\n # in the centralized mechanism.\n # Enabled if option is present.\n # local_users_only\n #\n # Deny access if the number of consecutive authentication failures\n # for this user during the recent interval exceeds n tries.\n # The default is 3.\n-# deny = 3\n+deny = 0\n #\n # The length of the interval during which the consecutive\n # authentication failures must happen for the user account\n # lock out is \u003creplaceable\u003en\u003c/replaceable\u003e seconds.\n # The default is 900 (15 minutes).\n # fail_interval = 900\n #\n\n```\n\n\n### Handling lid-switch, power key pressing and similar\n\nThe handling of certain hardware events like lid-switch, short or long pressing\nof power key, etc., are handled by systemd's `systemd-logind.service`.\n\nThe default settings may be viewed by running `systemd-analyze cat-config\nsystemd/logind.conf`.\n\nIn order to override default behavior, create a drop-in for the config file\nby adding overrides into any `/etc/systemd/logind.conf.d/*.conf`.\nThis is typically done by:\n\n```bash\nsudo mkdir -p /etc/systemd/logind.conf.d\nsystemd-analyze cat-config systemd/logind.conf | sudo tee /etc/systemd/logind.conf.d/90-logind.conf\n```\n\nThen, open `/etc/systemd/logind.conf.d/90-logind.conf` and leave only your\noverrides un-commented. Below are some sample customizations.\n\n```diff\n--- /etc/systemd/logind.conf\n+++ /etc/systemd/logind.conf.d/90-logind.conf\n@@ -1,3 +1,4 @@\n+# /etc/systemd/logind.conf\n #  This file is part of systemd.\n #\n #  systemd is free software; you can redistribute it and/or modify it under the\n@@ -24,18 +25,18 @@\n #KillExcludeUsers=root\n #InhibitDelayMaxSec=5\n #UserStopDelaySec=10\n-#SleepOperation=suspend-then-hibernate suspend\n-#HandlePowerKey=poweroff\n-#HandlePowerKeyLongPress=ignore\n+SleepOperation=suspend-then-hibernate suspend\n+HandlePowerKey=suspend\n+HandlePowerKeyLongPress=poweroff\n #HandleRebootKey=reboot\n #HandleRebootKeyLongPress=poweroff\n #HandleSuspendKey=suspend\n #HandleSuspendKeyLongPress=hibernate\n #HandleHibernateKey=hibernate\n #HandleHibernateKeyLongPress=ignore\n-#HandleLidSwitch=suspend\n-#HandleLidSwitchExternalPower=suspend\n-#HandleLidSwitchDocked=ignore\n+HandleLidSwitch=suspend\n+HandleLidSwitchExternalPower=suspend\n+HandleLidSwitchDocked=suspend\n #HandleSecureAttentionKey=secure-attention-key\n #PowerKeyIgnoreInhibited=no\n #SuspendKeyIgnoreInhibited=no\n```\n\nFinally, run `sudo systemctl reload systemd-logind.service` in order to have any\nchanges being applied.\n\nLinks:\n- [LOGIND.CONF(5)](https://man.archlinux.org/man/logind.conf.5.en)\n- [SYSTEMD-LOGIND.SERVICE(8)](https://man.archlinux.org/man/systemd-logind.8)\n\n\n### CPU clock modulation fix\n\nSome Dell XPS devices may become slow after system wakeups. This is due to\naggressive [suspend settings in clock modulation\nsettings](https://wiki.archlinux.org/title/Dell_XPS_13_2-in-1_(7390)#Sleep/Suspend_causes_slow_system).\n\nTo fix this issue, add the systemd unit file to\n`/etc/systemd/system/msr-fix.service`, then enable it via `sudo systemctl enable\nmsr-fix.service`. The unit file will explicitly reset the necessary CPU\nregister.\n\n```ini\n[Unit]\nDescription=Fix MSR after wakeup\nAfter=suspend.target\n\n[Service]\nUser=root\nType=oneshot\nExecStart=wrmsr -a 0x19a 0x0\n\n[Install]\nWantedBy=suspend.target\n```\n\n\n### Fix hotplug issue with Thunderbolt [4]\n\nGiven the following symptoms:\n\u003e Devices, connected via Thunderbolt don't work if \"hot plugged in\" (that is,\n\u003e after the OS has booted). However, if the device is connected at cold boot\n\u003e time, the device works mystically. In particular, to a Dock connected devices\n\u003e like keyboards and mouses don't assume to have any powered state (e.g. the\n\u003e laser pointer of a mouse remains switched off).\n\nThis is due to the [OS' security\nsettings](https://wiki.archlinux.org/title/Thunderbolt#User_device_authorization).\nThe OS - by default - protects against [DMA\nattacks](https://en.wikipedia.org/wiki/DMA_attack) such as\n[Thunderstrike](https://trmm.net/Thunderstrike_2/), by setting the security mode\nto `user` or `secure`. So the in some form or another, we have to \"approve\" the\nconnected device.\n\nOne way to simply get away with it, is to add a udev rule to\n`/etc/udev/rules.d/99-removable.rules`, which just authorizes essentially every\nhot-plugged Thunderbolt device:\n\n```\nACTION==\"add\", SUBSYSTEM==\"thunderbolt\", ATTR{authorized}==\"0\", ATTR{authorized}=\"1\"\n```\n\nThe rule will become effective after the next reboot, however you can also avoid\na reboot by live-reloading udev rules:\n\n```bash\nsudo udevadm control --reload-rules\nsudo udevadm trigger\n```\n\nHowever, a much simpler approach would be actually authorizing the device via\n`bolt`.\n\nSources:\n- [Thunderbolt](https://wiki.archlinux.org/title/Thunderbolt)\n- [Thunderbolt - udev rule (Arch Wiki)](https://wiki.archlinux.org/title/Thunderbolt#Automatically_connect_any_device)\n- [Live-reload udev rule (unix.stackexchange.com)](https://unix.stackexchange.com/a/39371/213414)\n\n\n### GPG keyservers\n\nMy GPG keys are generally distributed via the following public keyservers:\n- keys.openpgp.org\n- keyserver.ubuntu.com\n- pgp.mit.edu\n\n\n### Fix automatic wake ups from suspend\n\nFor some Tuxedo Laptops, the Laptop wakes up automatically within a couple of\nseconds. This is due to a bug in the BIOS, which can be seen in the syslog,\nbased on these log entries:\n\n```\n[...]\nxxx xx xx:xx:xx archlinux kernel: ACPI BIOS Error (bug): Could not resolve symbol [\\_SB.ACDC.RTAC], AE_NOT_FOUND (20230628/psargs-332)\nxxx xx xx:xx:xx archlinux kernel: ACPI Error: Aborting method \\_SB.PEP._DSM due to previous error (AE_NOT_FOUND) (20230628/psparse-529)\n[...]\n```\n\nFor mitigation, the kernel parameter `acpi.ec_no_wakeup=1` must be set in\n`/etc/default/grub`:\n\n```diff\n-GRUB_CMDLINE_LINUX_DEFAULT=\"quiet splash\"\n+GRUB_CMDLINE_LINUX_DEFAULT=\"quiet splash acpi.ec_no_wakeup=1\"\n```\n\n\u003e Don't forget to run `sudo update-grub` in order re-build and deploy the grub\n\u003e config, so that it becomes effective from the next system boot onwards..\n\nFor testing purpose, the `acpi.ec_no_wakeup=1` parameter can also be set at\npost-boot with the sysfs interface:\n\n```bash\n# Read current state of acpi.ec_no_wakeup via ...\ncat /sys/module/acpi/parameters/ec_no_wakeup\n# ... Y -\u003e 1 (on); N -\u003e 0 (off)\n# Set the value by writing 1 or 0 to the file: e.g.\necho \"1\" | sudo tee /sys/module/acpi/parameters/ec_no_wakeup\n```\n\nIt's worth pointing out, that even with setting the parameter, the error will\nstill be logged to syslog, however the automatic wake ups are prevented this\nway.\n\n\nLinks:\n- [Tuxedo FAQ / Device Immediately Wakes Up After Suspend](https://www.tuxedocomputers.com/en/FAQ-TUXEDO-InfinityBook-Pro-15-Gen9.tuxedo#3675)\n- [Arch Wiki / /sys/module/acpi/parameters/ec_no_wakeup](https://wiki.archlinux.org/title/Power_management/Wakeup_triggers#/sys/module/acpi/parameters/ec_no_wakeup)\n\n\n### ufw post-install actions [5]\n\n[Uncomplicated Firewall (aka\nufw)](https://wiki.archlinux.org/title/Uncomplicated_Firewall) may not be active\nright away post-install. This can be fixed with systemd.\n\n```bash\nsudo systemctl enable --now ufw.service\n```\n\nFurther, even if ufw is started via systemd, ufw may not be initialized. Run the\nfollowing commands in order to check and fix (if needed).\n\n```bash\n$ sudo ufw status\nStatus: inactive\n# explicitly enable ufw\n$ sudo ufw enable\nFirewall is active and enabled on system startup\n```\n\nFinally, check if the current rules are the \"sane and sensitive defaults\":\n\n```bash\n$ sudo ufw status verbose\nStatus: active\nLogging: on (low)\nDefault: deny (incoming), allow (outgoing), deny (routed)\nNew profiles: skip\n```\n\nMind the `Default: deny (incoming), allow (outgoing), deny (routed)` line. In\ncase default rules are different by default, you may correct them with:\n\n```bash\nsudo ufw default deny incoming\nsudo ufw default allow outgoing\nsudo ufw default deny routed\n```\n\nLinks:\n- [Arch Wiki / Uncomplicated Firewall](https://wiki.archlinux.org/title/Uncomplicated_Firewall)\n- [Ubuntu Wiki / UFW](https://help.ubuntu.com/community/UFW)\n\n\n### Have systemd using same default console editor\n\nBy default, systemd may use any available console-based editor.\nHowever, the `SYSTEMD_EDITOR` ENV allows configuring any editor of preference.\nIn order to have `sudo` based commands inheriting this ENV, add the following\nline to the sudoers file manually via `visudo`.\n\n```diff\n ##\n ## Preserve editor environment variables for visudo.\n ## To preserve these for all commands, remove the \"!visudo\" qualifier.\n Defaults!/usr/bin/visudo env_keep += \"SUDO_EDITOR EDITOR VISUAL\"\n+Defaults env_keep += \"SYSTEMD_EDITOR\"\n ##\n ## Use a hard-coded PATH instead of the user's to find commands.\n```\n\n\n### Permissions for Polybar [6]\n\nMany modules may not work out of the box. Inspect\n`~/.config/polybar/config.ini`, which might require a few parameters to be\nproperly templated via chezmoi.\n\n#### Change backlight via scrolling\n\nFor having support for changing the backlight via scrolling, do the following:\n\n1) Add your user to the `video` group.\n\n```bash\nsudo usermod -aG video $USER\nnewgrp video\n```\n\n2) Add the following udev rule `/etc/udev/rules.d/99-backlight.rules`\n\n```\nACTION==\"add\", SUBSYSTEM==\"backlight\", RUN+=\"/bin/chgrp video $sys$devpath/brightness\", RUN+=\"/bin/chmod g+w $sys$devpath/brightness\"\n```\n\nReload udev via:\n\n```bash\nsudo udevadm control --reload-rules\nsudo udevadm trigger\n```\n\nIn case it does not work, try rebooting the system.\n\n\n### Pipewire post-installation activation [7]\n\n[`pipewire`](https://wiki.archlinux.org/title/PipeWire) is used as the audio\nrouter and processor. For audio session management,\n[`wireplumber`](https://wiki.archlinux.org/title/WirePlumber) is used.\n\nAdditionally, the `pipewire-pulse` package is installed for mimicking\n[`pulseaudio`](https://wiki.archlinux.org/title/PulseAudio) for some\napplications. In order to have both services working reliably, make sure systemd\nis running them upon startup.\n\n[`helvum`](https://gitlab.freedesktop.org/pipewire/helvum) may be used as\npatchbay GUI for pipewire.\n\n```bash\nsystemctl enable --user --now pipewire.service\nsystemctl enable --user --now pipewire-pulse.service\n```\n\n\n### Autorandr post-installation activation [8]\n\n[`autorandr`](https://github.com/phillipberndt/autorandr) is used to\nautomatically detect monitors, storing profiles and auto-applying them upon\nreconnect.\n\nIn order to work properly, the following 2 systemd services should be activated:\n\n```bash\nsudo systemctl enable --now autorandr.service\nsudo systemctl enable --now autorandr-lid-listener.service\n```\n\n\n### Bluetooth support\n\nFor having [Bluetooth](https://wiki.archlinux.org/title/Bluetooth) working, the\n`bluetoothd` daemon must run in the background.\nRun the following systemd command in order to run bluetoothd from the beginning.\n\n```bash\nsudo systemctl enable --now bluetooth.service\n```\n\nTools like [`bluetui`](https://github.com/pythops/bluetui) and\n`bluetoothctl` may be used for frontends for interacting.\n\n\n### Yubikey support\n\n[Yubikey](https://wiki.archlinux.org/title/YubiKey) builds upon the smartcard\ninterface, whose service may not be running.\nYou may enable the service to become available via systemd activation:\n\n```bash\nsudo systemctl enable --now pcscd.service\n```\n\n\n### auto-cpufreq post-installation activation [9]\n\nTHe `auto-cpufreq` daemon need to be activated via systemd first.\n\n```bash\nsudo systemctl enable --now auto-cpufreq\n```\n\nOnce done, `auto-cpufreq --stats` allows live-observing the profile. For\ninstance on AC, the `performance` governor will be applied, otherwise the\n`powersave` governor when relying on battery.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frtucek%2Fdotfiles","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Frtucek%2Fdotfiles","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frtucek%2Fdotfiles/lists"}