Giter VIP home page Giter VIP logo

awesome-dotfiles's Introduction

Awesome Dotfiles

Pastel Theme

Mirage Theme

Contents

  1. Details
  2. Features
  3. Dependencies
  4. Installation
  5. Folder Structure
  6. Application Theming
  7. Keybinds
  8. Notes

Details

  • Shell: ZSH
  • WM: awesome
  • Theme: Qogir Dark
  • Icons: Tela Dark
  • Cursor: xCursor Breeze Light
  • Terminal: Alacritty

Features

  • Super lightweight
  • Easy installation / configuration
  • Very few dependencies
  • Exit screen
  • Locking (via i3lock)
  • Touch screen friendly (I primarily run this on a microsoft surface pro 6)
  • Automatic dpi / resolution scaling
    • Note that xft.dpi must be properly assigned in the .Xresources file if you are using a high DPI screen
  • Supports multi monitor setups!
    • The top bar appears on every monitor, and the side bar only appears on the main monitor
  • i3-like keybinds
  • Very stable: Built off of the awesome 4.3 release, no bleeding edge git versions required here!

Dependencies

I have made my best effort to reduce the number of dependencies by using the awesome API to its fullest extent, and allowing users to specify their preferred applications via the rc.lua file (see installation section). That being said, here are the dependencies:

Dependency Description
awesome Window manager
feh Fast image viewer used as wallpaper setting utility
picom-ibhagwan Window compositor, eliminates screen tearing and allows for cool fade effects. ibhagwan version required for mirage theme
rofi Application launcher
imagemagick OPTIONAL BUT NEEDED IF USING A DIFFERENT BACKGROUND, used in config to generate blurred wallpaper

Optional Dependencies

These will improve the user experience but aren't required: Bear in mind that most of these dependencies come preinstalled on non arch systems. I would recommend reading their descriptions below to determine which ones you need to install. Alternatively, set up my config and install the packages based on what isn't appearing in the top panel.

  • i3lock: Will be opened when the lock icon is selected in the exit window
  • acpi: Battery managing cli application, used by top bar widget to determine battery status
  • bluez, bluez-utils: Bluetooth cli application, used by top bar widget to determine if bluetooth is on
  • blueman: Bluetooth managing application, spawns when the bluetooth top panel icon is clicked
  • scrot: Screenshot tool, which is mapped to the Print Screen key in keys.lua. If you want to meet this dependency, ensure that the ~/Pictures folder exists, otherwise the program will save your screenshots to your home directory
  • alsa-utils: Provides kernel driven sound drivers, which the control of has been mapped to volume keys in keys.lua
  • xbacklight: Controls display brightness, which the control of has been mapped to brightness keys in keys.lua

Fonts You Should Install

  • SF Text: System font used by macOS, iOS, and watchOS. Used in this config as the WM font. Also used as font for firefox
  • MesloLGS: Terminal font, customized to work flawlessly with the zsh theme used, mentioned in the application theming section of the readme.

Installation

  1. Ensure all dependencies are met
  2. Clone this repository and place its contents into your .config folder
  3. edit the awesome/rc.lua file to select your theme, and define your desired default and startup applications, as well as network interfaces
  4. navigate to the awesome/wallpaper folder and place your desired wallpaper there, ensuring that it is named either wallpaper.jpg if using the pastel theme, or mirage.png if using the mirage theme. Remember to delete the blurredWallpaper file in order to make the blurring script recognize a new wallpaper has been added and needs to be blurred
  5. optional: edit the keys.lua file to change / add keybinds

Awesome Folder File Structure

In order to avoid a poorly organized rc.lua spanning thousands of lines, it has been split into multiple files / folders. I have taken extra care to create a logical directory structure that will hopefully allow those new to awesomewm to have an easy time navigating it.

  • rc.lua: The main script that runs when awesome starts. Defines theme and default applications, and selects them
  • keys.lua: Contains keybinds
  • rules.lua: Contains window rules
  • pastel.lua: Initializes the pastel theme (spawns all of the pastel theme components)
  • mirage.lua: Initializes the mirage theme (spawns all of the mirage theme components)
  • themes: Contains files with theme variables (ie colors, sizing, font, etc)
  • icons: stores icons used in WM
  • components: Folder that contains all of the components of the WM, such as panels, volume and brightness sliders, notification pop-ups, etc
  • configuration: Contains theme-based config files for applications (ie rofi, picom, etc)
  • widgets: Stores widgets used in the functionality of the components
  • wallpaper: Where wallpaper and its blurred varient is generated / stored

