JustToThePoint English Website Version
JustToThePoint en español
Colaborate with us

Proxmox VM Arch Linux Hyprland. Get information from Ollama, tldr, myripgrep

When the world says, ‘Give up,’ hope whispers, ‘Try it one more time,’ Lyndon B. Johnson

Proxmox VM Arch Linux Hyprland

Arch Linux is an independently developed, free and open-source, rolling release distribution. It is a minimalist, lightweight, and bleeding edge distribution that targets advanced users.

Hyprland is a dynamic tiling Wayland compositor. It’s designed for performance and efficiency, allowing you to manage windows easily with a modern aesthetic.

Creating the VM in ProxMox

  1. Download the latest Arch Linux ISO from the official website (HTTP Direct Downloads, BitTorrent -this is recommended for faster downloads-), go to the Proxmox web interface, local(myServer), ISO Images, Download from URL.
  2. Create a New VM in Proxmox. Open a web browser and go to the Proxmox web interface. In the left panel, click on your datacenter or the specific node where you want to create the VM. Node (e.g., myserver), Click on the Create VM button at the top of the interface.
  3. Set the following instructions:

General. Enter a VM ID (automatically generated) and a name for your VM (e.g., hyprArch).
OS. Select the type of operating system you plan to install (Linux, Windows, etc.). Choose the ISO image from your storage we have just downloaded for the installation.
System: Configure the BIOS type (OVMF (UEFI)). Graphic card (VirtIO GPU), EFI Storage (mypool). Disk: Storage (mypool).
CPU: Cores. Allocate the number of CPU cores to the VM, e.g., 4.
Memory: Allocate the desired amount of RAM for the VM, e.g., 8192.
Network: configure the network interface (usually defaults are fine).

When installing Arch Linux on Proxmox, using the VirtIO GPU is beneficial because it provides better performance and compatibility for virtual machines. If you have an NVIDIA or AMD GPU, you’ll need to install the appropriate drivers.

  1. Start the VM, select Console, SPICE, go to BIOS by pressing ESC, Device Manager, Secure Boot Configuration, Atempt Secure Boot (disable), ESC, Reset

    image info

  2. Hardware, Add, Audio Device, ich9-intel-hda.

Installing Arch, Hyprland, Waybar, SSH

  1. Follow the Arch Linux installation guide to install Arch Linux: ping www.google.com, archinstall
  2. Archinstall language: English; Locales (Keyboard layout: es; Locale language: en_US; Locale encoding: UTF-8); Mirror (Spain); Disc configuration: Use a best-effort default partition layout (qEMU Hard disk, btrfs, yes -with a default structure-); Boot-loader (Systemd-boot); Swap (no); Hostname (hyperArch); User and Root account; Profile (minimal); Additional Packages (git); Network Configuration (Use Network Manager); TimeZone (Europe/Madrid). Install.
  3. Would you like to chroot …? No, then reboot.
  4. Let’s install yay: git clone https://aur.archlinux.org/yay.git, cd yay, makepkg -si
  5. Install vim, yay -S vim, make it the default editor (export EDITOR=vim), and to persist this settings (sudoedit /etc/profile.d/editor.sh and add the line export EDITOR=vim).
  6. sudo -e visudo:
  [...]
  # Uncomment this line and add the following one to keep the environment variable EDITOR when running commands with sudo
  Default env_keep += "LANG LANGUAGE LINGUAS LC_* _XKB_CHARSET"
  Default env_keep += "EDITOR"

  # Uncomment to allow member of group wheel to execute any commands
  %wheel ADD=(ALL:ALL) ALL
  [...]
  nmaximo7 ALL=(ALL:ALL) ALL NOPASSWD : /usr/bin/pacman, /usr/bin/poweroff, /usr/bin/reboot
  1. Install some packages for Hyprland: yay -S hyprland xdg-desktop-portal-hperland (a backend for the XDG Desktop Portal, allowing applications to interact with the desktop environment in a Wayland-compatible manner) dunst (a lightweight notification daemon) wofi (an application launcher for Wayland) foot (a modern terminal emulator designed for Wayland) sddm (a login manager, option 5) thunar (a fast and lightweight file manager ) qemu-guest-agent (a daemon that runs inside a virtual machine, allowing better communication between the host and guest systems) firefox (a popular open-source web browser)

  2. Some more: yay -S hyprpaper (a background manager for Hyprland that allows you to set wallpapers and manage background images easily) alacritty (an OpenGL terminal emulator that focuses on performance) neofetch (a command-line visually appealing utility that displays system information alongside a logo of your distribution) mpv (a versatile media player that supports a wide range of video and audio formats) flameshot (a powerful screenshot tool that allows you to capture and annotate images easily) gimp (a free and open-source image editor).

  3. Enter Hyprland (Hyprland), Super+R (Wofi), launch foot, and edit Hyprland’s main configuration file: vim .config/hyper/hyprland.conf:

    # autogenerated = 0
    [...]
    kb_layout = "es" # input section
    [...]
    exec-once = waybar & hyprpaper & firefox
    [...]
    monitor=,1920x1080,auto,auto
    [...]
    $terminal=foot
    $fileManager=thunar
    [...]
    gaps_out = 10 # general section
    rounding = 5 # decoration section
    [...]
    bind = $mainMod, RETURN, exec, $terminal
    bind = $mainMod, Q, killactive
    
  4. Enable the login manager: sudo systemctl enable sddm, sudo systemctl start sddm

  5. Enable audio: yay -S pipewire-{alsa,jack,pulse} gst-plugin-pipewire pavucontrol pamixer

  6. Enable sshd: sudo pacman -S openssh, sudo systemctl enable sshd, and sudo systemctl start sshd.

  7. Install and configure Waybar: yay -S waybar network-manager-applet, cp -r /etc/xdb/waybar/ ~/.config/. and vim .config/waybar/config.jsonc.

    "layer": "top", // Waybar at top layer
    
    "modules-left": [
      "hyprland/workspaces"
    ],
    "modules-center": [
      "hyprland/window"
    ],
    "modules-right": [
        "idle_inhibitor",
        "pulseaudio",
        "network",
        "power-profiles-daemon",
        "cpu",
        "memory",
        "keyboard-state",
        "clock",
        "tray",
        "custom/power"
    ],
    
  8. Add our user to the input group and log in to the new group: sudo usermod -aG input $USER, newgrp input.

  9. Adding some fonts: yay font-awesome, select 1 2.

  10. More utilities: sudo pacman -S fastfetch neovim wget unzip geany python-pipx htop ripgrep docker fzf & pipx completions (add shell completions for pipx) pipx ensurepath (some apps will not be globally accessible until your PATH is updated).

