A custom wayland desktop environment fine-tuned to my development workflow and daily usage.
- OS: Fedora Linux
- WM: sway
- Shell: fish
- Editor: neovim
- Terminal: kitty
- Browser: firefox
- Launcher: rofi, wayland fork
- Bar: waybar
- Colorscheme: gruvbox
- ✨ Minimal and aesthetic gruvbox themed desktop
- 🗨️ Fish shell configured for my development workflow
- 🚀 Functional developer environment for
- C and C++
- Rust
- Vanilla web development
- Python
- 📄 Document editing with markdown, latex, pandoc and reveal.js
- 📁 File browsing and application launcher with rofi
- 📷 Screenshot with support for
- Region
- Window
- Screen
- 🔌 Power menu and a very basic lock screen
- 🔧 Essential Fedora modification (rpmfusion, codecs) included in the install script
- Add more rofi menus
- Svelte developer environment
- Notification with dunst
- Setup on a more minimal Fedora installation
git clone --depth=1 https://github.com/ziap/dotfiles
cd dotfiles
cp -rp .config .Xresources ~
sudo dnf install https://mirrors.rpmfusion.org/free/fedora/rpmfusion-free-release-$(rpm -E %fedora).noarch.rpm
sudo dnf install @multimedia
Fonts being used are:
- FiraCode (terminal, editor font)
- VictorMono (italic font)
- RobotoMono (UI font)
Run this script to download all fonts to the local font folder ~/.local/share/fonts
./download_fonts.sh
Install and setup kitty and fish
sudo dnf install kitty util-linux-user fish
chsh -s $(which fish)
Install extra packages
sudo dnf install sqlite ImageMagick bat eza ripgrep fd-find skim imv mpv
sqlite
: for dnf autocompletionImageMagick
: for command line image editingbat
,eza
: Syntax highlighting, icons forcat
andls
ripgrep
,fd-find
: Fastergrep
andfind
skim
: Fuzzy finderimv
: Image viewermpv
: Video/audio player
sudo dnf install sway rofi-wayland waybar luajit slurp grim light playerctl pulseaudio-utils wl-clipboard epapirus-icon-theme
luajit
: Run Lua rofi scriptsgrim
,slurp
: Screenshot toollight
,pulseaudio-utils
: Control screen brightness and audio volumeplayerctl
: Media player controllerwl-clipboard
: Clipboard toolepapirus-icon-theme
: ePapirus icon theme for rofi
The packages for each programming languages are pretty self-explanatory
sudo dnf install neovim gh git git-delta python3 python3-pip nodejs npm gcc gcc-c++ clang-tools-extra
Install language servers
sudo npm i -g pyright vscode-langservers-extracted typescript typescript-language-server emmet-ls
Install rust and rust-analyzer
# During install select nightly profile
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
rustup component add rust-analyzer
While rust-analyzer isn't added to ~/.cargo/bin
by default
cat << EOF > ~/.cargo/bin/rust-analyzer
#!/bin/sh
rustup run nightly rust-analyzer
EOF
chmod +x ~/.cargo/bin/rust-analyzer
Install plugins
sh -c 'curl -fLo "${XDG_DATA_HOME:-$HOME/.local/share}"/nvim/site/autoload/plug.vim --create-dirs \
https://raw.githubusercontent.com/junegunn/vim-plug/master/plug.vim'
nvim -c PlugInstall
user.js
and custom theme in thefirefox
folder- Dark reader with gruvbox theme
sudo dnf install pandoc texlive zathura zathura-pdf-mupdf
sudo dnf install fcitx5 fcitx5-qt fcitx5-gtk fcitx5-configtool
sudo dnf install fcitx5-unikey # Or your IME
You can automatically start fcitx by adding exec_always fcitx5
to sway config but I prefer manually starting it in rofi.
This project is licensed under the GPL-3.0 license.