Other cool applications you should install

  • redshift: Changes screen warmth based on the time of day
  • neofetch: Displays system information in the terminal
  • cmatrix: Terminal base matrix text effect

Application Theming

Firefox

Pastel

  1. Set up my custom Firefox theme
  2. Use this homepage
  3. Use SF Text font

Mirage

  1. Set up the blurredfox theme
  2. Replace the colors/blurred.css with the one found in this repo under awesome/configuration/mirage/blurred.css

Spotify

  1. Install Spicetify
  2. chown spotify directory: sudo chown $USER -R /opt/spotify
  3. run spicetify once to generate config
  4. spicetify backup apply enable-devtool to enable devtools
  5. Copy my spicetify folder to ~/.config
  6. run spicetify update restart

Neovim

  1. Ensure the nvim folder from the repo has been copied into the ~/.config directory
  2. Install VimPlug with
curl -fLo ~/.local/share/nvim/site/autoload/plug.vim --create-dirs \
    https://raw.githubusercontent.com/junegunn/vim-plug/master/plug.vim
  1. Open neovim and run :PlugInstall
  2. Exit and reopen neovim

Zsh

  1. Install oh-my-zsh
sh -c "$(curl -fsSL https://raw.github.com/robbyrussell/oh-my-zsh/master/tools/install.sh)"
  1. Change the zsh theme to powerlevel10k
  • Download this font, and move it into your /usr/share/fonts directory
  • Install powerlevel10k with the command below:
git clone --depth=1 https://github.com/romkatv/powerlevel10k.git ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/themes/powerlevel10k
  • Open ~/.zshrc with your fave text editor
  • Set ZSH_THEME="powerlevel10k/powerlevel10k" and save the file
  1. Install Plugins (Note that the ~/.zshrc edits are already done in this repo)
  • Syntax highlighting (copy and paste the below command to install)
    git clone https://github.com/zsh-users/zsh-syntax-highlighting.git ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/zsh-syntax-highlighting
    
    • Edit ~/.zshrc, add zsh-syntax-highlighting to the plugins section
  • Autosuggestions (copy and paste the below command to install)
    git clone https://github.com/zsh-users/zsh-autosuggestions ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/zsh-autosuggestions
    
    • Edit ~/.zshrc, add zsh-autosuggestions to the plugins section
  1. Fini! Reopen the terminal to view the fruit of your labor

Keybinds

Note that the modkey is set to be the windows / command key. If you would like to use a different modkey check out the keys.lua file. If you are new to awesomewm, note that tag refers to workspace, and client refers to window. Shown below are the main keybinds that most users will care about.

Keyboard

  • mod + enter: Spawn terminal
  • mod + d: Spawn rofi (an application menu)
  • mod + f: Make client fullscreen
  • mod + m: Maximize client
  • mod + n: Minimize client
  • mod + shift + n: Unminimize client
  • mod + [1-9]: Switch to tag [1-9]
  • mod + shift + [1-9]: Move client to tag [1-9]
  • mod + space: Change the tag layout, alternating between tiled, floating, and maximized
  • mod + [up / down / left / right / h / j / k / l]: Change client by direction
  • mod + Shift + [up / down / left / right / h / j / k / l]: Move client by direction
  • mod + Control + [up / down / left / right / h / j / k / l]: Resize client by direction
  • mod + Escape: Show exit screen

Mouse

  • mod + drag with left click: Move client
  • mod + drag with right click: Resize client

Notes

  • Awesome API Documentation
  • If you encounter any problems please open an issue in this repo and I will gladly investigate it
  • If you would like to change the wallpaper, ensure that the wallpaper is named "wallpaper" and is located in the ~/.config/awesome folder. Also ensure that you delete the blurred wallpaper file in order for the blurring script to recognize it needs to generate a new blurred wallpaper

awesome-dotfiles's People

Contributors

deastl avatar lorenzino65 avatar rsgrava avatar ruvmello avatar willpower3309 avatar

Stargazers

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

Watchers

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

awesome-dotfiles's Issues

How to generate file headers

