GithubHelp home page GithubHelp logo

simulatan / dotfiles Goto Github PK

View Code? Open in Web Editor NEW
18.0 1.0 1.0 14.07 MB

My dracula themed dotfiles (hyprland, kitty, neovim, eww, zsh, neofetch, ...)

License: MIT License

Shell 76.14% Vim Script 7.51% Sass 0.42% SCSS 10.56% CSS 5.37%
dotfiles dotter i3 i3-wm linux zsh ohmyzsh dunst neovim-dotfiles picom-config

dotfiles's Introduction

Dotfiles (Dracula)

Hello and welcome to my dotfiles repository!

This repo contains the most important config files from my linux installations.

I configured most of the things in this repo to follow the dracula theme color palette.

Screenshots

Desktop with neofetch, cmatrix, polybar, bspwm, dunst

Volume Notification with a song playing Vim setup
Volume Notification Vim Setup

Software

Category (Package-)Name
WM bspwm
Terminal kitty
Shell zsh
Bar polybar
Compositor picom
Editor neovim
Notifications dunst
Specs Display neofetch
Utility Scripts volume, lock (package "bin", uses betterlockscreen, i3lock-color or i3lock)

Fonts

Fontawesome and JetBrains Mono Nerd links lead to the things downloaded by the script

Install these fonts either manually or by running the install-fonts.sh script in the root dir of the repo.

How to install my dotfiles

Installing dependencies

Required packages for the different packages / configs can be found in the .packages file of the config directory (made on arch, which means that most required packages should be included. For example, xcwd is pre-installed on fedora, meaning you wouldn't be able to tell that it's a dependency that needs to be installed elsewhere).

My recommendation is to craft a simple script that installs the required dependencies with your package manager. For example (pacman): sudo pacman -S $(cat .packages | sed '/#/d' | grep -v "^[?]" | tr -d '>+?' | tr '\n' ' ') This script will install all dependencies except packages that are prefixed with ? (packages that can be useful but aren't requried). To ignore more dependencies, add the prefix char to the grep call in the [], for example: ^[?] -> ^[?+] to only install required packages (and the core)

.packages syntax

  • >PACKAGE: this package is the core of the package, for example i3-gaps for the i3 config.
  • PACKAGE: this package is required
  • +PACKAGE: this package is not required, but recommended
  • ?PACKAGE: this package is not required, but can be useful
  • # COMMENT: these lines contain comments regarding the package, like when you should install it or what it's useful for, these lines should be skipped in your install script

Installing the configs

I use dotter to manage the dotfiles and bring them to the right place, see it's wiki. Essentially, clone and just run ./dotter deploy after adding packages = [ "package1", "package2" ] (note: find the available packages in the .dotter/global.toml file) to your .dotter/local.toml. That'll symlink or copy your files in place.

Configuring and variables

This section will show the available variables as of c6dc1a6, read the source to find out the current variables.

zsh

  • plugins: the OhmyZSH plugins to use
  • plugins_extra: if you want to have additional plugins on top of the default of the plugins variable, add the names here.
  • plugins_external: plugins on GitHub in the format user/repo - to be added by zinit
  • editor: what editor to use (sets the EDITOR env variable)
  • java_dir: my ZSHRC will search this location for the newest available java installation and configure the shell to use that one. Useful if you install java through IntelliJ and can't be bothered to manually update the shell to use the newest update

WM

  • terminal: the terminal to open when pressing super + t
  • terminal_arguments: arguments to add to the terminal executeable, for example xcwd (outputs the directory open in the terminal that's currently focused, tested in kitty) like this: $(xcwd)
  • task_manager: the command to run in the terminal to start the task manager
  • file_manager: the command to run in the terminal to start the file manager

i3

  • file_manager: the file manager to open when pressing super + e

polybar

  • keyboard_id: the ID of the keyboard to use for the hackspeed module get by running xinput test-xi2 --root | grep \(KeyPress\) -A 1, typing something, and then reading the device field
  • battery_id: the ID of the battery to display in polybar get by running ls -1 /sys/class/power_supply/
  • thermal_zone: the ID of the sensor to use for the temperature monitor get by running for i in /sys/class/thermal/thermal_zone*; do echo "$i: $(<$i/type)"; done and choosing the right one

Available scripts

NOTE: All scripts (except for install-fonts.sh) are symlinked into the bin directory thus, you have to enable the bin package in your .dotter/local.toml file

  • install-fonts.sh: automatically installs the required fonts for my setup
  • bin/caps-lock.sh call to send a caps lock notification - bind it on the release of the caps lock key
  • bin/lock.sh: locks the screen with either i3lock-color or vanilla i3lock, depending on what you have installed
  • bin/volume.sh: call to send a volume notification, see above
  • polybar/currently-playing: prints the current playing song using the playerctl utility
  • polybar/dunst-mute-status.sh: displays either Dunst muted or nothing
  • polybar/pacman-aur-updates.sh: prints the number of total package upgrades (pacman + aur)
  • rofi/power-menu.sh: shows a rofi menu to manage power state on your device (power off, lock, logout, suspend)
  • rofi/sxhkd-keybinds.sh: shows a rofi menu with an overview of the keybinds declared in the SXHKD config file
  • rofi/vpn.sh: shows a rofi menu to select or disconnect from a vpn (uses nmcli)
  • rofi/wifi-menu.sh: shows a rofi menu to select or disconnect from a wifi network (uses nmcli)

dotfiles's People

Contributors

simulatan avatar wolkenklar avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar

Forkers

wolkenklar

dotfiles's Issues

Fix `sxhkd-keybinds` when no comments are above the keybind

Currently, the sxhkd-keybinds script only works with keybinds in the form:

# does things
super + p
	notify-send "Hey, I'm doing something!"

but not if you leave out the comment like this:

super + p
	notify-send "Hey, I'm doing something!"

This change requires knowledge with AWK (which I currently lack), and thus, I'd be grateful if someone could help me with this issue.

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.