fastfetch is a command-line utility that displays system information in a visually appealing way. neovim is an extensible text editor that improves upon Vim. It has better support for plugins and modern features. wget is a versatile command-line utility for downloading files from the web. unzip is a utility for extracting files from ZIP archives. geany is a very lightweight editor and IDE that supports various programming languages.python-pipx is a package manager for Python applications, allowing you to install and run Python tools in isolated environments.

More: htop is an interactive process viewer for Unix systems.ripgrep (rg) is a command-line search tool that recursively searches your current directory for a regex pattern. It’s faster than grep and has more features. docker is a platform for developing, shipping, and running applications in containers. It simplifies deployment and dependency management. fzf is a command-line fuzzy finder. It allows you to quickly search and filter through files, command history, and more.

ZSH and Oh My Zsh

A shell is a command-line interpreter. It sits between the kernel (core) of an operating system and the user, and exposes the operating system’s services to a human user or other programs. In other words, a shell is a command-line user interface for accessing the services of the operating system. Some example of shells are: Power Shell, cmd, Bash, fish, and Zsh.

Zsh (Z shell) is a popular alternative to the default Bash shell. It is an extended shell designed for interactive use, known for its extensive customization options, plugin ecosystem, theme support, and advanced features that improve the user experience.

Oh My Zsh is a delightful, open source, community-driven -somehow bloated- framework for managing your Zsh configuration. It comes bundled with thousands of helpful functions, helpers, plugins, and themes.

Install the corresponding packages: sudo pacman -S zsh zsh-completions. Change to zsh chsh -s /bin/zsh. First time: zsh, select 0, quit and do nothing. , ``

# Instal oh my shell
sh -c "$(curl -fsSL https://raw.githubusercontent.com/ohmyzsh/ohmyzsh/master/tools/install.sh)"
# Install zsh-autosuggestions
git clone https://github.com/zsh-users/zsh-autosuggestions ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/zsh-autosuggestions

# Install zsh-syntax-highlighting
git clone https://github.com/zsh-users/zsh-syntax-highlighting ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/zsh-syntax-highlighting

# Installing Fantasque Nerd Font
wget https://github.com/ryanoasis/nerd-fonts/releases/download/v3.3.0/FantasqueSansMono.zip
unzip FantasqueSansMono.zip

# Installing Starship
curl -sS https://starship.rs/install.sh | sh

mkdir -p .local/share/fonts
cd .local/share/fonts

---------------------------------------
vim .zshrc:
---------------------------------------

# Path to your oh-my-zsh installation.
export ZSH="$HOME/.oh-my-zsh"

# Set name of the theme to load.
# See https://github.com/ohmyzsh/ohmyzsh/wiki/Themes
ZSH_THEME="robbyrussell"

# Enable command auto-correction.
ENABLE_CORRECTION="true"

# Display red dots while waiting for completion.
COMPLETION_WAITING_DOTS="true"

# Plugins to load.
# Add wisely, as too many plugins slow down shell startup.
plugins=(
  zsh-autosuggestions
  zsh-syntax-highlighting
  sudo
  docker
)