Out of curiosity is there a program or utility you used to generate the cool headers at the beginning of your AwesomeWM config files or did you just create them by hand?

[Feature request] Keyboard layout switcher.

The feature:

An indicator on the top panel showing which layout is in use.

Additional behavior:

When clicked, the indicator will show all the available layout so you can switch to one of them, and maybe a keyboard shortcut for it.
thanks for reading,
have a nice day.

titlebar blur not working in certain apps

2022-02-13-185317_1920x1080_scrot
The titlebar blur is not working on certain apps like nautlius, vscode etc. I have been checking out if it was something to do with picom but wasn't able to find out what was going wrong.

Pin specific program to tags

I haven't been able to pin programs to specific tags using this setup.

I have tried setting up rules like in the vanilla rc.lua with properties = { tag = tags[1][5] } }, in rules.lua but it has no effect. Other rules are working for the program.
I believe it has to do with the non standard tag creation in the rc.lua.

Has anyone got it working?

Autorun programs sometimes vanishes and requires awesomewm restart

For some reason, i have two programs that keeps constantly vanishing (terminating/killing) itself after some time
It's xidlehook for i3lock and mpris-proxy for bluetooth control.
I'm not sure how to track what is happening, but these two things are restarting fine after awesomewm restart

I think these dotfiles should consider possibility of crashing program and should automatically notify you about that, restart or at least log that somewhere.

terminal changed and autohide left panel

why did you change terminal back to alacritty again? and is there any way to auto hide the left panel when a program is running?

please forgive my newb questions

Keys.lua syntax errors

I downloaded this theme and it was working fine but as soon as i touch keys.lua everything brakes. I cant add any Keybinds (probably because im not a programmer). Also there is a syntax error i cant fix.

Multimonitor Setup

Hi there, first i would like to say that i love your work!

I've been running your setup on my laptop for a while now and thought it was time to get it on my desktop PC as well. The problem I'm facing now is that only one of my monitors are working. How and where do i enable multi monitor setup?

I am fairly new to linux over all and if you need some input just tell me what to enter :D

Volume control not working

Hello,
I am a newbie in Awesome WM. After I have configure this dotfile. I got error in while changing volume.
Error occurs:
in line 90 of volume-adjust.lua: attempt to compare number with nil.
I don't understand the error and how to solve it.
Please help. Thank you.

Titlebar Modification

First and foremost, thank you for realizing the concept from r/unixporn!

When I tried to use your config, I was having difficulties on implementing window title and window icon. Usually I just add awful.widget.iconwidget(c) to the titlebar setup, but because yours is kinda different then what other config I have tried and the docs, I ended up with broken titlebar with no buttons nor icon. Could you shed this lua noob some light please on how to implement window title and window icon on your amazing config ?

notification.lua:117:in main chunk error

Oops, an error happened! /home/x/.config/awesome/components/notification.lua:-117:attempt to call a nil value(field 'connect_signal')

