Desktop Setup - cephi-sui/dotfiles GitHub Wiki
PipeWire is a multimedia framework which supports all sound servers.
sudo pacman -Syu pipewire pipewire-audio pipewire-alsa pipewire-jack pipewire-pulse wireplumber
sudo pacman -Syu bluez bluez-utils && sudo systemctl enable --now bluetooth
sudo pacman -Syu gnu-free-fonts noto-fonts noto-fonts-cjk noto-fonts-emoji noto-fonts-extra nerd-fonts
sudo mkdir -p /etc/fonts/conf.d/
sudo ln -s /usr/share/fontconfig/conf.avail/10-nerd-font-symbols.conf !$
sudo pacman -Syu alacritty firefox mpv
Compositor | Hyprland |
Cursor | Bibata |
Display Manager | SDDM |
Policy Kit | KDE |
Status Bar | Waybar |
Application Launcher & Menu | Fuzzel |
Notifications | SwayNotificationCenter |
Screenshot |
Grimblast (using grim , slurp , hyprpicker ) |
Wallpaper | swww (+ waypaper) |
Lockscreen | Hyprlock |
Browser
sudo pacman -Syu firefox
- Terminal out-of-the-box:
sudo pacman -Syu kitty
- Terminal that requires editing
~/.config/hypr/hyprland.conf
:sudo pacman -Syu alacritty
Dolphin (File Browser) + Ark (Archive Browser)
sudo pacman -Syu dolphin dolphin-plugins kdegraphics-thumbnailers libheif qt5-imageformats kdesdk-thumbnailers ffmpegthumbs taglib kompare ark
Pavucontrol (Audio Device Control)
sudo pacman -Syu pavucontrol
sudo pacman -Syu hyprland sddm wl-clipboard wtype && sudo systemctl enable sddm
To get X11 applications to scale properly, go to the scaling section of this repo's ~/.config/hypr/hyprland.conf
- QT: Env variable
QT_SCALE_FACTOR
(float) - GTK: Env variable
GDK_SCALE
(integer)
For Electron applications either:
- Add
--force-device-scale-factor=<float>
to the.desktop
in/usr/share/applications/
- Just use
ctrl++
in the application itself.
sudo pacman -Syu xdg-desktop-portal-hyprland xdg-desktop-portal-kde xdg-desktop-portal-gtk xwaylandvideobridge qt5-wayland qt6-wayland jq
Install media and brightness controls.
sudo pacman -Syu playerctl brightnessctl
If desired, install wev
( ctrl
+ c
to exit ) to determine keycodes for ~/.config/hypr/hyprland.conf
For screenshots, the grimblast
script will freeze the screen using
hyprpicker
, select a region using slurp
, and screenshot using grim
.
sudo pacman -Syu grim slurp
paru -S hyprpicker
Pull this repo https://github.com/hyprwm/contrib/ and run make install
.
cd ~/Downloads/git && git clone https://github.com/hyprwm/contrib.git && cd contrib/grimblast && sudo make install
sudo pacman -Syu polkit-kde-agent
~/.config/hypr/hyprland.conf
exec-once=/usr/lib/polkit-kde-authentication-agent-1
Install iio-hyprland
, which will pull iio-sensor-proxy
as a dependency.
paru -S iio-hyprland
Run hyprctl monitors
to obtain desired monitor for rotation.
It may be necessary to specify the monitor in
~/.config/hypr/hyprland.conf
like so.
monitor = $mainMoni,preferred,auto,auto
Run the programs at startup.
~/.config/hypr/hyprland.conf
exec-once = iio-sensor-proxy & iio-hyprland
sudo pacman -Syu hyprlock
Swaylock can be run with the following command:
swaylock --daemonize --indicator-caps-lock --show-failed-attempts
This command will get called with the fuzzel-power-menu
script (see below).
Fuzzel is a smaller, faster application launcher than Rofi, while still providing the base dmenu functionality necessary.
sudo pacman -Syu fuzzel
~/.config/hypr/hyprland.conf
bindr = $mainMod, Super_L, exec, killall fuzzel || fuzzel
See below.
Bemoji has history built-in and sends the emoji list via dmenu. Requires wtype
to type the emoji.
It also allows for easily adding new entries like kaomoji :D
paru -S bemoji
Bemoji is run with Fuzzel as its picker.
BEMOJI_PICKER_CMD="fuzzel -d" bemoji -tc
~/.config/hypr/hyprland.conf
bind = $mainMod, 60, exec, killall fuzzel; BEMOJI_PICKER_CMD="fuzzel -d" bemoji -t # Super + .
A basic, custom-made nmcli frontend script stored in ~/.config/fuzzel/
using Material Design icons to match the riced Waybar.
A script stored in ~/.config/fuzzel/
which makes use of swaylock
(see above).
One fun way to call this menu is via the power button.
To do so, modify /etc/systemd/logind.conf
to ignore the power key.
Then bind the power key in Hyprland.
~/.config/hypr/hyprland.conf
bind = , XF86PowerOff, exec, ~/.config/fuzzel/fuzzel-power-menu
Waybar is a simple GTK-based status bar.
sudo pacman -Syu waybar
- Uncomment the layer top line so that waybar appears on top of windows
- Remove/add desired modules
- Replace "sway" with "hyprland"
- Change "focused" to "active" when referring to workspaces
- https://www.reddit.com/r/hyprland/comments/12gn52e/comment/jfofgv4/?utm_source=share&utm_medium=web3x&utm_name=web3xcss&utm_term=1&utm_content=share_button Monitor-independent workspaces idea which is turned into a script for these dotfiles.
Cliphist is a program that stores clipboard history that can be read out later.
sudo pacman -Syu cliphist
~/.config/hypr/hyprland.conf
exec-once = wl-paste --type text --watch cliphist store #Stores only text data
exec-once = wl-paste --type image --watch cliphist store #Stores only image data
bind = $mainMod, V, exec, killall fuzzel; cliphist list | fuzzel -d | cliphist decode | wl-copy
SwayNotificationCenter is a nice GTK-based notification center which supports widgets for various purposes, like music.
paru -S swaync
~/.config/hypr/hyprland.conf
exec-once = swaync
bind = $mainMod, N, exec, swaync-client -t -sw
- Static:
sudo pacman -Syu hyprpaper
- Animated:
paru -S swww waypaper-git
sudo pacman -Syu xdg-utils
Set default application for given filetype:
xdg-mime default <application>.desktop <filename>
Open a file using the default application:
xdg-open <filename>
Minimum GNOME install:
sudo pacman -Syu gdm baobab evince gnome-characters gnome-console gnome-control-center gnome-disk-utility gnome-font-viewer gnome-keyring gnome-menus gnome-session gnome-settings-daemon gnome-shell gnome-shell-extensions gvfs gvfs-goa gvfs-gphoto2 gvfs-mtp gvfs-nfs gvfs-smb loupe nautilus snapshot sushi tecla xdg-desktop-portal-gnome xdg-user-dirs-gtk gnome-tweaks gnome-browser-connector dconf-editor
Remove X button on the top right.
gsettings set org.gnome.desktop.wm.preferences button-layout appmenu
Turn off system bell.
gsettings set org.gnome.Console audible-bell false
Set Window Focus on Hover
gsettings set org.gnome.desktop.wm.preferences focus-mode sloppy
gsettings set org.gnome.desktop.wm.preferences auto-raise true
Change keybinds.
gsettings set org.gnome.desktop.wm.keybindings close "['<Super>q']"
gsettings set org.gnome.settings-daemon.plugins.media-keys home "['<Super>e']"
gsettings set org.gnome.settings-daemon.plugins.media-keys control-center "['<Super>i']"
gsettings set org.gnome.desktop.wm.keybindings toggle-maximized "['<Super>z']"
gsettings set org.gnome.shell.keybindings show-screenshot-ui "['<Super><Shift>s']"
gsettings set org.gnome.shell.keybindings screenshot "['Print']"
gsettings set org.gnome.shell.keybindings screenshot-window "['<Super>Print']"
gsettings set org.gnome.settings-daemon.plugins.media-keys custom-keybindings "['/org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/custom0/']"
gsettings set org.gnome.settings-daemon.plugins.media-keys.custom-keybinding:/org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/custom0/ binding "<Super>Return"
gsettings set org.gnome.settings-daemon.plugins.media-keys.custom-keybinding:/org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/custom0/ command "kgx"
gsettings set org.gnome.settings-daemon.plugins.media-keys.custom-keybinding:/org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/custom0/ name "Console"
for i in {1..9}; do gsettings set org.gnome.shell.keybindings switch-to-application-$i "[]"; done
for i in {1..10}; do gsettings set org.gnome.desktop.wm.keybindings switch-to-workspace-$i "['<Super>$(($i % 10))']"; done
for i in {1..10}; do gsettings set org.gnome.desktop.wm.keybindings move-to-workspace-$i "['<Super><Shift>$(($i % 10))']"; done
gsettings set org.gnome.desktop.wm.keybindings move-to-monitor-down "['<Super><Shift><Ctrl>Down']"
gsettings set org.gnome.desktop.wm.keybindings move-to-monitor-left "['<Super><Shift><Ctrl>Left']"
gsettings set org.gnome.desktop.wm.keybindings move-to-monitor-right "['<Super><Shift><Ctrl>Right']"
gsettings set org.gnome.desktop.wm.keybindings move-to-monitor-up "['<Super><Shift><Ctrl>Up']"
Extensions
gnome-extensions enable [email protected]
gnome-extensions enable [email protected]
gnome-extensions enable [email protected]