Chuyển đến nội dung

Install / Update / Uninstall

Nội dung này chưa có trong Tiếng Việt

Installing

Before we start

  • Only user-level customization is provided. You are responsible for other software/configuration for basic functionality of your system.
  • Distro support
    • The provided installation script works for Arch Linux distros
    • For other distros, see below (Note: at the time of writing they’re instructions for the AGS version, not Quickshell version, but they might be helpful)
    • end-4 uses and recommends EndeavourOS. You don’t have to, but it makes things much easier compared to normal Arch
  • It is not necessary to reinstall your system

Automated installation (Arch distros only)

The recommended method

Run this one line and follow the prompts:

Terminal window
bash <(curl -s "https://end-4.github.io/dots-hyprland-wiki/setup.sh")

The above clones the repo to ~/.cache/dots-hyprland. To make that somewhere else, specify a path as another argument

NixOS (community)

  • Currently, these dotfiles are not (yet?) offered as a flake.
  • See the relevant discussion #1093

OpenSUSE (community)

Fedora (community)

Manual installation (basically any distro)

  • Clone and go to directory

    Terminal window
    t=~/.cache/dots-hyprland # Let's not trash your home folder
    git clone https://github.com/end-4/dots-hyprland.git "$t" --filter=blob:none
    cd "$t"
  • Get packages: Install all packages listed as the value of array depends inside those scriptdata/arch-packages/*/PKGBUILD. For Arch Linux, just use an AUR helper such as yay.

  • Run manual-install-helper.sh to install the rest of the dependencies.

    • You may also instead install suitable alternatives as you’ve found out.
  • Add user to video and input group

    Terminal window
    sudo usermod -aG video,input "$(whoami)" # if this somehow doesn't work, just replace "$(whoami)" with your username
  • Copy .config, .local to your home folder (review before doing this or you might have your own config files undesirably overwritten)

  • Once you’re done, log in again into Hyprland

    • Ctrl+Super+T to select a wallpaper
    • Super+/ for a list of keybinds. Have fun!

Post installation

Not so optional stuff

Prevent notification daemon conflicts

  • Notification daemons like dunst and mako may come with your distro’s customizations and can interfere with Quickshell’s implementation. It is recommended to uninstall them if you don’t use them anywhere else.

Optional stuff

Extra configs

See if you’re interested in anything in the Extras folder.

Media integration with browser

If you want media thumbnail from your browser to be shown, get the “Plasma browser integration” extension.

Colorscheme for ZSH

Put this line into your ~/.zshrc to support colorscheme for ZSH:

Terminal window
source ~/.config/zshrc.d/dots-hyprland.zsh

Launching Hyprland

  • To launch Hyprland, you can use a DM (Display Manager) or just tty.
  • Hyprland wiki recommends launching Hyprland with the uswm-managed session, but we don’t. Using this does not break the dotfiles, but you might get autostarted junk from other desktop environments (for example duplicate authentication dialogs)

See Hyprland wiki for details. Below are some extra hints.

How to auto-launch Hyprland after logging in on tty1?

For ZSH or BASH, add this line to the bottom of your ~/.zshrc or ~/.bashrc:

Terminal window
source ~/.config/zshrc.d/auto-Hypr.sh

For FISH, add this line to the bottom of your ~/.config/fish/config.fish:

source ~/.config/fish/auto-Hypr.fish

P.S. It’s recommended to disable the DM if you want to launch Hyprland through tty.

I’m a newbie. What is a tty and DM?

Here’s a brief introduction to give you a quick access, though not exactly true.

You may see tty as some “basis” of a Linux system. There’re normally 7 ttys: tty1 to tty7. You may press Ctrl+Alt+F<n> to switch to tty<n>, and type your username and password to log in.

After logging in, you’re able to launch a graphical environment through command, e.g. Hyprland. Actually, most graphical interfaces could be launched only after you login.

But what if we want a graphical interface for the login interface itself?

So, here comes the DM (Display Manager, also called “LM”, i.e. Login Manager).

  • Some commonly used DM:
    • sddm: Often used with KDE Plasma.
    • gdm: Often used with Gnome.
  • It’s enabled on system level, and launches automatically after system booting (not logging in yet).
    • On a systemd-based distro, the DM is usually enabled as a systemd service. Run the following to see which DM is enabled.
      Terminal window
      grep 'ExecStart=' /etc/systemd/system/display-manager.service
      If it returns “No such file or directory”, then no DM is enabled, or this is not a systemd-based distro.
  • It provides you with a graphical interface to login and choose the graphical environment (e.g. Hyprland).
    • How does the DM know which graphical environments are available?
      • Normally, it searches the path /usr/share/xsessions for X11 ones, and /usr/share/wayland-sessions for Wayland ones.
      • The desktop files under these directories contain the information of the graphical environments.

Updating

If you used the script

  • cd into the repo directory
  • Run git pull to fetch the latest changes.
  • Run ./install.sh again
    • Skip the steps you don’t want (especially the rsync ... ones because it will override your files under its target path). Typically you may want the rsync step which involves .config/quickshell.

Run ./install.sh -h to see more usage.

If you installed manually

  • cd to the repo directory
  • Run git pull to fetch the latest changes.
  • Grab files you want. Typically you may want to grab the .config/quickshell folder.
  • Run manual-install-helper.sh to update some of the dependencies.

Uninstalling

  • You can try using uninstall.sh, but it’s not perfect and not actively maintained.
  • Manual uninstallation hint for Arch Linux:
    • Run pacman -Q | grep illogical-impulse for a list of packages the dotfiles requires
    • Run yay -Rs PACKAGE_NAME for each package from the above command
  • Here goes a long explanation if you care:

The point is that this repo is not a typical “software”, but a set of config, so it’s very hard to make a proper uninstallation script, which should revert all changes made by the installation script.

For example, the installation script will install yay (AUR-helper) for you if you don’t have one. However, what should the uninstallation script do to revert this changes?

  • Remove yay or yay-bin? Not proper, because you may already have one of them installed by yourself (not by the installation script).
  • Even if the installation script had logged the package list installed by the script, it’s still not proper to remove yay or yay-bin when the log showed yay or yay-bin is installed by the script, because the script can’t log its future, and you may have reinstalled yay or yay-bin another day after the installation script finished, thus they are actually not installed by installation script anymore.

In conclusion, it’s nearly not possible to write a proper uninstallation script. You’d better make reverted changes manually as you need.