`Oops ,there were errors during startup!
error while running function
stack traceback:
/home/x/.config/awesome/components/notification.lua:-117:in main chunk
[C]:in function 'require'
/home/x/.config/awesome/rc.lua:-31:in main chunk
error: /home/x/.config/awesome/components/notification.lua:-117:attempt to call a nil value(field 'connect_signal')``

[Feature Request] Shared tags between monitors option

First and foremost, I love what you are doing, my desktop looks beautiful!

I'm on a dual monitor setup and I would really like it that if I, for example, press [modkey] + 3, it displays the third tag on both monitors.
I tried to achieve this by myself but wasn't quite able to do it.

Switch to tag

Switch to tag don't work for me.
If I start firefox, it starts on current tag.

autorun programs not autorunning

So, the autorun programs in my rc.lua just do not run. I tried changing the shell from zsh to bash, I tried replacing both the autorun list and the lua code that runs it with snippets directly from this repository. None of it worked, I also ran the commands in the terminal and they ran just fine. All the programs also used to run fine and I don't think i changed anything. Would you know what is going on?

this is my rc.lua https://pastebin.com/SYu6KMSj

Thank you,

move the calendar widget

Hi, I wanted to know how is possible to move the calendar widget to the top right corner of the screen (instead of top center)

Specify awesome version beyond "git"

I tried using the master of awesome (29f6387defd) but that doesn't work with this config. I also tried 6101ef51 (which is currently in the AUR PKGBUILD of awesome-git) but that also doesn't work. I'm getting the following error:

error while running function!
stack traceback:
	[C]: in function 'require'
	/home/tamas/.config/awesome/components/notifications.lua:16: in main chunk
	[C]: in function 'require'
	/home/tamas/.config/awesome/rc.lua:31: in main chunk
error: /home/tamas/.config/awesome/components/notifications.lua:16: module 'ruled' not found:
	no field package.preload['ruled']
	no file '/usr/local/share/lua/5.3/ruled.lua'
	no file '/usr/local/share/lua/5.3/ruled/init.lua'
	no file '/usr/local/lib/lua/5.3/ruled.lua'
	no file '/usr/local/lib/lua/5.3/ruled/init.lua'
	no file '/usr/share/lua/5.3/ruled.lua'
	no file '/usr/share/lua/5.3/ruled/init.lua'
	no file './ruled.lua'
	no file './ruled/init.lua'
	no file '/home/tamas/.config/awesome/ruled.lua'
	no file '/home/tamas/.config/awesome/ruled/init.lua'
	no file '/etc/xdg/xdg-awesome/awesome/ruled.lua'
	no file '/etc/xdg/xdg-awesome/awesome/ruled/init.lua'
	no file '/etc/xdg/awesome/ruled.lua'
	no file '/etc/xdg/awesome/ruled/init.lua'
	no file '/usr/local/share/awesome/lib/ruled.lua'
	no file '/usr/local/share/awesome/lib/ruled/init.lua'
	no file '/usr/local/lib/lua/5.3/ruled.so'
	no file '/usr/lib/x86_64-linux-gnu/lua/5.3/ruled.so'
	no file '/usr/lib/lua/5.3/ruled.so'
	no file '/usr/local/lib/lua/5.3/loadall.so'
	no file './ruled.so'
	no file '/home/tamas/.config/awesome/ruled.so'
	no file '/etc/xdg/xdg-awesome/awesome/ruled.so'
	no file '/etc/xdg/awesome/ruled.so'
	no file '/usr/local/share/awesome/lib/ruled.so'

This is pretty hard to google, but it seems like this is a part of awesome that's removed/renamed in more recent versions. So what's the latest version (git SHA) of awesome that works with this config?

Why am i getting all the issues

Welp its me again (Im sorry)

Here is the issue straight

When i try to Change the volume to anything It shows me this

Screenshot from 2022-02-23 15-27-32

what is happening ? It just aint working , I used the dependencies you had told

I did the steps But the ui is broken

I had installed all the nessasary dependencies i even logged into aawesome but the problems start from there , when i Tried to click on anything it did not work no keybinnds no clicks nothing only the ui was loaded , the only thing which i could click was the callender but it was of no use

Picom config?

Hey, great config, i was off unixporn for some time but i saw now your Mirage config, very nice!

Any chance you could share your picom config? I am struggle to get the round corners properly, without showing some white squares in some edges.

If you could, would be nice! Thanks.

Bug exit screen

On line 243 of keys.lua change exit_screen_show() to awesome.emit_signal("show_exit_screen")
You probably forgot to update that line :p

[Feature Request] Shared tags between monitors option

First and foremost, I love what you are doing, my desktop looks beautiful!

I'm on a dual monitor setup and I would really like it that if I, for example, press [modkey] + 3, it displays the third tag on both monitors.
Some people seem like how it is right now so the feature should of course be optional. I tried to achieve this by myself but wasn't quite able to do it.

Picom not loading correctly?

I'm relatively new to the linux wm world, and started off with awesomewm when I saw your post on reddit. I was in love with it, and wanted to switch to your config. I followed the steps outlined in the installation instructions, and I have some issues.
2020-12-31-094445_1920x1080_scrot

  1. The left sidebar is not all the way to the top
  2. I cant increase the volume with my keyboard, when I try to, the error on the top right pops up
  3. There is no blurring effect, and no rounded corners. The background is either completely black, or completely transparent. (I'm using the ibhagwan picom version as you suggested)
    Can you please help me out with these? Thanks

Focused client on right screen moves client to first screen on workspace switch via left panel

I have dual-monitor setup
When i use just modkey + 1/2/3/4 when i focused on client on second screen, it changes workspace on that screen, which is fine and how it should work.

But when i press buttons (left panel) and i didn't click on anything on left screen, it moves first client from right screen to left screen to workspace that i clicked.

I tried searching through awesome/widgets/tag-list.lua, but couldn't find behaviour that would describe such issue.

[Feature Request] Some scripts are incompatible with the fish shell

Summary

As we have discovered in #31, some of the scripts are not working, if the default shell is fish. Unfortunately, this also affects the network widget and possibly other areas, that I haven't noticed yet. Especially, in the network widget, the differences between fish and bash are so big, that I doubt, it will be possible to write a version, that runs in both shells. Therefore my proposal would be, to have two versions of the script and use the SHELL environment variable, to choose the script corresponding to the users login shell.

Example

An example of the big differences between bash and fish I mentioned earlier:

# Bash
if [[ -n "${$wireless}" && -d "${net}${wireless}" ]]; 
then
  ...
fi

# Fish
if test -n "$wireless" && test -d "$net$wireless"
  ...
end

Points to discuss

  • Is there really no way to write a script that runs in both shells?
  • Should we try, to auto detect the users current shell, e.g. by using the SHELL environment variable, or rather have a variable, in rc.lua, where the user can change the shell manually?
  • Should we keep the scripts inside the lua files, or move them to dedicated shell files, to make things a bit cleaner?
    • Downside of this could be, that you have to make the scripts executable after cloning the repository

Once we have come to a conclusion about the above points, I am willing to create a pull request, containing the network manager and everything else, I discover until then, in a version working with fish.

Keybinds not working.

Howdy, first of all thank you for sharing the dotfile and giving good and straight foward instructions but I'm having a problem after installing the dotfiles, none of the keybinds are working for some reason except for master + esc, and because of the lack of the right click menu (there's a way to put it back in via the dotfiles?) I can't even use the terminal or any applications.

I'm using manjaro on a VM (VirtualBox), I'm testing dotfiles before I use them on my main laptop.

Authentication Error pamac on Manjaro

Hi,

I am using Manjaro Awesome Community Edition. When applying your awesome theme (pun intended) everything looks great, except that pamac is not usable anymore, because authentication fails.

When reverting to my backup config and rebooting, it works again. Any ideas?

btw, a minor tweak: in your spicetify config your home is set...

Thanks for the great work!

Notifications and starting up applications not working

I have been using these dotfiles for some while and I have never seen it make an notification window. I tried to add a copyq to startup into the code but it is not working. I don't think that this part of the code is working.

I have done some modifications but I don't think I broke it somehow.

thanks for help

Pastel Volume Icon

It seems that the volume icons of Pastel theme are all the same, i.e., volume.png, volume-low.png, and volume-off.png.

problem with update brightness

in keys.lua there is error with the name " UpdateBriOSD " call "UpdateBrOSD".
with this the slider move (not flowing) but gave me error in function ToggleBriOSD and ToggleVolOSD, i don't know why, with log "awesome timer not started"

Left Panel Functionality

I'm a little confused about the function of left panel in Pastel theme. It seems to "store" the window launched when given icon is clicked instead of launching corresponding applications. Is this the supposed functionality of left panel? Thanks!

sidebar icons

What icons are you using for the pastel sidebar? I would like to add another shortcut to a folder but i want to stick to the same icon theme.

rofi config not working

The icon size in rofi was quite small for my laptop screen, so I tried to change the size by modifying the rofi config in mirage. It did not take effect after refreshing awesome or rebooting. I also tried to place it in ~/.config/rofi but that did not work either. Any idea how I can get it to work?

Workspace/tags indicator?

Hi there,

great work, theme is looking really awesome! I am missing a workspace/tags indicator, so some kind of indicator which shows on which workspaces open applications are. Am I missing it or is it not included / configured?

Arcolinux unable to login, sending back to login screen

I'm running Arcolinux and have installed all dependencies (uninstalled awesomewm from Arcolinux) and after copying the awesome config folder into my .config folder, I'm unable to login. I login but it sends me back to the login screen. Note that I managed to get your config working when replacing the awesome folder while logged in and restarting awesome.

Once I logged out, I can't get back in. Sorry, tried to contact directly as this is obviously something on my end but any help is appreciated (new to awesomewm)! All dependencies are installed, just wondering what would cause me to get sent back to login screen.

Tested this on a different distro (Archcraft) and it seemed to work fine though.

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.