Skip to content

ziap/dotfiles

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

SwayWM dotfiles

A custom wayland desktop environment fine-tuned to my development workflow and daily usage.

Informations

screenshot

Features

  • ✨ Minimal and aesthetic gruvbox themed desktop
  • 🗨️ Lightweight and powerful ZSH shell with custom prompt
  • 🚀 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

Plan

  • Add more rofi menus
  • Svelte developer environment
  • Notification with dunst
  • Setup on a more minimal Fedora installation

Installation

Clone repository

git clone --depth=1 https://github.com/ziap/dotfiles
cd dotfiles

cp -rp .config .Xresources ~

RPMFusion and media codecs

sudo dnf install https://mirrors.rpmfusion.org/free/fedora/rpmfusion-free-release-$(rpm -E %fedora).noarch.rpm

sudo dnf install @multimedia

Fonts

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

Terminal + Shell setup

Install and setup foot, zsh and some plugins

sudo dnf install foot util-linux-user zsh zsh-autosuggestions zsh-syntax-highlighting

chsh -s $(which zsh)
cp .zshrc ~ 

Install extra packages

sudo dnf install sqlite ImageMagick bat eza ripgrep fd-find skim imv mpv
  • sqlite: for dnf autocompletion
  • ImageMagick: for command line image editing
  • bat, eza: Syntax highlighting, icons for cat and ls
  • ripgrep, fd-find: Faster grep and find
  • skim: Fuzzy finder
  • imv: Image viewer
  • mpv: Video/audio player

Desktop environment setup

sudo dnf install sway rofi-wayland waybar luajit slurp grim light playerctl pulseaudio-utils wl-clipboard epapirus-icon-theme
  • luajit: Run Lua rofi scripts
  • grim, slurp: Screenshot tool
  • light, pulseaudio-utils: Control screen brightness and audio volume
  • playerctl: Media player controller
  • wl-clipboard: Clipboard tool
  • epapirus-icon-theme: ePapirus icon theme for rofi

Developer environment setup

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

Firefox setup

  • user.js and custom theme in the firefox folder
  • Dark reader with gruvbox theme

Document editing workflow setup

sudo dnf install pandoc texlive zathura zathura-pdf-mupdf

IME Setup

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.

License

This project is licensed under the GPL-3.0 license.