Giter Club home page Giter Club logo

dwm-dotfiles-linux's Introduction

~/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 alacritty, 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 alacritty or kitty)
  • dmenu (for opening programs, 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 alacritty 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 ~
      • Do not copy .xsession as it will change your keyboard layout to dvorak.
    • cp -rf .config/alacritty .config/dwm .config/dmenu .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

  • 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
  • If you want to use my nvim dotfiles
    • cp -rf .config/nvim ~/.config
    • nvim --headless -c 'autocmd User PackerComplete quitall' -c 'PackerSync'
  • If you want to use my .vimrc
  • brightnessctl
    • sudo pacman -Su --needed brightnessctl
  • picom
    • sudo pacman -Su --needed picom
  • networkmanager-dmenu
    • paru -S --needed networkmanager-dmenu-git
  • redshift
    • sudo pacman -Su --needed redshift
  • Dropdown terminal
    • paru -S --needed kitty tdrop tmux
    • cp -rf .config/kitty ~/.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 dmenu
super + a open dektop applications selector (dmenu)
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
  • 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

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

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.