-
Notifications
You must be signed in to change notification settings - Fork 26
Documentation
/
The root folder container the rc.lua which is the entry point for awesome.
/src/
The src folder contains the most important files for awesome such as the widgets or core components.
/mappings/
Actually its bindings, It just annoyed me to not have a folder icon in VS Code! Here lie all keybindings.
/crylia-bar/
This is where the bar is defined, its not in the source since it's completely independent.
/src/widgets/
Every widget is in here
/src/modules/
Every module is in here, e.g. Title bar, OSD's etc
/src/core/
This is what for me is core stuff for awesome, your mileage may vary.
/src/theme/
Everything theme related like the colors, the user_variables, default themes are here and it's your main configuration folder!
/src/assets/
Images, svg's or json/txt files are in here
/src/scripts/
Every script where I thought its better to be in a file is here.
/src/tools/
Really just stuff that helps me like the image lookup or auto start
If you want to change stuff like the dock programs, widgets in the bar or default programs then you are in the right place!
This file contains the most important stuff, everything is explained in the file itself but I'm gonna add it here as well for completion reasons.
- layouts = {}
Enter the layouts you want to use, you can choose between these:
awful.layout.suit.tile
awful.layout.suit.tile.left
awful.layout.suit.tile.bottom
awful.layout.suit.tile.top
awful.layout.suit.floating
awful.layout.suit.fair
awful.layout.suit.fair.horizontal
awful.layout.suit.corner.nw
awful.layout.suit.corner.ne
awful.layout.suit.corner.sw
awful.layout.suit.corner.se
awful.layout.suit.magnifier
awful.layout.suit.max
awful.layout.suit.max.fullscreen
awful.layout.suit.spiral.dwindle
- icon_theme = ""
Be careful here, changing it will most likely break the icon_handler
- autostart = {}
Pretty self explanatory, just add everything that should be auto started as string (terminal command)
- network = {wlan = "", ethernet = ""}
run ip a
in your terminal and enter fill in the blanks with your interface name
- font = { regular = "", bold = "", extrabold = "", specify = ""}
Use any font you like, just fill in all blanks
- terminal = ""
Your desired terminal
- modkey = ""
E.g. "Mod4" for super/meta/windows key
- wallpaper = home .. ""
Fill in the blank with your wallpaper path, make sure awesome has access to it
- kblayout = {"", ""}
Enter as many country codes as you like, e.g. "de", "ru", "us"
- file_manager = ""
File manager, make sure to use the terminal command to start it
- screenshot_program = ""
Again, fill in the blank with your favorite screenshot tool
- dock_icon_size = dpi()
Any positive integer will do, make sure to use the dpi()
- dock_programs = {}
This one is a bit more tricky since I had to support a number of things:
- WM_CLASS <-- use xprop WM_CLASS and click a window to get this info
- program <-- terminal command to execute program/script
- name <-- A name you provide, call it whatever you like
- icon_path <-- custom icon path, make sure awesome has access
- isSteam <-- set to true if its a steam game
- forced_image_size <-- Some images need a forced width/height
Honestly this file is a mess, everything here works but I'm missing a lot where I just "hard coded" the value
Its pretty self explaining how to mess with this file.
Here you can change the main icon which is no where used afaik lol
Best is to not mess with colors here, change them where they are used.
This is where all bars come together, you really only have to mess with this file to change any bar appearance.
I explained the stuff more in detail in the code itself since Its already written there, but the most important stuff is this here:
- require("src.modules.volume_controller")(s)
To require any module follow this pattern
- s.audio = require("src.widgets.audio")(s)
Widgets are created like this, uncomment if you don't need them for performance reasons.
Some need to be passed an "s" and some don't, I prefilled all as needed.
- require("crylia_bar.left_bar")(s, { s.layoutlist, s.taglist })
You simply pass every widget you want to use on bar X as a table like this, doesn't matter how many you use, but at some point they will overlap each other.
If you are not satisfied with what you can change then either tell me with an issue or dive deeper yourself!
You can safely go into each file and mess with their margin or color values etc, its all pretty modular and straight forward.