# Load Oh My Zsh.
source $ZSH/oh-my-zsh.sh

# User configuration

# Set your preferred editor.
export EDITOR='nvim'

# Aliases for common commands.
alias ll='ls -la'
alias la='ls -A'
alias l='ls -CF'
alias cls='clear'
alias df='df -h'
alias du='du -h'
alias mkdir='mkdir -p'
alias ports='netstat -tulanp'

# Arch Linux-specific aliases.
alias update='sudo pacman -Syu'
alias cleanup='sudo pacman -Rns $(pacman -Qdtq)'
alias pkglist='pacman -Qqe > pkglist.txt'
alias install='sudo pacman -S'
alias remove='sudo pacman -Rns'
alias search='pacman -Ss'
alias orphaned='pacman -Qdt'
alias mirrors='sudo reflector --latest 10 --sort rate --save /etc/pacman.d/mirrorlist'

# Set language environment.
export LANG=en_US.UTF-8

# Preferred editor for local and remote sessions.
if [[ -n $SSH_CONNECTION ]]; then
  export EDITOR='nvim'
else
  export EDITOR='nvim'
fi

# Enable color support for ls and grep.
if [ -x /usr/bin/dircolors ]; then
  test -r ~/.dircolors && eval "$(dircolors -b ~/.dircolors)" || eval "$(dircolors -b)"
  alias ls='ls --color=auto'
  alias grep='grep --color=auto'
  alias fgrep='fgrep --color=auto'
  alias egrep='egrep --color=auto'
fi

# History configuration.
HISTFILE=~/.zsh_history
HISTSIZE=10000
SAVEHIST=10000
setopt HIST_IGNORE_ALL_DUPS
setopt HIST_FIND_NO_DUPS
setopt HIST_SAVE_NO_DUPS
setopt INC_APPEND_HISTORY
setopt SHARE_HISTORY

# Enable auto-suggestions based on history.
source ~/.oh-my-zsh/custom/plugins/zsh-autosuggestions/zsh-autosuggestions.zsh

# Enable syntax highlighting.
source ~/.oh-my-zsh/custom/plugins/zsh-syntax-highlighting/zsh-syntax-highlighting.zsh

# Load local customizations if they exist.
if [ -f ~/.zshrc_local ]; then
  source ~/.zshrc_local
fi
eval "$(starship init zsh)" # We need to add this for startship
unsetopt correct # Permanently Disable Spell Correction
# Zsh is suggesting a correction for ollama/qwen2.5:latest to .ollama/qwen2.5:latest.
---------------------------------------
exec zsh

Ollama

Ollama is a lightweight, extensible framework for building and running language models on the local machine. It makes it easy to get up and running with Llama 3.3, Phi 4, Gemma 2, and other large language models.

# Install Ollama
curl -fsSL https://ollama.com/install.sh | sh
# These models require plenty of resources
ollama run llama3.3
ollama run phi4
# Qwen2.5 models are pretrained on Alibaba's latest large-scale dataset, encompassing up to 18 trillion tokens.
❯ ollama run qwen2.5
>>> What is the capital of France?
The capital of France is Paris.
>>> /bye


ollama list # List your models
ollama systemctl status ollama.service # Check the status of the Ollama service on a Linux system
sudo systemctl stop ollama.service # Stop the Ollama service.

# Install ShellGPT
pipx install shell-gpt
# By default, ShellGPT uses OpenAI's API. You'll need an API key. OpenAI API is not free of charge.
# ShellGPT is designed to quickly analyse and retrieve information.
❯ pipx install litellm
❯ pipx inject shell-gpt litellm

  injected package litellm into venv shell-gpt
done! ✨ 🌟 ✨

nmaximo7 in 🌐 hyperArch in ~ took 5s
❯ sgpt --model ollama/qwen2.5:latest  "Who are you?"
I am ShellGPT, your programming and system administration assistant. I manage Linux/Arch Linux systems using the zsh shell. How can I assist you today?

nmaximo7 in 🌐 hyperArch in ~ took 23s

image info

Client side: Passwordless SSH

To copy your SSH key to the remote server (192.168.1.106) for the user nmaximo7, you can use the ssh-copy-id command. This command appends your public key to the ~/.ssh/authorized_keys file on the remote server, allowing you to authenticate without a password.

ssh-copy-id nmaximo7@192.168.1.106
ssh nmaximo7@192.168.1.106 # Passwordless access to the server
Bitcoin donation

JustToThePoint Copyright © 2011 - 2025 Anawim. ALL RIGHTS RESERVED. Bilingual e-books, articles, and videos to help your child and your entire family succeed, develop a healthy lifestyle, and have a lot of fun. Social Issues, Join us.

This website uses cookies to improve your navigation experience.
By continuing, you are consenting to our use of cookies, in accordance with our Cookies Policy and Website Terms and Conditions of use.