faustzero1 / dotfiles-linux

Theres no place like $HOME

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

~/dotfiles

img img

Information

Here are some details about my setup:




TODO

  • Switch to xrdb patch for theme switching
  • Fix the issue with hardcoded path
  • Create a list of keybindings
  • Explain installation procedure and how everything works
    • Mention the mandatory and optional dependencies
    • Make a detailed guide for archlinux
    • Make guides for fedora and debian
  • Redo setup on an updated version of dwm-flexipatch
  • Explain the features of this setup
  • Switch to rofi from dmenu (but keep dmenu as an alternative)
  • Make new colorschemes
    • nord
    • dracula
    • catppuccin
    • kanagawa
  • Rice Firefox or switch to vieb
  • Create conky and eww widgets
  • Remove unused patches
  • Give credit to proper persons and projects

Dependencies

Mandatory
  • Xorg (for beginners, I recommend installing the whole package)
  • xrdb (for reloading xresource colorschemes)
  • A terminal emulator
    • if you use anything other than wezterm, modify the line after super + Return in ~/.config/sxhkd/sxhkdrc to your terminal's name (the theme_changer script will only change the colorschemes of wezterm, alacritty or kitty)
  • rofi (for opening programs)
  • dmenu (for showing keybindings, changing theme, using as power menu etc)
  • luastatus (for status info)
  • sxhkd (for shortcuts)
  • feh (for setting wallpaper)
  • Font: Iosevka Nerd Font
    • You can also use any other nerd font, but don't forget to add that font to *fonts[] in ~/.config/dwm/config.def.h and recompile)
Optional

You may choose not to install any of these and but doing so might make some things not work as intended

Setup

Arch Linux or Arch based distro

Work in Progress!!!

Mandatory Steps

WARNING!!! Backup your dotfiles from your home directory. These steps below will overwrite your configs.

If you don't want to use my configs for programs other than dwm and dmenu, then manually change the ~/.bin/theme_changer or else things might get out of control

  • Clone this repo to your preferred directory and cd into it - git clone https://github.com/junnunkarim/dotfiles-linux && cd dotfiles-linux

  • Install mandatory dependencies

    • sudo pacman -Su --needed base-devel coreutils xorg wezterm lua sxhkd feh ttf-iosevka-nerd
    • Install luastatus
      • sudo pacman -Su --needed cmake yajl python-docutils
      • Continue from here - luastatus
  • Copy necessary configs -

    • cp -rf .bin .Xresources .xinitrc ~
    • If you won't use my bashrc then add .bin to your $PATH variable
    • Do not copy .xsession as it will change your keyboard layout to dvorak.
    • cp -rf .config/wezterm .config/dwm .config/dmenu .config/rofi .config/sxhkd .config/wallpaper ~/.config/
  • Build dwm and dmenu

    • cd ~/.config/dwm && sudo make install
    • cd ~/.config/dmenu && sudo make install
  • Create a desktop entry for dwm

    • sudo vim /usr/share/xsessions/dwm.desktop
     [Desktop Entry]
     Encoding=UTF-8
     Name=dwm
     Comment=the dynamic window manager
     Exec=dwm
     Icon=dwm
     Type=XSession
    
  • Open ~/.config/sxhkd/sxhkdrc and ~/.config/dwm/config.def.h in a text editor and modify the keybindings to your needs

  • Extract the gtk themes from .themes directory to your $HOME/.themes directory

  • Login to dwm using a display manager

    • After getting into dwm press super + t and choose any colorscheme (this is to load the wallpaper for the first time)

Optional steps

For each options below, make sure that you are in the dotfiles-linux directory

  • Install paru (AUR helper)
    • git clone https://aur.archlinux.org/paru.git
    • cd paru
    • makepkg -si
  • If you want to use my .bashrc
    • cp .bashrc ~
    • sudo pacman -Su --needed exa starship
    • paru -S --needed macchina
  • nvim dotfiles
    • cp -rf .config/nvim ~/.config
  • If you want to use my .vimrc
  • brightnessctl
    • sudo pacman -Su --needed brightnessctl
  • picom
    • paru -S --needed picom-pijulius-git
  • networkmanager-dmenu
    • paru -S --needed networkmanager-dmenu-git
  • redshift
    • sudo pacman -Su --needed redshift
  • Dropdown terminal
    • paru -S --needed alacritty tdrop tmux
    • cp -rf .config/alacritty ~/.config
  • zathura
    • sudo pacman -Su --needed zathura
    • cp -rf .config/zathura ~/.config/
  • slock
    • cp -rf .config/slock ~/.config/
    • cd ~/.config/slock && sudo make install
    • Continue lockscreen setup using arch wiki - slock

Default Keybindings

Standards
super + [any key] == system main shortcuts
super + shift + [any key] == system main shortcuts
super + ctrl + shift + [any key] == system low priority shortcuts
super + alt + shift + [any key] == system low priority shortcuts
alt + [any num or alphabet key] == open applications
ctrl + [any num or alpabet key] == open other programs or scripts

Keybindings that depend on dwm
Keybinding Action
super + b toggle bar on/off
super + s switch a window form stack with master
super + c close a program
super + shift + q quit dwm (only if all programs are closed)
super + space toggle floating on/off
super + left/right increase/decrease window size
super + shift + ctrl + space cycle through all layouts
super + tab move through active tags clockwise
super + backtick move through active tags anti-clockwise
super + 0 (zero) toggle gaps on/of
super + shift + i hide/unhide window
super + shift + r restart dwm
super + f toggle fullscreen
super + 0-9 go to the specified tag
super + shift + 0-9 move selected window to the specified tag
alt + tab move through window focus clockwise
alt + backtick move through window focus anti-clockwise
Keybindings that are window manager agnostic (sxhkd)
Keybinding Action
super + return/enter open terminal
super + shift + return/enter open dropdown terminal
super + l lock screen
super + backspace reload sxhkd keybindings
super + n open network menu
super + shift + n open/close notification center
super + shift + escape force kill a program
super + t open theme switcher
super + x open powermenu
super + k show all keybindings
super + d open rofi
super + ctrl + r turn on bluelight filter (redshift)
super + ctrl + n turn off bluelight filter (redshift)
super + ctrl + p turn on compositor (picom)
super + ctrl + u turn on compositor (picom)
super + ctrl + g open color picker (gpick)
super + alt + f open file manager (thunar)
super + alt + n open file manager (nnn)
super + alt + b open chromium
super + alt + e open firefox
super + alt + e open vim
super + alt + h open bottom
prtsc take fullscreen screenshot now
super + prtsc take interective screenshot
alt + prtsc take fullscreen screenshot after 5 sec
ctrl + prtsc take fullscreen screenshot after 10 sec
super + F1 increase brightness
super + F2 decrease brightness
super + F5 increase volume
super + F6 decrease volume
super + F7 toggle mute on/off

Active dwm Patches

click here
  • BAR_AWESOMEBAR_PATCH
  • BAR_LTSYMBOL_PATCH
  • BAR_STATUS_PATCH
  • BAR_STATUSBUTTON_PATCH
  • BAR_STATUS2D_PATCH
  • BAR_SYSTRAY_PATCH
  • BAR_UNDERLINETAGS_PATCH
  • BAR_TITLE_LEFT_PAD_PATCH
  • BAR_BORDER_PATCH
  • BAR_CENTEREDWINDOWNAME_PATCH
  • BAR_EWMHTAGS_PATCH
  • BAR_IGNORE_XFT_ERRORS_WHEN_DRAWING_TEXT_PATCH
  • BAR_PADDING_VANITYGAPS_PATCH
  • ATTACHBOTTOM_PATCH
  • CENTER_PATCH
  • COMBO_PATCH
  • COOL_AUTOSTART_PATCH
  • CYCLELAYOUTS_PATCH
  • FOCUSONNETACTIVE_PATCH
  • FSIGNAL_PATCH
  • LOSEFULLSCREEN_PATCH
  • NET_CLIENT_LIST_STACKING_PATCH
  • ONLYQUITONEMPTY_PATCH
  • RESTARTSIG_PATCH
  • SHIFTVIEW_CLIENTS_PATCH
  • STACKER_PATCH
  • SWITCHTAG_PATCH
  • TOGGLEFULLSCREEN_PATCH
  • VANITYGAPS_PATCH
  • VANITYGAPS_MONOCLE_PATCH
  • XRDB_PATCH
  • ZOOMSWAP_PATCH
  • TILE_LAYOUT
  • MONOCLE_LAYOUT

Screenshots

click here

Catppuccin (Macchiato)

img img

Cozy-Night

img img

Dracula

img img

Gruvbox

img img

Nord

img img

r/unixporn

Credit

  • I do not take any credit for the images I use as wallpaper. I simply upscaled and changed the colorscheme of some wallpapers to match with my setup. But all credit goes to the original author. Since I have been collecting these wallpaper from various sources, for most of the images I do not know who the original author is. So,

    • If you know the name of the author, please let me know. I will surely mention their name in .config/wallpaper directory.
    • If you are the artist and you do not want me to redistribute your art, then let me know. I will remove your art from my git repo.
  • Name of the image artists that I know are listed here

  • adi1090x mainly for his Archcraft, his scripts (from where I learned a lot) and his rofi configs

  • NvChad for the neovim configs

  • karlivory for fixing the need to restart dwm when changing theme

  • Petingoso for modifying the theme_changer script to also change gtk theme

About

Theres no place like $HOME


Languages

Language:C 75.1%Language:Shell 19.5%Language:Lua 3.3%Language:Roff 1.0%Language:Makefile 0.9%Language:Vim Script 0.2%