mirror of
https://github.com/elenapan/dotfiles.git
synced 2025-12-26 15:14:58 +08:00
uploaded rofi config, updated readme, added previews folder, uploaded lovelace theme for awesomewm
This commit is contained in:
parent
8959740747
commit
235caa57cd
11 changed files with 844 additions and 725 deletions
44
.Xresources
44
.Xresources
|
|
@ -6,8 +6,8 @@
|
|||
! ╚═╝░░╚═╝╚═╝░░╚═╝╚══════╝╚══════╝░╚═════╝░░╚═════╝░╚═╝░░╚═╝░╚═════╝╚══════╝╚══════╝
|
||||
!
|
||||
! -----------------------------------
|
||||
!Xft.dpi: 102
|
||||
Xft.dpi: 96
|
||||
Xft.dpi: 102
|
||||
!Xft.dpi: 96
|
||||
Xft.antialias: true
|
||||
Xft.hinting: true
|
||||
Xft.rgba: rgb
|
||||
|
|
@ -23,24 +23,22 @@ URxvt.scrollBar: off
|
|||
URxvt.font: xft:monospace:size=12
|
||||
URxvt.internalBorder: 22
|
||||
! =================
|
||||
|
||||
*background: #1E2541
|
||||
*foreground: #EEFFFF
|
||||
*cursorColor: #EEFFFF
|
||||
*color0: #1E2541
|
||||
*color1: #F0719B
|
||||
*color2: #5AF7B0
|
||||
*color3: #FFA56B
|
||||
*color4: #57C7FF
|
||||
*color5: #C792EA
|
||||
*color6: #89DDFF
|
||||
*color7: #EEFFFF
|
||||
*color8: #354274
|
||||
*color9: #F02E6E
|
||||
*color10: #2CE592
|
||||
*color11: #FF8537
|
||||
*color12: #1DA0E2
|
||||
*color13: #A742EA
|
||||
*color14: #47BAE8
|
||||
*color15: #DEE6E7
|
||||
*color16: #2A335A
|
||||
*background: #1D1F28
|
||||
*foreground: #FDFDFD
|
||||
*cursorColor: #C574DD
|
||||
*color0: #282A36
|
||||
*color1: #F37F97
|
||||
*color2: #5ADECD
|
||||
*color3: #F2A272
|
||||
*color4: #8897F4
|
||||
*color5: #C574DD
|
||||
*color6: #79E6F3
|
||||
*color7: #FDFDFD
|
||||
*color8: #414458
|
||||
*color9: #FF4971
|
||||
*color10: #18E3C8
|
||||
*color11: #FF8037
|
||||
*color12: #556FFF
|
||||
*color13: #B043D1
|
||||
*color14: #3FDCEE
|
||||
*color15: #BEBEC1
|
||||
|
|
|
|||
116
README.md
116
README.md
|
|
@ -1,10 +1,120 @@
|
|||
# dotfiles
|
||||
## Some details
|
||||
+ **OS**: Ubuntu 16.04
|
||||
+ **WM**: Awesome
|
||||
+ **Terminal**: Termite
|
||||
+ **File Manager**: Nemo for GUI, Ranger for terminal
|
||||
+ **Launcher**: Rofi
|
||||
+ **Editors**: Spacemacs and Vim
|
||||
+ **Browsers**: Firefox and Qutebrowser
|
||||
|
||||
OS: Ubuntu 16.04
|
||||
<!--## Latest preview-->
|
||||
<!---->
|
||||
|
||||
WM: awesome
|
||||
## Tips / Notes
|
||||
+ You can open an issue if you have any questions / problems.
|
||||
+ Are you new to AwesomeWM?
|
||||
|
||||

|
||||
Then I suggest you start from the default configuration and add pieces you like to it instead of trying to modify someone else's configuration even if you feel really comfortable with that specific config.
|
||||
Otherwise you will have no idea how anything works and how you can modify things to your own liking. Trust me, I've been there.
|
||||
|
||||
+ Don't forget to use the [API Documentation for AwesomeWM](https://awesomewm.org/apidoc/index.html).
|
||||
|
||||
It is well written and has plenty of examples.
|
||||
|
||||
### File structure
|
||||
+ I have split my `rc.lua` into multiple files for organization purposes.
|
||||
|
||||
+ The `noodle` directory contains widgets that usually take up more than 50 lines of code.
|
||||
|
||||
I prefer not filling my `bars.lua` with a ton of widget configurations, but also not making a seperate file for every widget.
|
||||
|
||||
+ In `themes` you can find a directory for each available theme.
|
||||
|
||||
Such a directory should include at least a `theme.lua` and optionally icons, wallpaper, and whatever asset you need that is theme-specific.
|
||||
|
||||
### Things to do before trying out these dotfiles
|
||||
+ Configure default applications
|
||||
|
||||
In `rc.lua` there is a section where default applications such as terminal, editor and file manager are defined.
|
||||
You should change those to your liking.
|
||||
|
||||
+ Configure autostart applications in `autostart.sh`
|
||||
|
||||
+ Install rofi
|
||||
|
||||
I use rofi extensively for window switching and launching stuff.
|
||||
|
||||
+ Install a Nerd Font
|
||||
|
||||
[Nerd Fonts](https://nerdfonts.com/#downloads) are monospace fonts with a ton of icons included.
|
||||
I use them quite a lot in my bars as icons.
|
||||
|
||||
+ Have a general idea of what my keybinds do
|
||||
|
||||
My keybinds will most probably not suit you, but on your first login you might need to know how to navigate the desktop.
|
||||
|
||||
See the next section for more details.
|
||||
|
||||
### Basic keybinds
|
||||
|
||||
I use `super` AKA Windows key as my main modifier.
|
||||
|
||||
#### Keyboard
|
||||
+ `super + enter` - Spawn terminal
|
||||
+ `super + shift + enter` - Spawn floating terminal
|
||||
+ `super + d` - Launch rofi
|
||||
+ `super + shift + q` - Close client
|
||||
+ `super + control + space` - Toggle floating client
|
||||
+ `super + [1-0]` - View tag AKA change workspace (for you i3 folks)
|
||||
+ `super + shift + [1-0]` - Move focused client to tag
|
||||
+ `super + s` - Tiling layout
|
||||
+ `super + shift + s` - Floating layout
|
||||
+ `super + w` - Maximized / Monocle layout
|
||||
+ `super + [arrow keys]` - Change focus by direction
|
||||
+ `super + j/k` - Cycle through clients
|
||||
+ `super + h/l` - Add / remove clients to / from master area
|
||||
+ `super + shift + [arrow keys] / [hjkl]` - Move client by direction. Move to edge if it is floating.
|
||||
+ `super + control + [arrow keys] / [hjkl]` - Resize
|
||||
+ `super + f` - Toggle fullscreen
|
||||
+ `super + m` - Toggle maximize
|
||||
+ `super + n` - Minimize
|
||||
+ `super + shift + n` - Restore minimized
|
||||
+ `super + c` - Center floating client
|
||||
+ `super + u` - Jump to urgent client (or back to last tag if there is no such client)
|
||||
+ `super + shift + b` - Toggle bar
|
||||
+ `super + =` - Toggle tray
|
||||
+ ... And many many more.
|
||||
|
||||
#### Mouse on desktop
|
||||
+ `right click` - Main menu
|
||||
+ `middle click` - Sidebar
|
||||
+ `scroll up/down` - Cycle through tags
|
||||
+ `double left click` - Jump to urgent client (or back to last tag if there is no such client)
|
||||
+ ... And more.
|
||||
|
||||
### More details about the sidebar
|
||||
+ Can be toggled with `super+grave`, middle clicking anywhere on the desktop, or clicking the left icon on the bottom bar.
|
||||
+ Can be activated by moving the mouse to the edge of the screen and hidden by moving the mouse out of it (these settings can be easily enabled/disabled in your `theme.lua`.
|
||||
+ By default it is always above windows, and does not grab your keyboard (so you can have it open while doing something else, or just toggle it for a second to check your battery while you are watching something in fullscreen)
|
||||
+ Most widgets (volume, search, exit, music...) are clickable.
|
||||
+ Volume and music update only when they need to, as they are subscribed to pulse and mpd events respectively.
|
||||
+ For the weather widget I modified this [polybar custom script](https://github.com/x70b1/polybar-scripts/tree/master/polybar-scripts/openweathermap-simple). It uses the [openweathermap API](https://openweathermap.org/api). If you want this to work, you will need to create an account there, get your key, look for your city ID, and place them in `noodle/weather.lua`.
|
||||
|
||||
### More details about the exit screen
|
||||
+ Activate it with `super+escape`, by clicking Exit on the sidebar, or in the right click menu (awesome -> quit)
|
||||
+ Mouse controls: Click on any icon to execute the command, `right click` or `middle click` anywhere to cancel.
|
||||
+ Keyboard controls:
|
||||
+ `escape` or `q` or `x` to cancel
|
||||
+ `p` to poweroff
|
||||
+ `r` to reboot
|
||||
+ `s` to suspend
|
||||
+ `e` to exit (logout)
|
||||
+ `l` to lock
|
||||
|
||||
## Theme previews
|
||||
### Manta
|
||||

|
||||
|
||||
### Reasons
|
||||

|
||||
|
|
|
|||
|
|
@ -7,12 +7,18 @@
|
|||
# TODO: run_once
|
||||
|
||||
function run {
|
||||
if ! pgrep $1 ;
|
||||
if ! pgrep $1 > /dev/null ;
|
||||
then
|
||||
$@&
|
||||
fi
|
||||
}
|
||||
|
||||
# Music
|
||||
run mpd ~/.config/mpd/mpd.conf
|
||||
|
||||
# Emacs daemon
|
||||
#run emacs --daemon
|
||||
|
||||
# Load terminal colorscheme and settings
|
||||
#xrdb ~/.Xresources
|
||||
|
||||
|
|
@ -20,10 +26,7 @@ function run {
|
|||
#run urxvtd -q -o -f
|
||||
|
||||
# Mpv input file
|
||||
mkfifo /tmp/mpv.fifo
|
||||
|
||||
# Volume notification daemon
|
||||
#run volume-daemon
|
||||
#mkfifo /tmp/mpv.fifo
|
||||
|
||||
# For desktop effects
|
||||
run compton --config ~/.config/compton/compton.conf
|
||||
|
|
@ -32,20 +35,29 @@ run compton --config ~/.config/compton/compton.conf
|
|||
run numlockx
|
||||
|
||||
# For battery notifications
|
||||
run xfce4-power-manager
|
||||
# run xfce4-power-manager
|
||||
|
||||
# Network manager tray icon
|
||||
run nm-applet
|
||||
|
||||
# Keyboard
|
||||
setxkbmap -layout "us,gr" -option "grp:alt_shift_toggle"
|
||||
#setxkbmap -layout "us,gr" -option "grp:alt_shift_toggle"
|
||||
#setxkbmap -layout "us,gr,ru" -option "grp:alt_shift_toggle"
|
||||
|
||||
# Kill redshift processes
|
||||
#pkill redshift
|
||||
# Caps Lock is Escape (Escape remains as is)
|
||||
# setxkbmap -option caps:escape
|
||||
|
||||
# Music
|
||||
run mpd ~/.config/mpd/mpd.conf
|
||||
# Kill redshift processes
|
||||
# pkill redshift
|
||||
|
||||
# Scratchpad
|
||||
#scratchpad
|
||||
|
||||
# Update battery status and send signals
|
||||
CHARGING="$(udevadm info --path=/sys/class/power_supply/BAT0 | grep POWER_SUPPLY_STATUS | grep Charging)"
|
||||
if [ ${#CHARGING} -eq "0" ]; then
|
||||
AWESOME_SIGNAL="charger_unplugged"
|
||||
else
|
||||
AWESOME_SIGNAL="charger_plugged"
|
||||
fi
|
||||
awesome-client "awesome.emit_signal(\"$AWESOME_SIGNAL\")"
|
||||
|
|
|
|||
|
|
@ -9,120 +9,51 @@ local helpers = require("helpers")
|
|||
local keys = require("keys")
|
||||
|
||||
-- {{{ Widgets
|
||||
local desktop_mode_widget = require("noodle.desktop_mode_widget")
|
||||
local desktop_control = require("noodle.desktop_control")
|
||||
local minimal_tasklist = require("noodle.minimal_tasklist")
|
||||
local icon_taglist = require("noodle.icon_taglist")
|
||||
|
||||
-- Volume widget prefix
|
||||
volumebar_prefix = wibox.widget.textbox(" ")
|
||||
volumebar_prefix.markup = helpers.colorize_text(volumebar_prefix.text, beautiful.prefix_fg)
|
||||
|
||||
-- Keyboard map indicator and switcher
|
||||
keyboardlayout_prefix = wibox.widget.textbox(" ")
|
||||
keyboardlayout_prefix.markup = helpers.colorize_text(keyboardlayout_prefix.text, beautiful.prefix_fg)
|
||||
mykeyboardlayout = awful.widget.keyboardlayout()
|
||||
|
||||
-- Create a textclock widget that shows date
|
||||
date_prefix = wibox.widget.textbox(" ")
|
||||
date_prefix.markup = helpers.colorize_text(date_prefix.text, beautiful.prefix_fg)
|
||||
--mytextdate = wibox.widget.textclock("%a %d %B")
|
||||
mytextdate = wibox.widget.textclock("%j days around the sun") --HAHA very useful
|
||||
-- Create a textclock widget
|
||||
clock_prefix = wibox.widget.textbox(" ")
|
||||
clock_prefix.markup = helpers.colorize_text(clock_prefix.text, beautiful.prefix_fg)
|
||||
mytextclock = wibox.widget.textclock("%H:%M")
|
||||
-- Start button widget (can toggle sidebar, tray, scratchpad)
|
||||
start_widget = wibox.widget.imagebox(beautiful.sidebar_icon)
|
||||
start_widget:buttons(gears.table.join(
|
||||
-- Left click - Toggle sidebar
|
||||
awful.button({ }, 1, function ()
|
||||
sidebar.visible = not sidebar.visible
|
||||
end),
|
||||
-- Middle click - Toggle scratchpad
|
||||
awful.button({ }, 2, function ()
|
||||
if client.focus ~= nil and client.focus.class == "scratchpad" then
|
||||
client.focus.minimized = true
|
||||
return
|
||||
end
|
||||
local matcher = function (c)
|
||||
return awful.rules.match(c, {class = 'scratchpad'})
|
||||
end
|
||||
awful.client.run_or_raise( "scratchpad" , matcher)
|
||||
end),
|
||||
-- Right click - Toggle tray
|
||||
awful.button({ }, 3, function ()
|
||||
awful.screen.focused().traybox.visible = not awful.screen.focused().traybox.visible
|
||||
end)
|
||||
))
|
||||
|
||||
-- Create item separator
|
||||
textseparator = wibox.widget.textbox()
|
||||
textseparator.text = beautiful.separator_text
|
||||
textseparator.font = "hurmit nerd font bold 14"
|
||||
textseparator.markup = helpers.colorize_text(textseparator.text, beautiful.separator_fg)
|
||||
|
||||
-- Create padding
|
||||
pad = wibox.widget.textbox(" ")
|
||||
|
||||
-- Create a wibox for each screen and add it
|
||||
local taglist_buttons = gears.table.join(
|
||||
awful.button({ }, 1, function(t) t:view_only() end),
|
||||
awful.button({ modkey }, 1, function(t)
|
||||
if client.focus then
|
||||
client.focus:move_to_tag(t)
|
||||
end
|
||||
end),
|
||||
awful.button({ }, 3, awful.tag.viewtoggle),
|
||||
awful.button({ modkey }, 3, function(t)
|
||||
if client.focus then
|
||||
client.focus:toggle_tag(t)
|
||||
end
|
||||
end),
|
||||
awful.button({ }, 4, function(t) awful.tag.viewprev(t.screen) end),
|
||||
awful.button({ }, 5, function(t) awful.tag.viewnext(t.screen) end)
|
||||
)
|
||||
|
||||
local tasklist_buttons = gears.table.join(
|
||||
awful.button({ }, 1,
|
||||
function (c)
|
||||
if c == client.focus then
|
||||
c.minimized = true
|
||||
else
|
||||
-- Without this, the following
|
||||
-- :isvisible() makes no sense
|
||||
c.minimized = false
|
||||
if not c:isvisible() and c.first_tag then
|
||||
c.first_tag:view_only()
|
||||
end
|
||||
-- This will also un-minimize
|
||||
-- the client, if needed
|
||||
client.focus = c
|
||||
c:raise()
|
||||
end
|
||||
end),
|
||||
-- Middle mouse button closes the window
|
||||
awful.button({ }, 2, function (c) c:kill() end),
|
||||
awful.button({ }, 3, helpers.client_menu_toggle()),
|
||||
awful.button({ }, 4, function ()
|
||||
awful.client.focus.byidx(-1)
|
||||
end),
|
||||
awful.button({ }, 5, function ()
|
||||
awful.client.focus.byidx(1)
|
||||
end)
|
||||
)
|
||||
-- }}}
|
||||
|
||||
awful.screen.connect_for_each_screen(function(s)
|
||||
-- Create a promptbox for each screen
|
||||
s.mypromptbox = awful.widget.prompt({prompt = " Run: ", fg = beautiful.prompt_fg})
|
||||
-- Create an imagebox widget which will contain an icon indicating which layout we're using.
|
||||
-- We need one layoutbox per screen.
|
||||
s.mylayoutbox = awful.widget.layoutbox(s)
|
||||
s.mylayoutbox:buttons(gears.table.join(
|
||||
awful.button({ }, 1, function () awful.layout.inc( 1) end),
|
||||
awful.button({ }, 3, function () awful.layout.inc(-1) end),
|
||||
awful.button({ }, 4, function () awful.layout.inc( 1) end),
|
||||
awful.button({ }, 5, function () awful.layout.inc(-1) end)))
|
||||
-- Create a taglist widget
|
||||
s.mytaglist = awful.widget.taglist(s, awful.widget.taglist.filter.all, taglist_buttons)
|
||||
s.mytaglist.font = beautiful.font
|
||||
|
||||
-- Create a tasklist widget
|
||||
-- Show all clients
|
||||
--s.mytasklist = awful.widget.tasklist(s, awful.widget.tasklist.filter.currenttags, tasklist_buttons)
|
||||
-- Show only focused client
|
||||
--s.mytasklist = awful.widget.tasklist(s, awful.widget.tasklist.filter.focused, tasklist_buttons)
|
||||
-- Show only minimized clients
|
||||
--s.mytasklist = awful.widget.tasklist(s, awful.widget.tasklist.filter.minimizedcurrenttags, tasklist_buttons)
|
||||
|
||||
-- Outer gaps
|
||||
--awful.screen.padding(awful.screen.focused(),{left = 28, right = 28, top = 28, bottom = 28})
|
||||
|
||||
-- Create a system tray widget
|
||||
s.systray = wibox.widget.systray()
|
||||
s.systray.visible = false -- can be toggled by a keybind
|
||||
|
||||
-- Wibar detached - Method: Transparent useless bar
|
||||
-- Requires compositor
|
||||
if beautiful.wibar_detached then
|
||||
s.useless_wibar = awful.wibar({ position = beautiful.wibar_position, screen = s, height = beautiful.screen_margin * 2, opacity = 0 })
|
||||
--TODO
|
||||
--s.useless_wibar:buttons(keys.desktopbuttons)
|
||||
end
|
||||
-- Create the wibox
|
||||
s.mywibox = awful.wibar({ position = beautiful.wibar_position, screen = s, width = beautiful.wibar_width, height = beautiful.wibar_height, shape = helpers.rrect(beautiful.wibar_border_radius)})
|
||||
|
|
@ -132,101 +63,23 @@ awful.screen.connect_for_each_screen(function(s)
|
|||
layout = wibox.layout.align.horizontal,
|
||||
{ -- Left widgets
|
||||
layout = wibox.layout.fixed.horizontal,
|
||||
--s.mylayoutbox,
|
||||
--mylauncher,
|
||||
s.mytaglist,
|
||||
textseparator,
|
||||
minimal_tasklist
|
||||
pad,
|
||||
start_widget
|
||||
-- minimal_tasklist
|
||||
},
|
||||
{ -- Middle widgets
|
||||
layout = wibox.layout.fixed.horizontal,
|
||||
--s.mypromptbox,
|
||||
--textseparator,
|
||||
--s.mytasklist,
|
||||
--minimal_tasklist
|
||||
-- textseparator,
|
||||
textseparator,
|
||||
icon_taglist,
|
||||
},
|
||||
{ -- Right widgets
|
||||
layout = wibox.layout.fixed.horizontal,
|
||||
--mpdarc_widget,
|
||||
--textseparator,
|
||||
--volumebar_prefix,
|
||||
--volumebar_widget,
|
||||
--textseparator,
|
||||
--keyboardlayout_prefix,
|
||||
--mykeyboardlayout,
|
||||
--textseparator,
|
||||
s.systray,
|
||||
--minimal_tasklist,
|
||||
textseparator,
|
||||
--date_prefix,
|
||||
mytextdate,
|
||||
textseparator,
|
||||
--clock_prefix,
|
||||
mytextclock,
|
||||
textseparator,
|
||||
desktop_mode_widget,
|
||||
pad,
|
||||
desktop_control,
|
||||
pad
|
||||
},
|
||||
}
|
||||
|
||||
-- Second (alternate panel)
|
||||
if beautiful.wibar_alt_enabled then
|
||||
if beautiful.wibar_alt_detached then
|
||||
s.useless_wibar_alt = awful.wibar({ position = beautiful.wibar_alt_position, screen = s, height = beautiful.screen_margin * 2, opacity = 0 })
|
||||
s.useless_wibar_alt:buttons(gears.table.join(
|
||||
--TODO
|
||||
--keys.desktopbuttons
|
||||
))
|
||||
end
|
||||
s.mywibox_alt = awful.wibox({ position = beautiful.wibar_alt_position, screen = s, width = beautiful.wibar_alt_width, height = beautiful.wibar_alt_height, shape = helpers.rrect(beautiful.wibar_alt_border_radius)})
|
||||
-- Only set them if they exist, else they overwrite the position variable
|
||||
if beautiful.wibar_alt_x then
|
||||
s.mywibox_alt.x = beautiful.wibar_alt_x
|
||||
end
|
||||
if beautiful.wibar_alt_y then
|
||||
s.mywibox_alt.y = beautiful.wibar_alt_y
|
||||
end
|
||||
-- Second wibar items
|
||||
-- Add or remove widgets here
|
||||
s.mywibox_alt:setup {
|
||||
layout = wibox.layout.align.horizontal,
|
||||
{ -- Left widgets
|
||||
layout = wibox.layout.fixed.horizontal,
|
||||
--pad,
|
||||
--s.mylayoutbox,
|
||||
--mylauncher,
|
||||
},
|
||||
{ -- Middle widgets
|
||||
layout = wibox.layout.fixed.horizontal,
|
||||
--s.mypromptbox,
|
||||
--s.mytasklist,
|
||||
--textseparator,
|
||||
},
|
||||
{ -- Right widgets
|
||||
layout = wibox.layout.fixed.horizontal,
|
||||
--mpdarc_widget,
|
||||
--textseparator,
|
||||
--volumebar_prefix,
|
||||
--volumebar_widget,
|
||||
--textseparator,
|
||||
--keyboardlayout_prefix,
|
||||
--mykeyboardlayout,
|
||||
--textseparator,
|
||||
s.systray,
|
||||
minimal_tasklist,
|
||||
textseparator,
|
||||
date_prefix,
|
||||
mytextdate,
|
||||
textseparator,
|
||||
clock_prefix,
|
||||
mytextclock,
|
||||
textseparator,
|
||||
desktop_mode_widget,
|
||||
pad
|
||||
},
|
||||
}
|
||||
end
|
||||
|
||||
-- Only set them if they exist, else they overwrite the position variable
|
||||
if beautiful.wibar_x then
|
||||
|
|
@ -236,5 +89,27 @@ awful.screen.connect_for_each_screen(function(s)
|
|||
s.mywibox.y = beautiful.wibar_y
|
||||
end
|
||||
|
||||
-- Create a wibox that will only show the tray
|
||||
-- Hidden by default. Can be toggled with a keybind.
|
||||
s.traybox = wibox({visible = false, ontop = true, shape = helpers.rbar(), type = "dock"})
|
||||
s.traybox.width = 150
|
||||
s.traybox.height = 30
|
||||
s.traybox.x = beautiful.screen_margin * 2
|
||||
-- s.traybox.x = s.geometry.width - s.traybox.width - beautiful.screen_margin * 2
|
||||
s.traybox.y = s.geometry.height - s.traybox.height - beautiful.screen_margin * 2
|
||||
s.traybox.bg = beautiful.bg_systray
|
||||
s.traybox:setup {
|
||||
-- wibox.widget.textbox("test"),
|
||||
pad,
|
||||
s.systray,
|
||||
pad,
|
||||
layout = wibox.layout.align.horizontal
|
||||
}
|
||||
s.traybox:buttons(gears.table.join(
|
||||
-- Middle click - Hide traybox
|
||||
awful.button({ }, 2, function ()
|
||||
s.traybox.visible = false
|
||||
end)
|
||||
))
|
||||
end)
|
||||
|
||||
|
|
|
|||
|
|
@ -8,13 +8,24 @@ local helpers = {}
|
|||
-- Create rounded rectangle shape
|
||||
helpers.rrect = function(radius)
|
||||
return function(cr, width, height)
|
||||
--gears.shape.partially_rounded_rect(cr, width, height, true, true, false, false, 12)
|
||||
gears.shape.rounded_rect(cr, width, height, radius)
|
||||
--gears.shape.octogon(cr, width, height, radius)
|
||||
--gears.shape.rounded_bar(cr, width, height)
|
||||
end
|
||||
end
|
||||
|
||||
helpers.rbar = function()
|
||||
return function(cr, width, height)
|
||||
gears.shape.rounded_bar(cr, width, height)
|
||||
end
|
||||
end
|
||||
|
||||
helpers.prrect = function(radius, tl, tr, br, bl)
|
||||
return function(cr, width, height)
|
||||
gears.shape.partially_rounded_rect(cr, width, height, tl, tr, br, bl, radius)
|
||||
end
|
||||
end
|
||||
|
||||
-- Create info bubble shape
|
||||
-- TODO
|
||||
helpers.infobubble = function(radius)
|
||||
|
|
@ -88,4 +99,24 @@ function helpers.create_titlebar(c, titlebar_buttons, titlebar_position, titleba
|
|||
}
|
||||
end
|
||||
|
||||
|
||||
local double_tap_timer = nil
|
||||
function helpers.single_double_tap(single_tap_function, double_tap_function)
|
||||
if double_tap_timer then
|
||||
double_tap_timer:stop()
|
||||
double_tap_timer = nil
|
||||
double_tap_function()
|
||||
-- naughty.notify({text = "We got a double tap"})
|
||||
return
|
||||
end
|
||||
|
||||
double_tap_timer =
|
||||
gears.timer.start_new(0.20, function()
|
||||
double_tap_timer = nil
|
||||
-- naughty.notify({text = "We got a single tap"})
|
||||
single_tap_function()
|
||||
return false
|
||||
end)
|
||||
end
|
||||
|
||||
return helpers
|
||||
|
|
|
|||
|
|
@ -9,136 +9,135 @@ local helpers = require("helpers")
|
|||
local keys = {}
|
||||
|
||||
-- Mod keys
|
||||
modkey = "Mod4"
|
||||
superkey = "Mod4"
|
||||
altkey = "Mod1"
|
||||
ctrlkey = "Control"
|
||||
shiftkey = "Shift"
|
||||
|
||||
-- {{{ Mouse bindings
|
||||
-- {{{ Mouse bindings on desktop
|
||||
keys.desktopbuttons = gears.table.join(
|
||||
awful.button({ }, 1, function ()
|
||||
awful.button({ }, 1, function ()
|
||||
mymainmenu:hide()
|
||||
uc = awful.client.urgent.get()
|
||||
-- If there is no urgent client, go back to last tag
|
||||
if uc == nil then
|
||||
sidebar.visible = false
|
||||
naughty.destroy_all_notifications()
|
||||
|
||||
local function double_tap()
|
||||
uc = awful.client.urgent.get()
|
||||
-- If there is no urgent client, go back to last tag
|
||||
if uc == nil then
|
||||
awful.tag.history.restore()
|
||||
else
|
||||
else
|
||||
awful.client.urgent.jumpto()
|
||||
end
|
||||
end
|
||||
helpers.single_double_tap(nil, double_tap)
|
||||
end),
|
||||
awful.button({ }, 3, function () mymainmenu:toggle() end),
|
||||
|
||||
-- Side buttons - Minimize and restore minimized client
|
||||
awful.button({ }, 8, function()
|
||||
if client.focus ~= nil then
|
||||
client.focus.minimized = true
|
||||
end
|
||||
-- Middle button - Toggle sidebar
|
||||
awful.button({ }, 2, function ()
|
||||
sidebar.visible = not sidebar.visible
|
||||
end),
|
||||
awful.button({ }, 9, function()
|
||||
local c = awful.client.restore()
|
||||
-- Focus restored client
|
||||
if c then
|
||||
client.focus = c
|
||||
c:raise()
|
||||
end
|
||||
end),
|
||||
|
||||
-- Middle click and scrolling - Control volume
|
||||
awful.button({ }, 2, function () awful.spawn.with_shell("volume-control.sh toggle") end),
|
||||
awful.button({ }, 4, function () awful.spawn.with_shell("volume-control.sh up") end),
|
||||
awful.button({ }, 5, function () awful.spawn.with_shell("volume-control.sh down") end)
|
||||
|
||||
-- Switch tags with sidebuttons
|
||||
--awful.button({ }, 8, awful.tag.viewprev),
|
||||
--awful.button({ }, 9, awful.tag.viewnext)
|
||||
-- Scrolling - Switch tags
|
||||
awful.button({ }, 4, awful.tag.viewprev),
|
||||
awful.button({ }, 5, awful.tag.viewnext),
|
||||
|
||||
-- Side buttons - Control volume
|
||||
awful.button({ }, 9, function () awful.spawn.with_shell("volume-control.sh up") end),
|
||||
awful.button({ }, 8, function () awful.spawn.with_shell("volume-control.sh down") end)
|
||||
|
||||
-- Side buttons - Minimize and restore minimized client
|
||||
-- awful.button({ }, 8, function()
|
||||
-- if client.focus ~= nil then
|
||||
-- client.focus.minimized = true
|
||||
-- end
|
||||
-- end),
|
||||
-- awful.button({ }, 9, function()
|
||||
-- local c = awful.client.restore()
|
||||
-- -- Focus restored client
|
||||
-- if c then
|
||||
-- client.focus = c
|
||||
-- c:raise()
|
||||
-- end
|
||||
-- end)
|
||||
)
|
||||
-- }}}
|
||||
|
||||
-- {{{ Key bindings
|
||||
keys.globalkeys = gears.table.join(
|
||||
--awful.key({ modkey, }, "s", hotkeys_popup.show_help,
|
||||
--awful.key({ superkey, }, "s", hotkeys_popup.show_help,
|
||||
--{description="show help", group="awesome"}),
|
||||
--awful.key({ modkey, }, "comma", awful.tag.viewprev,
|
||||
--awful.key({ superkey, }, "comma", awful.tag.viewprev,
|
||||
--{description = "view previous", group = "tag"}),
|
||||
--awful.key({ modkey, }, "period", awful.tag.viewnext,
|
||||
--awful.key({ superkey, }, "period", awful.tag.viewnext,
|
||||
--{description = "view next", group = "tag"}),
|
||||
|
||||
-- Focus client by direction
|
||||
awful.key({ modkey }, "Down",
|
||||
awful.key({ superkey }, "Down",
|
||||
function()
|
||||
awful.client.focus.bydirection("down")
|
||||
if client.focus then client.focus:raise() end
|
||||
end,
|
||||
{description = "focus down", group = "client"}),
|
||||
awful.key({ modkey }, "Up",
|
||||
awful.key({ superkey }, "Up",
|
||||
function()
|
||||
awful.client.focus.bydirection("up")
|
||||
if client.focus then client.focus:raise() end
|
||||
end,
|
||||
{description = "focus up", group = "client"}),
|
||||
awful.key({ modkey }, "Left",
|
||||
awful.key({ superkey }, "Left",
|
||||
function()
|
||||
awful.client.focus.bydirection("left")
|
||||
if client.focus then client.focus:raise() end
|
||||
end,
|
||||
{description = "focus left", group = "client"}),
|
||||
awful.key({ modkey }, "Right",
|
||||
function()
|
||||
awful.client.focus.bydirection("right")
|
||||
if client.focus then client.focus:raise() end
|
||||
end,
|
||||
{description = "focus right", group = "client"}),
|
||||
awful.key({ modkey, altkey }, "j",
|
||||
function()
|
||||
awful.client.focus.bydirection("down")
|
||||
if client.focus then client.focus:raise() end
|
||||
end,
|
||||
{description = "focus down", group = "client"}),
|
||||
awful.key({ modkey, altkey }, "k",
|
||||
function()
|
||||
awful.client.focus.bydirection("up")
|
||||
if client.focus then client.focus:raise() end
|
||||
end,
|
||||
{description = "focus up", group = "client"}),
|
||||
awful.key({ modkey, altkey }, "h",
|
||||
function()
|
||||
awful.client.focus.bydirection("left")
|
||||
if client.focus then client.focus:raise() end
|
||||
end,
|
||||
{description = "focus left", group = "client"}),
|
||||
awful.key({ modkey, altkey }, "l",
|
||||
awful.key({ superkey }, "Right",
|
||||
function()
|
||||
awful.client.focus.bydirection("right")
|
||||
if client.focus then client.focus:raise() end
|
||||
end,
|
||||
{description = "focus right", group = "client"}),
|
||||
-- Focus client by index (cycle through clients)
|
||||
awful.key({ modkey }, "j",
|
||||
awful.key({ superkey }, "j",
|
||||
function ()
|
||||
awful.client.focus.byidx( 1)
|
||||
end,
|
||||
{description = "focus next by index", group = "client"}
|
||||
),
|
||||
awful.key({ modkey }, "k",
|
||||
awful.key({ superkey }, "k",
|
||||
function ()
|
||||
awful.client.focus.byidx(-1)
|
||||
end,
|
||||
{description = "focus previous by index", group = "client"}
|
||||
),
|
||||
awful.key({ modkey, }, "g",
|
||||
-- Focus client by index (cycle through clients)
|
||||
awful.key({ superkey }, "z",
|
||||
function ()
|
||||
awful.client.focus.byidx( 1)
|
||||
end,
|
||||
{description = "focus next by index", group = "client"}
|
||||
),
|
||||
awful.key({ superkey, shiftkey }, "z",
|
||||
function ()
|
||||
awful.client.focus.byidx(-1)
|
||||
end,
|
||||
{description = "focus previous by index", group = "client"}
|
||||
),
|
||||
awful.key({ superkey, shiftkey }, "minus",
|
||||
function ()
|
||||
awful.tag.incgap(5, nil)
|
||||
end,
|
||||
{description = "increment gaps size for the current tag", group = "gaps"}
|
||||
),
|
||||
awful.key({ modkey, shiftkey }, "g",
|
||||
awful.key({ superkey }, "minus",
|
||||
function ()
|
||||
awful.tag.incgap(-5, nil)
|
||||
end,
|
||||
{description = "decrement gap size for the current tag", group = "gaps"}
|
||||
),
|
||||
-- Kill all visible clients
|
||||
awful.key({ modkey, altkey }, "q",
|
||||
-- Kill all visible clients for the current tag
|
||||
awful.key({ superkey, altkey }, "q",
|
||||
function ()
|
||||
local clients = awful.screen.focused().clients
|
||||
for _, c in pairs(clients) do
|
||||
|
|
@ -148,13 +147,18 @@ keys.globalkeys = gears.table.join(
|
|||
{description = "kill all visible clients for the current tag", group = "gaps"}
|
||||
),
|
||||
-- Main menu
|
||||
--awful.key({ modkey, }, "w", function () mymainmenu:show() end,
|
||||
--{description = "show main menu", group = "awesome"}),
|
||||
awful.key({ modkey, }, "Escape", awful.tag.history.restore,
|
||||
{description = "go back", group = "tag"}),
|
||||
awful.key({ superkey, shiftkey }, "v", function () mymainmenu:show() end,
|
||||
{description = "show main menu", group = "awesome"}),
|
||||
|
||||
-- Logout, Shutdown, Restart, Suspend, Lock
|
||||
awful.key({ superkey, }, "Escape",
|
||||
function ()
|
||||
exit_screen_show()
|
||||
end,
|
||||
{description = "exit", group = "awesome"}),
|
||||
|
||||
-- Layout manipulation
|
||||
awful.key({ modkey, shiftkey }, "j", function ()
|
||||
awful.key({ superkey, shiftkey }, "j", function ()
|
||||
local current_layout = awful.layout.getname(awful.layout.get(awful.screen.focused()))
|
||||
local c = client.focus
|
||||
-- Floating: move client to edge
|
||||
|
|
@ -169,7 +173,19 @@ keys.globalkeys = gears.table.join(
|
|||
end,
|
||||
--{description = "swap with next client by index", group = "client"}),
|
||||
{description = "swap with direction down", group = "client"}),
|
||||
awful.key({ modkey, shiftkey }, "k", function ()
|
||||
awful.key({ superkey, shiftkey }, "Down", function ()
|
||||
local current_layout = awful.layout.getname(awful.layout.get(awful.screen.focused()))
|
||||
local c = client.focus
|
||||
-- Floating: move client to edge
|
||||
if c ~= nil and (current_layout == "floating" or c.floating) then
|
||||
helpers.move_to_edge(c, "down")
|
||||
else
|
||||
awful.client.swap.bydirection("down", c, nil)
|
||||
|
||||
end
|
||||
end,
|
||||
{description = "swap with direction down", group = "client"}),
|
||||
awful.key({ superkey, shiftkey }, "k", function ()
|
||||
local current_layout = awful.layout.getname(awful.layout.get(awful.screen.focused()))
|
||||
local c = client.focus
|
||||
-- Floating: move client to edge
|
||||
|
|
@ -182,12 +198,25 @@ keys.globalkeys = gears.table.join(
|
|||
end
|
||||
end,
|
||||
{description = "swap with direction up", group = "client"}),
|
||||
awful.key({ superkey, shiftkey }, "Up", function ()
|
||||
local current_layout = awful.layout.getname(awful.layout.get(awful.screen.focused()))
|
||||
local c = client.focus
|
||||
-- Floating: move client to edge
|
||||
if c ~= nil and (current_layout == "floating" or c.floating) then
|
||||
--c:relative_move( 0, -40, 0, 0)
|
||||
helpers.move_to_edge(c, "up")
|
||||
else
|
||||
--awful.client.swap.byidx( -1)
|
||||
awful.client.swap.bydirection("up", c, nil)
|
||||
end
|
||||
end,
|
||||
{description = "swap with direction up", group = "client"}),
|
||||
-- No need for these (single screen setup)
|
||||
--awful.key({ modkey, ctrlkey }, "j", function () awful.screen.focus_relative( 1) end,
|
||||
--awful.key({ superkey, ctrlkey }, "j", function () awful.screen.focus_relative( 1) end,
|
||||
--{description = "focus the next screen", group = "screen"}),
|
||||
--awful.key({ modkey, ctrlkey }, "k", function () awful.screen.focus_relative(-1) end,
|
||||
--awful.key({ superkey, ctrlkey }, "k", function () awful.screen.focus_relative(-1) end,
|
||||
--{description = "focus the previous screen", group = "screen"}),
|
||||
awful.key({ modkey, }, "u",
|
||||
awful.key({ superkey, }, "u",
|
||||
function ()
|
||||
uc = awful.client.urgent.get()
|
||||
-- If there is no urgent client, go back to last tag
|
||||
|
|
@ -198,34 +227,27 @@ keys.globalkeys = gears.table.join(
|
|||
end
|
||||
end,
|
||||
{description = "jump to urgent client", group = "client"}),
|
||||
awful.key({ modkey }, "Tab", function() awful.spawn.with_shell("~/scr/Rofi/rofi_combi") end,
|
||||
{description = "window switcher", group = "launcher"}),
|
||||
--awful.key({ modkey, }, "Tab",
|
||||
--function ()
|
||||
--awful.client.focus.history.previous()
|
||||
--if client.focus then
|
||||
--client.focus:raise()
|
||||
--end
|
||||
--end,
|
||||
--{description = "go back", group = "client"}),
|
||||
|
||||
awful.key({ superkey, }, "Tab",
|
||||
function ()
|
||||
awful.client.focus.history.previous()
|
||||
if client.focus then
|
||||
client.focus:raise()
|
||||
end
|
||||
end,
|
||||
{description = "go back", group = "client"}),
|
||||
-- Standard program
|
||||
awful.key({ modkey, }, "Return", function () awful.spawn(terminal) end,
|
||||
awful.key({ superkey, }, "Return", function () awful.spawn(terminal) end,
|
||||
{description = "open a terminal", group = "launcher"}),
|
||||
awful.key({ modkey, }, "t", function () awful.spawn(tmux) end,
|
||||
{description = "open a terminal with tmux", group = "launcher"}),
|
||||
-- Spawn floating terminal (see awful.rules below)
|
||||
awful.key({ modkey, shiftkey }, "Return", function()
|
||||
awful.spawn(floating_terminal)
|
||||
-- Spawn floating terminal
|
||||
awful.key({ superkey, shiftkey }, "Return", function()
|
||||
awful.spawn(terminal, {floating = true})
|
||||
end,
|
||||
{description = "spawn floating terminal", group = "launcher"}),
|
||||
awful.key({ modkey, shiftkey }, "t", function() awful.spawn(floating_tmux) end,
|
||||
{description = "spawn floating terminal with tmux", group = "launcher"}),
|
||||
awful.key({ modkey, shiftkey }, "r", awesome.restart,
|
||||
awful.key({ superkey, shiftkey }, "r", awesome.restart,
|
||||
{description = "reload awesome", group = "awesome"}),
|
||||
awful.key({ modkey, shiftkey }, "x", awesome.quit,
|
||||
awful.key({ superkey, shiftkey }, "x", awesome.quit,
|
||||
{description = "quit awesome", group = "awesome"}),
|
||||
awful.key({ modkey, ctrlkey }, "h", function ()
|
||||
awful.key({ superkey, ctrlkey }, "h", function ()
|
||||
local current_layout = awful.layout.getname(awful.layout.get(awful.screen.focused()))
|
||||
local c = client.focus
|
||||
-- Floating: resize client
|
||||
|
|
@ -236,7 +258,18 @@ keys.globalkeys = gears.table.join(
|
|||
end
|
||||
end,
|
||||
{description = "decrease master width factor", group = "layout"}),
|
||||
awful.key({ modkey, ctrlkey }, "l", function ()
|
||||
awful.key({ superkey, ctrlkey }, "Left", function ()
|
||||
local current_layout = awful.layout.getname(awful.layout.get(awful.screen.focused()))
|
||||
local c = client.focus
|
||||
-- Floating: resize client
|
||||
if current_layout == "floating" or c.floating == true then
|
||||
c:relative_move( 0, 0, -20, 0)
|
||||
else
|
||||
awful.tag.incmwfact(-0.05)
|
||||
end
|
||||
end,
|
||||
{description = "decrease master width factor", group = "layout"}),
|
||||
awful.key({ superkey, ctrlkey }, "l", function ()
|
||||
local current_layout = awful.layout.getname(awful.layout.get(awful.screen.focused()))
|
||||
local c = client.focus
|
||||
-- Floating: resize client
|
||||
|
|
@ -247,8 +280,32 @@ keys.globalkeys = gears.table.join(
|
|||
end
|
||||
end,
|
||||
{description = "increase master width factor", group = "layout"}),
|
||||
awful.key({ modkey, shiftkey }, "h",
|
||||
function ()
|
||||
awful.key({ superkey, ctrlkey }, "Right", function ()
|
||||
local current_layout = awful.layout.getname(awful.layout.get(awful.screen.focused()))
|
||||
local c = client.focus
|
||||
-- Floating: resize client
|
||||
if current_layout == "floating" or c.floating == true then
|
||||
c:relative_move( 0, 0, 20, 0)
|
||||
else
|
||||
awful.tag.incmwfact( 0.05)
|
||||
end
|
||||
end,
|
||||
{description = "increase master width factor", group = "layout"}),
|
||||
awful.key({ superkey, shiftkey }, "h",
|
||||
function ()
|
||||
local current_layout = awful.layout.getname(awful.layout.get(awful.screen.focused()))
|
||||
local c = client.focus
|
||||
-- Floating: move client to edge
|
||||
if c ~= nil and (current_layout == "floating" or c.floating) then
|
||||
--c:relative_move( -40, 0, 0, 0)
|
||||
helpers.move_to_edge(c, "left")
|
||||
else
|
||||
awful.client.swap.bydirection("left", c, nil)
|
||||
end
|
||||
end,
|
||||
{description = "swap with direction left", group = "client"}),
|
||||
awful.key({ superkey, shiftkey }, "Left",
|
||||
function ()
|
||||
local current_layout = awful.layout.getname(awful.layout.get(awful.screen.focused()))
|
||||
local c = client.focus
|
||||
-- Floating: move client to edge
|
||||
|
|
@ -260,8 +317,8 @@ keys.globalkeys = gears.table.join(
|
|||
end
|
||||
end,
|
||||
{description = "swap with direction left", group = "client"}),
|
||||
awful.key({ modkey, shiftkey }, "l",
|
||||
function ()
|
||||
awful.key({ superkey, shiftkey }, "l",
|
||||
function ()
|
||||
local current_layout = awful.layout.getname(awful.layout.get(awful.screen.focused()))
|
||||
local c = client.focus
|
||||
-- Floating: move client to edge
|
||||
|
|
@ -273,43 +330,77 @@ keys.globalkeys = gears.table.join(
|
|||
end
|
||||
end,
|
||||
{description = "swap with direction right", group = "client"}),
|
||||
awful.key({ modkey }, "h",
|
||||
awful.key({ superkey, shiftkey }, "Right",
|
||||
function ()
|
||||
local current_layout = awful.layout.getname(awful.layout.get(awful.screen.focused()))
|
||||
local c = client.focus
|
||||
-- Floating: move client to edge
|
||||
if c ~= nil and (current_layout == "floating" or c.floating) then
|
||||
--c:relative_move( 40, 0, 0, 0)
|
||||
helpers.move_to_edge(c, "right")
|
||||
else
|
||||
awful.client.swap.bydirection("right", c, nil)
|
||||
end
|
||||
end,
|
||||
{description = "swap with direction right", group = "client"}),
|
||||
awful.key({ superkey }, "h",
|
||||
function ()
|
||||
awful.tag.incnmaster( 1, nil, true)
|
||||
end,
|
||||
{description = "increase the number of master clients", group = "layout"}),
|
||||
awful.key({ modkey }, "l",
|
||||
awful.key({ superkey }, "l",
|
||||
function ()
|
||||
awful.tag.incnmaster(-1, nil, true)
|
||||
end,
|
||||
{description = "decrease the number of master clients", group = "layout"}),
|
||||
awful.key({ modkey, shiftkey, ctrlkey }, "h", function ()
|
||||
awful.key({ superkey, shiftkey, ctrlkey }, "h", function ()
|
||||
local current_layout = awful.layout.getname(awful.layout.get(awful.screen.focused()))
|
||||
local c = client.focus
|
||||
-- Floating: move client
|
||||
if c ~= nil and (current_layout == "floating" or c.floating) then
|
||||
c:relative_move( -20, 0, 0, 0)
|
||||
else
|
||||
awful.tag.incncol( 1, nil, true)
|
||||
end
|
||||
end,
|
||||
{description = "increase the number of columns", group = "layout"}),
|
||||
awful.key({ superkey, shiftkey, ctrlkey }, "Left", function ()
|
||||
local current_layout = awful.layout.getname(awful.layout.get(awful.screen.focused()))
|
||||
local c = client.focus
|
||||
-- Floating: move client
|
||||
if c ~= nil and (current_layout == "floating" or c.floating) then
|
||||
c:relative_move( -20, 0, 0, 0)
|
||||
else
|
||||
awful.tag.incncol( 1, nil, true)
|
||||
awful.tag.incncol( 1, nil, true)
|
||||
end
|
||||
end,
|
||||
{description = "increase the number of columns", group = "layout"}),
|
||||
awful.key({ modkey, shiftkey, ctrlkey }, "l", function ()
|
||||
awful.key({ superkey, shiftkey, ctrlkey }, "l", function ()
|
||||
local current_layout = awful.layout.getname(awful.layout.get(awful.screen.focused()))
|
||||
local c = client.focus
|
||||
-- Floating: move client
|
||||
if c ~= nil and (current_layout == "floating" or c.floating) then
|
||||
c:relative_move( 20, 0, 0, 0)
|
||||
else
|
||||
awful.tag.incncol(-1, nil, true)
|
||||
end
|
||||
end),
|
||||
awful.key({ superkey, shiftkey, ctrlkey }, "Right", function ()
|
||||
local current_layout = awful.layout.getname(awful.layout.get(awful.screen.focused()))
|
||||
local c = client.focus
|
||||
-- Floating: move client
|
||||
if c ~= nil and (current_layout == "floating" or c.floating) then
|
||||
c:relative_move( 20, 0, 0, 0)
|
||||
else
|
||||
awful.tag.incncol(-1, nil, true)
|
||||
awful.tag.incncol(-1, nil, true)
|
||||
end
|
||||
end),
|
||||
--awful.key({ modkey, }, "space", function () awful.layout.inc( 1) end,
|
||||
--awful.key({ superkey, }, "space", function () awful.layout.inc( 1) end,
|
||||
--{description = "select next", group = "layout"}),
|
||||
--awful.key({ modkey, shiftkey }, "space", function () awful.layout.inc(-1) end,
|
||||
--awful.key({ superkey, shiftkey }, "space", function () awful.layout.inc(-1) end,
|
||||
--{description = "select previous", group = "layout"}),
|
||||
|
||||
awful.key({ modkey, shiftkey }, "n",
|
||||
awful.key({ superkey, shiftkey }, "n",
|
||||
function ()
|
||||
local c = awful.client.restore()
|
||||
-- Focus restored client
|
||||
|
|
@ -319,35 +410,17 @@ keys.globalkeys = gears.table.join(
|
|||
end
|
||||
end,
|
||||
{description = "restore minimized", group = "client"}),
|
||||
|
||||
-- Prompt
|
||||
-- Run program (d for dmenu ;)
|
||||
--awful.key({ modkey }, "d", function () awful.screen.focused().mypromptbox:run() end,
|
||||
--{description = "run prompt", group = "launcher"}),
|
||||
awful.key({ modkey }, "d", function() awful.spawn.with_shell("~/scr/Rofi/rofi_launch") end,
|
||||
{description = "rofi launcher", group = "launcher"}),
|
||||
|
||||
-- Run lua code
|
||||
--awful.key({ modkey }, "r",
|
||||
--function ()
|
||||
--awful.prompt.run {
|
||||
--prompt = " Lua: ",
|
||||
--textbox = awful.screen.focused().mypromptbox.widget,
|
||||
--exe_callback = awful.util.eval,
|
||||
--history_path = awful.util.get_cache_dir() .. "/history_eval"
|
||||
--}
|
||||
--end,
|
||||
--{description = "lua execute prompt", group = "awesome"}),
|
||||
|
||||
awful.key({ superkey }, "d",
|
||||
function()
|
||||
awful.spawn.with_shell("rofi -show combi")
|
||||
end,
|
||||
{description = "rofi launcher", group = "launcher"}),
|
||||
-- Dismiss notifications
|
||||
awful.key( { ctrlkey }, "space", function()
|
||||
naughty.destroy_all_notifications()
|
||||
end,
|
||||
{description = "dismiss notification", group = "notifications"}),
|
||||
|
||||
-- Menubar
|
||||
--awful.key({ modkey, ctrlkey }, "b", function() menubar.show() end,
|
||||
--{description = "show the menubar", group = "launcher"}),
|
||||
-- Volume Control
|
||||
awful.key( { }, "XF86AudioMute", function()
|
||||
awful.spawn.with_shell("volume-control.sh toggle")
|
||||
|
|
@ -364,41 +437,50 @@ keys.globalkeys = gears.table.join(
|
|||
-- Screenshots
|
||||
awful.key( { }, "Print", function() awful.spawn.with_shell("screenshot.sh") end,
|
||||
{description = "take full screenshot", group = "screenshots"}),
|
||||
awful.key( { modkey, shiftkey }, "c", function() awful.spawn.with_shell("screenshot.sh -s") end,
|
||||
awful.key( { superkey, shiftkey }, "c", function() awful.spawn.with_shell("screenshot.sh -s") end,
|
||||
{description = "select area to capture", group = "screenshots"}),
|
||||
awful.key( { modkey, ctrlkey }, "c", function() awful.spawn.with_shell("screenshot.sh -c") end,
|
||||
awful.key( { superkey, ctrlkey }, "c", function() awful.spawn.with_shell("screenshot.sh -c") end,
|
||||
{description = "select area to copy to clipboard", group = "screenshots"}),
|
||||
awful.key( { modkey }, "Print", function() awful.spawn.with_shell("screenshot.sh -b") end,
|
||||
awful.key( { superkey }, "Print", function() awful.spawn.with_shell("screenshot.sh -b") end,
|
||||
{description = "browse screenshots", group = "screenshots"}),
|
||||
awful.key( { modkey, shiftkey }, "Print", function() awful.spawn.with_shell("screenshot.sh -e") end,
|
||||
awful.key( { superkey, shiftkey }, "Print", function() awful.spawn.with_shell("screenshot.sh -e") end,
|
||||
{description = "edit most recent screenshot with gimp", group = "screenshots"}),
|
||||
-- Toggle tray visibility
|
||||
awful.key({ modkey }, "=", function ()
|
||||
awful.screen.focused().systray.visible = not awful.screen.focused().systray.visible
|
||||
awful.key({ superkey }, "=", function ()
|
||||
awful.screen.focused().traybox.visible = not awful.screen.focused().traybox.visible
|
||||
end,
|
||||
{description = "toggle systray visibility", group = "custom"}),
|
||||
{description = "toggle tray visibility", group = "awesome"}),
|
||||
-- Toggle night light
|
||||
awful.key({ modkey }, "x", function() awful.spawn.with_shell("flux") end,
|
||||
awful.key({ superkey }, "x", function() awful.spawn.with_shell("flux") end,
|
||||
{description = "toggle night light", group = "launcher"}),
|
||||
-- Toggle compositor
|
||||
awful.key({ modkey }, "z", function() awful.spawn.with_shell("compositor") end,
|
||||
{description = "toggle compositor", group = "launcher"}),
|
||||
awful.key({ superkey }, "XF86Launch3",
|
||||
function()
|
||||
awful.spawn.with_shell("compositor")
|
||||
end,
|
||||
{description = "toggle compositor", group = "launcher"}),
|
||||
-- Media keys
|
||||
awful.key({ modkey }, "period", function() awful.spawn.with_shell("mpc next") end,
|
||||
awful.key({ superkey }, "period", function() awful.spawn.with_shell("mpc next") end,
|
||||
{description = "next song", group = "media"}),
|
||||
awful.key({ modkey }, "comma", function() awful.spawn.with_shell("mpc prev") end,
|
||||
awful.key({ superkey }, "comma", function() awful.spawn.with_shell("mpc prev") end,
|
||||
{description = "previous song", group = "media"}),
|
||||
awful.key({ modkey }, "space", function() awful.spawn.with_shell("mpc toggle") end,
|
||||
awful.key({ superkey }, "space", function() awful.spawn.with_shell("mpc toggle") end,
|
||||
{description = "toggle pause/play", group = "media"}),
|
||||
awful.key({ modkey, shiftkey }, "period", function() awful.spawn.with_shell("mpvc next") end,
|
||||
awful.key({ superkey, shiftkey }, "period", function() awful.spawn.with_shell("mpvc next") end,
|
||||
{description = "mpv next song", group = "media"}),
|
||||
awful.key({ modkey, shiftkey }, "comma", function() awful.spawn.with_shell("mpvc prev") end,
|
||||
awful.key({ superkey, shiftkey }, "comma", function() awful.spawn.with_shell("mpvc prev") end,
|
||||
{description = "mpv previous song", group = "media"}),
|
||||
awful.key({ modkey, shiftkey}, "space", function() awful.spawn.with_shell("mpvc toggle") end,
|
||||
awful.key({ superkey, shiftkey}, "space", function() awful.spawn.with_shell("mpvc toggle") end,
|
||||
{description = "mpv toggle pause/play", group = "media"}),
|
||||
awful.key({ modkey, shiftkey}, "F8", function() awful.spawn.with_shell("mpvc quit") end,
|
||||
awful.key({ superkey }, "F8", function() awful.spawn.with_shell("mpvc quit") end,
|
||||
{description = "mpv quit", group = "media"}),
|
||||
awful.key({ modkey }, "q", function()
|
||||
awful.key({ superkey }, "F7", function() awful.spawn.with_shell("freeze firefox") end,
|
||||
{description = "send STOP signal to all firefox processes", group = "other"}),
|
||||
awful.key({ superkey, shiftkey }, "F7", function() awful.spawn.with_shell("freeze -u firefox") end,
|
||||
{description = "send CONT signal to all firefox processes", group = "other"}),
|
||||
awful.key({ superkey }, "F6", function() awful.spawn.with_shell("i3lock") end,
|
||||
{description = "lock screen", group = "other"}),
|
||||
awful.key({ superkey }, "q", function()
|
||||
if client.focus ~= nil and client.focus.class == "scratchpad" then
|
||||
client.focus.minimized = true
|
||||
return
|
||||
|
|
@ -410,22 +492,22 @@ keys.globalkeys = gears.table.join(
|
|||
end,
|
||||
{description = "scratchpad", group = "launcher"}),
|
||||
-- Set max layout
|
||||
awful.key({ modkey }, "w", function()
|
||||
awful.key({ superkey }, "w", function()
|
||||
awful.layout.set(awful.layout.suit.max)
|
||||
end,
|
||||
{description = "set max layout", group = "tag"}),
|
||||
-- Set tiled layout
|
||||
awful.key({ modkey }, "s", function()
|
||||
awful.key({ superkey }, "s", function()
|
||||
awful.layout.set(awful.layout.suit.tile)
|
||||
end,
|
||||
{description = "set tiled layout", group = "tag"}),
|
||||
-- Set floating layout
|
||||
awful.key({ modkey, shiftkey }, "s", function()
|
||||
awful.key({ superkey, shiftkey }, "s", function()
|
||||
awful.layout.set(awful.layout.suit.floating)
|
||||
end,
|
||||
{description = "set floating layout", group = "tag"}),
|
||||
-- Run or raise or minimize calcurse
|
||||
awful.key({ modkey }, "F1", function()
|
||||
awful.key({ superkey }, "F1", function()
|
||||
if client.focus ~= nil and client.focus.class == "calendar" then
|
||||
client.focus.minimized = true
|
||||
return
|
||||
|
|
@ -437,69 +519,112 @@ keys.globalkeys = gears.table.join(
|
|||
end,
|
||||
{description = "calcurse", group = "launcher"}),
|
||||
-- Spawn ranger in a terminal
|
||||
awful.key({ modkey }, "F2", function() awful.spawn(terminal .. " -e ranger") end,
|
||||
awful.key({ superkey }, "F2", function() awful.spawn(terminal .. " -e ranger") end,
|
||||
{description = "ranger", group = "launcher"}),
|
||||
-- Spawn ncmpcpp in a terminal
|
||||
awful.key({ modkey }, "F3", function() awful.spawn(terminal .. " -e ncmpcpp") end,
|
||||
awful.key({ superkey }, "F3", function() awful.spawn(terminal .. " -e ncmpcpp") end,
|
||||
{description = "ncmpcpp", group = "launcher"}),
|
||||
-- Spawn cava in a terminal
|
||||
awful.key({ modkey }, "F4", function() awful.spawn(terminal .. " -e cava") end,
|
||||
awful.key({ superkey, shiftkey }, "F4", function() awful.spawn(terminal .. " -e cava") end,
|
||||
{description = "cava", group = "launcher"}),
|
||||
-- Show system info (cpu, ram, battery, temp)
|
||||
awful.key({ modkey }, "grave", function() awful.spawn.with_shell("~/scr/info/stats") end,
|
||||
{description = "current system info", group = "launcher"}),
|
||||
-- Spawn ncmpcpp in a terminal, with a special visualizer config
|
||||
awful.key({ superkey }, "F4", function() awful.spawn(terminal .. " -e 'ncmpcpp -c ~/.config/ncmpcpp/config_visualizer -s visualizer'") end,
|
||||
{description = "ncmpcpp", group = "launcher"}),
|
||||
-- Toggle sidebar
|
||||
awful.key({ superkey }, "grave", function() sidebar.visible = not sidebar.visible end,
|
||||
{description = "show or hide sidebar", group = "awesome"}),
|
||||
-- Toggle wibar
|
||||
awful.key({ superkey, shiftkey }, "b",
|
||||
function()
|
||||
local s = awful.screen.focused()
|
||||
s.mywibox.visible = not s.mywibox.visible
|
||||
if beautiful.wibar_detached then
|
||||
s.useless_wibar.visible = not s.useless_wibar.visible
|
||||
end
|
||||
end,
|
||||
{description = "show or hide wibar", group = "awesome"}),
|
||||
-- Open new emacs client frame
|
||||
awful.key({ superkey }, "e", function() awful.spawn.with_shell("em") end,
|
||||
{description = "emacs", group = "launcher"}),
|
||||
-- Quick edit config file
|
||||
awful.key({ modkey }, "e", function() awful.spawn.with_shell("~/scr/Rofi/rofi_quickedit") end,
|
||||
{description = "quick edit", group = "launcher"}),
|
||||
awful.key({ superkey, shiftkey }, "e", function() awful.spawn.with_shell("~/scr/Rofi/rofimacs") end,
|
||||
{description = "quick edit", group = "launcher"}),
|
||||
-- mpvtube
|
||||
awful.key({ modkey }, "y", function() awful.spawn.with_shell("~/scr/Rofi/rofi_mpvtube") end,
|
||||
awful.key({ superkey }, "y", function() awful.spawn.with_shell("~/scr/Rofi/rofi_mpvtube") end,
|
||||
{description = "mpvtube", group = "launcher"}),
|
||||
-- mpvtube song
|
||||
awful.key({ modkey, shiftkey }, "y", function() awful.spawn.with_shell("~/scr/info/mpv-query.sh") end,
|
||||
awful.key({ superkey, shiftkey }, "y", function() awful.spawn.with_shell("~/scr/info/mpv-query.sh") end,
|
||||
{description = "show mpv media title", group = "launcher"}),
|
||||
-- Spawn file manager
|
||||
awful.key({ superkey, shiftkey }, "f", function() awful.spawn(filemanager, {floating = true}) end,
|
||||
{description = "file manager", group = "launcher"}),
|
||||
-- Spawn htop in a terminal
|
||||
awful.key({ modkey }, "p", function() awful.spawn(terminal .. " -e htop") end,
|
||||
awful.key({ superkey }, "p", function() awful.spawn(terminal .. " -e htop") end,
|
||||
{description = "htop", group = "launcher"})
|
||||
)
|
||||
|
||||
keys.clientkeys = gears.table.join(
|
||||
-- Move floating client (relative)
|
||||
awful.key({ modkey, shiftkey }, "Down", function (c) c:relative_move( 0, 40, 0, 0) end),
|
||||
awful.key({ modkey, shiftkey }, "Up", function (c) c:relative_move( 0, -40, 0, 0) end),
|
||||
awful.key({ modkey, shiftkey }, "Left", function (c) c:relative_move(-40, 0, 0, 0) end),
|
||||
awful.key({ modkey, shiftkey }, "Right", function (c) c:relative_move( 40, 0, 0, 0) end),
|
||||
awful.key({ superkey, shiftkey }, "Down", function (c) c:relative_move( 0, 40, 0, 0) end),
|
||||
awful.key({ superkey, shiftkey }, "Up", function (c) c:relative_move( 0, -40, 0, 0) end),
|
||||
awful.key({ superkey, shiftkey }, "Left", function (c) c:relative_move(-40, 0, 0, 0) end),
|
||||
awful.key({ superkey, shiftkey }, "Right", function (c) c:relative_move( 40, 0, 0, 0) end),
|
||||
-- Center client
|
||||
awful.key({ modkey }, "c", function (c)
|
||||
awful.key({ superkey }, "c", function (c)
|
||||
awful.placement.centered(c,{honor_workarea=true})
|
||||
--awful.placement.centered(c,nil)
|
||||
end),
|
||||
-- Resize client
|
||||
awful.key({ modkey, ctrlkey }, "j", function (c)
|
||||
awful.key({ superkey, ctrlkey }, "j", function (c)
|
||||
local current_layout = awful.layout.getname(awful.layout.get(awful.screen.focused()))
|
||||
if current_layout == "floating" or c.floating == true then
|
||||
c:relative_move( 0, 0, 0, 20)
|
||||
else
|
||||
awful.client.incwfact(0.15)
|
||||
awful.client.incwfact(0.05)
|
||||
end
|
||||
end),
|
||||
awful.key({ modkey, ctrlkey }, "k", function (c)
|
||||
awful.key({ superkey, ctrlkey }, "Down", function (c)
|
||||
local current_layout = awful.layout.getname(awful.layout.get(awful.screen.focused()))
|
||||
if current_layout == "floating" or c.floating == true then
|
||||
c:relative_move( 0, 0, 0, 20)
|
||||
else
|
||||
awful.client.incwfact(0.05)
|
||||
end
|
||||
end),
|
||||
awful.key({ superkey, ctrlkey }, "k", function (c)
|
||||
local current_layout = awful.layout.getname(awful.layout.get(awful.screen.focused()))
|
||||
if current_layout == "floating" or c.floating == true then
|
||||
c:relative_move( 0, 0, 0, -20)
|
||||
else
|
||||
awful.client.incwfact(-0.05)
|
||||
end
|
||||
end),
|
||||
awful.key({ superkey, ctrlkey }, "Up", function (c)
|
||||
local current_layout = awful.layout.getname(awful.layout.get(awful.screen.focused()))
|
||||
if current_layout == "floating" or c.floating == true then
|
||||
c:relative_move( 0, 0, 0, -20)
|
||||
else
|
||||
awful.client.incwfact(-0.15)
|
||||
awful.client.incwfact(-0.05)
|
||||
end
|
||||
end),
|
||||
awful.key({ modkey, shiftkey, ctrlkey }, "j", function (c)
|
||||
awful.key({ superkey, shiftkey, ctrlkey }, "j", function (c)
|
||||
-- Relative move
|
||||
c:relative_move(0, 20, 0, 0)
|
||||
end),
|
||||
awful.key({ modkey, shiftkey, ctrlkey }, "k", function (c)
|
||||
awful.key({ superkey, shiftkey, ctrlkey }, "Down", function (c)
|
||||
-- Relative move
|
||||
c:relative_move(0, 20, 0, 0)
|
||||
end),
|
||||
awful.key({ superkey, shiftkey, ctrlkey }, "k", function (c)
|
||||
-- Relative move
|
||||
c:relative_move(0, -20, 0, 0)
|
||||
end),
|
||||
awful.key({ superkey, shiftkey, ctrlkey }, "Up", function (c)
|
||||
-- Relative move
|
||||
c:relative_move(0, -20, 0, 0)
|
||||
end),
|
||||
-- Toggle titlebar (for focused client only)
|
||||
awful.key({ modkey, }, "b",
|
||||
awful.key({ superkey, }, "t",
|
||||
function (c)
|
||||
-- Don't toggle if titlebars are used as borders
|
||||
if not beautiful.titlebars_imitate_borders then
|
||||
|
|
@ -508,7 +633,7 @@ keys.clientkeys = gears.table.join(
|
|||
end,
|
||||
{description = "toggle titlebar", group = "client"}),
|
||||
-- Toggle titlebar (for all visible clients in selected tag)
|
||||
awful.key({ modkey, shiftkey }, "b",
|
||||
awful.key({ superkey, shiftkey }, "t",
|
||||
function (c)
|
||||
--local s = awful.screen.focused()
|
||||
local clients = awful.screen.focused().clients
|
||||
|
|
@ -521,63 +646,62 @@ keys.clientkeys = gears.table.join(
|
|||
end,
|
||||
{description = "toggle titlebar", group = "client"}),
|
||||
-- Toggle fullscreen
|
||||
awful.key({ modkey, }, "f",
|
||||
awful.key({ superkey, }, "f",
|
||||
function (c)
|
||||
c.fullscreen = not c.fullscreen
|
||||
c:raise()
|
||||
end,
|
||||
{description = "toggle fullscreen", group = "client"}),
|
||||
-- Resize and set floating
|
||||
-- Resize and set floating - Predetermined size according to screen
|
||||
-- F for focused view
|
||||
awful.key({ modkey, shiftkey }, "f",
|
||||
awful.key({ superkey, ctrlkey }, "f",
|
||||
function (c)
|
||||
c.width = 950
|
||||
c.height = 600
|
||||
--c.width = 750
|
||||
--c.height = 500
|
||||
c.floating = true
|
||||
awful.placement.centered(c,{honor_workarea=true})
|
||||
c:raise()
|
||||
end,
|
||||
{description = "focus mode", group = "client"}),
|
||||
-- Resize and set floating 2: Electric Boogaloo
|
||||
-- F for focused view
|
||||
awful.key({ modkey, ctrlkey }, "f",
|
||||
function (c)
|
||||
c.width = 600
|
||||
c.height = 600
|
||||
--c.width = 750
|
||||
--c.height = 500
|
||||
-- c.width = 950
|
||||
-- c.height = 600
|
||||
c.width = screen_width * 0.7
|
||||
c.height = screen_height * 0.75
|
||||
c.floating = true
|
||||
awful.placement.centered(c,{honor_workarea=true})
|
||||
c:raise()
|
||||
end,
|
||||
{description = "focus mode", group = "client"}),
|
||||
-- V for vertical view
|
||||
awful.key({ superkey, ctrlkey }, "v",
|
||||
function (c)
|
||||
c.width = screen_width * 0.45
|
||||
c.height = screen_height * 0.85
|
||||
c.floating = true
|
||||
awful.placement.centered(c,{honor_workarea=true})
|
||||
c:raise()
|
||||
end,
|
||||
{description = "focus mode", group = "client"}),
|
||||
-- T for tiny window
|
||||
awful.key({ modkey, ctrlkey }, "t",
|
||||
awful.key({ superkey, ctrlkey }, "t",
|
||||
function (c)
|
||||
c.width = 400
|
||||
c.height = 260
|
||||
-- c.width = 400
|
||||
-- c.height = 260
|
||||
c.width = screen_width * 0.3
|
||||
c.height = screen_height * 0.35
|
||||
c.floating = true
|
||||
awful.placement.centered(c,{honor_workarea=true})
|
||||
c:raise()
|
||||
end,
|
||||
{description = "tiny mode", group = "client"}),
|
||||
-- N for normal window
|
||||
awful.key({ modkey, ctrlkey }, "n",
|
||||
awful.key({ superkey, ctrlkey }, "n",
|
||||
function (c)
|
||||
c.width = 640
|
||||
c.height = 400
|
||||
c.width = screen_width * 0.45
|
||||
c.height = screen_height * 0.5
|
||||
c.floating = true
|
||||
awful.placement.centered(c,{honor_workarea=true})
|
||||
c:raise()
|
||||
end,
|
||||
{description = "normal mode", group = "client"}),
|
||||
awful.key({ modkey, shiftkey }, "q", function (c) c:kill() end,
|
||||
awful.key({ superkey, shiftkey }, "q", function (c) c:kill() end,
|
||||
{description = "close", group = "client"}),
|
||||
--awful.key({ modkey, ctrlkey }, "space", awful.client.floating.toggle ,
|
||||
--awful.key({ superkey, ctrlkey }, "space", awful.client.floating.toggle ,
|
||||
-- Toggle floating
|
||||
awful.key({ modkey, ctrlkey }, "space",
|
||||
awful.key({ superkey, ctrlkey }, "space",
|
||||
function(c)
|
||||
local current_layout = awful.layout.getname(awful.layout.get(awful.screen.focused()))
|
||||
if current_layout ~= "floating" then
|
||||
|
|
@ -586,38 +710,38 @@ keys.clientkeys = gears.table.join(
|
|||
--c:raise()
|
||||
end,
|
||||
{description = "toggle floating", group = "client"}),
|
||||
awful.key({ modkey, ctrlkey }, "Return", function (c) c:swap(awful.client.getmaster()) end,
|
||||
awful.key({ superkey, ctrlkey }, "Return", function (c) c:swap(awful.client.getmaster()) end,
|
||||
{description = "move to master", group = "client"}),
|
||||
awful.key({ modkey, }, "o", function (c) c:move_to_screen() end,
|
||||
awful.key({ superkey, }, "o", function (c) c:move_to_screen() end,
|
||||
{description = "move to screen", group = "client"}),
|
||||
-- P for pin: keep on top OR sticky
|
||||
-- On top
|
||||
awful.key({ modkey, shiftkey }, "p", function (c) c.ontop = not c.ontop end,
|
||||
awful.key({ superkey, shiftkey }, "p", function (c) c.ontop = not c.ontop end,
|
||||
{description = "toggle keep on top", group = "client"}),
|
||||
-- Sticky
|
||||
awful.key({ modkey, ctrlkey }, "p", function (c) c.sticky = not c.sticky end,
|
||||
awful.key({ superkey, ctrlkey }, "p", function (c) c.sticky = not c.sticky end,
|
||||
{description = "toggle sticky", group = "client"}),
|
||||
-- Minimize
|
||||
awful.key({ modkey, }, "n",
|
||||
awful.key({ superkey, }, "n",
|
||||
function (c)
|
||||
-- The client currently has the input focus, so it cannot be
|
||||
-- minimized, since minimized clients can't have the focus.
|
||||
c.minimized = true
|
||||
end ,
|
||||
{description = "minimize", group = "client"}),
|
||||
awful.key({ modkey, }, "m",
|
||||
awful.key({ superkey, }, "m",
|
||||
function (c)
|
||||
c.maximized = not c.maximized
|
||||
c:raise()
|
||||
end ,
|
||||
{description = "(un)maximize", group = "client"}),
|
||||
awful.key({ modkey, ctrlkey }, "m",
|
||||
awful.key({ superkey, ctrlkey }, "m",
|
||||
function (c)
|
||||
c.maximized_vertical = not c.maximized_vertical
|
||||
c:raise()
|
||||
end ,
|
||||
{description = "(un)maximize vertically", group = "client"}),
|
||||
awful.key({ modkey, shiftkey }, "m",
|
||||
awful.key({ superkey, shiftkey }, "m",
|
||||
function (c)
|
||||
c.maximized_horizontal = not c.maximized_horizontal
|
||||
c:raise()
|
||||
|
|
@ -632,7 +756,7 @@ local ntags = 10
|
|||
for i = 1, ntags do
|
||||
keys.globalkeys = gears.table.join(keys.globalkeys,
|
||||
-- View tag only.
|
||||
awful.key({ modkey }, "#" .. i + 9,
|
||||
awful.key({ superkey }, "#" .. i + 9,
|
||||
function ()
|
||||
local screen = awful.screen.focused()
|
||||
local tag = screen.tags[i]
|
||||
|
|
@ -657,7 +781,7 @@ for i = 1, ntags do
|
|||
end,
|
||||
{description = "view tag #"..i, group = "tag"}),
|
||||
-- Toggle tag display.
|
||||
awful.key({ modkey, ctrlkey }, "#" .. i + 9,
|
||||
awful.key({ superkey, ctrlkey }, "#" .. i + 9,
|
||||
function ()
|
||||
local screen = awful.screen.focused()
|
||||
local tag = screen.tags[i]
|
||||
|
|
@ -667,7 +791,7 @@ for i = 1, ntags do
|
|||
end,
|
||||
{description = "toggle tag #" .. i, group = "tag"}),
|
||||
-- Move client to tag.
|
||||
awful.key({ modkey, shiftkey }, "#" .. i + 9,
|
||||
awful.key({ superkey, shiftkey }, "#" .. i + 9,
|
||||
function ()
|
||||
if client.focus then
|
||||
local tag = client.focus.screen.tags[i]
|
||||
|
|
@ -678,7 +802,7 @@ for i = 1, ntags do
|
|||
end,
|
||||
{description = "move focused client to tag #"..i, group = "tag"}),
|
||||
-- Move all visible clients to tag and focus that tag
|
||||
awful.key({ modkey, altkey }, "#" .. i + 9,
|
||||
awful.key({ superkey, altkey }, "#" .. i + 9,
|
||||
function ()
|
||||
local tag = client.focus.screen.tags[i]
|
||||
local clients = awful.screen.focused().clients
|
||||
|
|
@ -691,7 +815,7 @@ for i = 1, ntags do
|
|||
end,
|
||||
{description = "move all visible clients to tag #"..i, group = "tag"}),
|
||||
-- Toggle tag on focused client.
|
||||
awful.key({ modkey, ctrlkey, shiftkey }, "#" .. i + 9,
|
||||
awful.key({ superkey, ctrlkey, shiftkey }, "#" .. i + 9,
|
||||
function ()
|
||||
if client.focus then
|
||||
local tag = client.focus.screen.tags[i]
|
||||
|
|
@ -707,8 +831,9 @@ end
|
|||
-- Mouse buttons on the client (whole window, not just titlebar)
|
||||
keys.clientbuttons = gears.table.join(
|
||||
awful.button({ }, 1, function (c) client.focus = c; c:raise() end),
|
||||
awful.button({ modkey }, 1, awful.mouse.client.move),
|
||||
awful.button({ modkey }, 3, function(c)
|
||||
awful.button({ superkey }, 1, awful.mouse.client.move),
|
||||
awful.button({ superkey }, 2, function (c) c:kill() end),
|
||||
awful.button({ superkey }, 3, function(c)
|
||||
awful.mouse.resize(c, nil, {jump_to_corner=true})
|
||||
end)
|
||||
)
|
||||
|
|
@ -718,10 +843,4 @@ keys.clientbuttons = gears.table.join(
|
|||
root.keys(keys.globalkeys)
|
||||
root.buttons(keys.desktopbuttons)
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
return keys
|
||||
|
|
|
|||
|
|
@ -1,120 +0,0 @@
|
|||
local awful = require("awful")
|
||||
local gears = require("gears")
|
||||
local beautiful = require("beautiful")
|
||||
local wibox = require("wibox")
|
||||
|
||||
-- Get theme variables
|
||||
local floating_color = beautiful.desktop_mode_color_floating or "#1D8CD2"
|
||||
local tile_color = beautiful.desktop_mode_color_tile or "#2DD283"
|
||||
local max_color = beautiful.desktop_mode_color_max or "#D21D43"
|
||||
local floating_text = beautiful.desktop_mode_text_floating or "(fl)"
|
||||
local tile_text = beautiful.desktop_mode_text_tile or "(ti)"
|
||||
local max_text = beautiful.desktop_mode_text_max or "(ma)"
|
||||
|
||||
--local desktop_mode_widget = wibox.widget.textbox("")
|
||||
--desktop_mode_widget.font = beautiful.font
|
||||
--desktop_mode_widget.align = "center"
|
||||
local desktop_mode_widget = wibox.widget{
|
||||
font = beautiful.font,
|
||||
markup = ' ',
|
||||
align = 'center',
|
||||
valign = 'center',
|
||||
widget = wibox.widget.textbox
|
||||
}
|
||||
|
||||
-- Mouse control
|
||||
desktop_mode_widget:buttons(gears.table.join(
|
||||
-- Old Left click: toggle between tile and floating + toggle titlebars
|
||||
-- Left click: toggle titlebar for focused client
|
||||
awful.button({ }, 1, function ()
|
||||
--switch_modes()
|
||||
if client.focus ~= nil then
|
||||
awful.titlebar.toggle(client.focus, beautiful.titlebar_position)
|
||||
end
|
||||
end),
|
||||
-- Right click: Toggle titlebars in all visible clients
|
||||
awful.button({ }, 3, function ()
|
||||
local clients = awful.screen.focused().clients
|
||||
for _, c in pairs(clients) do
|
||||
-- Don't toggle if titlebars are used as borders
|
||||
if not beautiful.titlebars_imitate_borders then
|
||||
awful.titlebar.toggle(c, beautiful.titlebar_position)
|
||||
end
|
||||
end
|
||||
end),
|
||||
-- TODO
|
||||
awful.button({ }, 4, function ()
|
||||
awful.layout.inc(-1)
|
||||
--local clients = awful.screen.focused().clients
|
||||
--for _, c in pairs(clients) do
|
||||
--awful.titlebar.show(c, beautiful.titlebar_position)
|
||||
--end
|
||||
end),
|
||||
awful.button({ }, 5, function ()
|
||||
awful.layout.inc(1)
|
||||
--local clients = awful.screen.focused().clients
|
||||
--for _, c in pairs(clients) do
|
||||
---- Don't hide if titlebars are used as borders
|
||||
--if not beautiful.titlebars_imitate_borders then
|
||||
--awful.titlebar.hide(c, beautiful.titlebar_position)
|
||||
--end
|
||||
--end
|
||||
end)
|
||||
))
|
||||
|
||||
function switch_modes()
|
||||
local current_layout = awful.layout.getname(awful.layout.get(awful.screen.focused()))
|
||||
if current_layout == "floating" then
|
||||
local clients = awful.screen.focused().clients
|
||||
for _, c in pairs(clients) do
|
||||
-- Don't hide if titlebars are used as borders
|
||||
if not beautiful.titlebars_imitate_borders then
|
||||
awful.titlebar.hide(c, beautiful.titlebar_position)
|
||||
end
|
||||
end
|
||||
awful.layout.set(awful.layout.suit.tile)
|
||||
else
|
||||
--elseif current_layout == "tile" then
|
||||
local clients = awful.screen.focused().clients
|
||||
for _, c in pairs(clients) do
|
||||
awful.titlebar.show(c, beautiful.titlebar_position)
|
||||
end
|
||||
-- Delay so that the windows will first be resized properly
|
||||
-- by the tiling layout
|
||||
gears.timer.delayed_call(function()
|
||||
awful.layout.set(awful.layout.suit.floating)
|
||||
end)
|
||||
end
|
||||
end
|
||||
|
||||
local function update_widget()
|
||||
local current_layout = awful.layout.getname(awful.layout.get(awful.screen.focused()))
|
||||
local color
|
||||
local txt
|
||||
if current_layout == "max" then
|
||||
color = max_color
|
||||
txt = max_text
|
||||
elseif current_layout == "tile" then
|
||||
color = tile_color
|
||||
txt = tile_text
|
||||
elseif current_layout == "floating" then
|
||||
color = floating_color
|
||||
txt = floating_text
|
||||
else
|
||||
--default
|
||||
color = tile_color
|
||||
txt = tile_text
|
||||
end
|
||||
|
||||
desktop_mode_widget.markup = "<span foreground='" .. color .."'>" .. txt .. "</span>"
|
||||
end
|
||||
|
||||
-- Signals
|
||||
awful.tag.attached_connect_signal(s, "property::selected", function ()
|
||||
update_widget()
|
||||
end)
|
||||
awful.tag.attached_connect_signal(s, "property::layout", function ()
|
||||
update_widget()
|
||||
end)
|
||||
|
||||
return desktop_mode_widget
|
||||
|
|
@ -11,13 +11,11 @@ local hidden_clients_color = beautiful.minimal_tasklist_hidden_clients_color or
|
|||
local hidden_clients_text = beautiful.minimal_tasklist_hidden_clients_text or "h: "
|
||||
|
||||
local minimal_tasklist = wibox.widget{
|
||||
font = beautiful.font,
|
||||
text = "placeholder",
|
||||
text = "minimal_tasklist widget",
|
||||
align = 'center',
|
||||
valign = 'center',
|
||||
widget = wibox.widget.textbox
|
||||
}
|
||||
--TODO forced_width = ?
|
||||
|
||||
-- Mouse control
|
||||
minimal_tasklist:buttons(gears.table.join(
|
||||
|
|
@ -90,19 +88,12 @@ local function update_widget()
|
|||
minimal_tasklist.text = txt
|
||||
minimal_tasklist.markup =
|
||||
"<span foreground='" .. visible_clients_color .."'>"
|
||||
.. visible_clients_text .. "</span>" .. vpad .. #clients .. " ·~"
|
||||
.. visible_clients_text .. "</span>" .. vpad .. #clients
|
||||
.. "<span foreground='" .. hidden_clients_color .."'>"
|
||||
.. hidden_clients_text .. "</span>" .. hpad .. #hidden_clients
|
||||
end
|
||||
|
||||
-- Signals
|
||||
--minimal_tasklist:connect_signal("mouse::enter", function ()
|
||||
--awful.spawn.with_shell("notify-send hello")
|
||||
--end)
|
||||
--minimal_tasklist:connect_signal("mouse::leave", function ()
|
||||
--awful.spawn.with_shell("notify-send bye")
|
||||
--end)
|
||||
|
||||
client.connect_signal("unmanage", function(c)
|
||||
update_widget()
|
||||
end)
|
||||
|
|
|
|||
|
|
@ -10,13 +10,12 @@
|
|||
--------------------------------------------------------------------------------
|
||||
|
||||
local theme_collection = {
|
||||
"manta", -- 1 --
|
||||
--"whatever", -- 2 --
|
||||
-- Add more themes here
|
||||
"manta", -- 1 --
|
||||
"lovelace" -- 2 --
|
||||
}
|
||||
|
||||
-- Change this number to use a different theme
|
||||
local theme_name = theme_collection[1]
|
||||
local theme_name = theme_collection[2]
|
||||
|
||||
--------------------------------------------------------------------------------
|
||||
|
||||
|
|
@ -44,16 +43,24 @@ local hotkeys_popup = require("awful.hotkeys_popup").widget
|
|||
-- when client with a matching name is opened:
|
||||
require("awful.hotkeys_popup.keys")
|
||||
|
||||
-- ~~ Noodle Cleanup Script ~~
|
||||
-- Some of my widgets (mpd, volume) rely on scripts that have to be
|
||||
-- run persistently in the background.
|
||||
-- They sleep until mpd/volume state changes, in an infinite loop.
|
||||
-- As a result when awesome restarts, they keep running in background, along with the new ones that are created after the restart.
|
||||
-- This script cleans up the old processes.
|
||||
awful.spawn.with_shell("~/.config/awesome/awesome-cleanup.sh")
|
||||
|
||||
-- {{{ Initialize stuff
|
||||
local helpers = require("helpers")
|
||||
local bars = require("bars")
|
||||
local keys = require("keys")
|
||||
local titlebars = require("titlebars")
|
||||
local sidebar = require("sidebar")
|
||||
local exit_screen = require("exit_screen")
|
||||
-- }}}
|
||||
|
||||
-- {{{ Third party stuff
|
||||
--local volumebar_widget = require("third_party.awesome-wm-widgets.volumebar-widget.volumebar")
|
||||
--local mpdarc_widget = require("third_party.awesome-wm-widgets.mpdarc-widget.mpdarc")
|
||||
-- {{{ Third party
|
||||
-- }}}
|
||||
|
||||
-- {{{ Error handling
|
||||
|
|
@ -82,18 +89,20 @@ end
|
|||
-- }}}
|
||||
|
||||
-- {{{ Variable definitions
|
||||
-- This is used later as the default terminal and editor to run.
|
||||
terminal = "termite"
|
||||
floating_terminal = "termite --class Diptera"
|
||||
tmux = terminal .. " -e tmux new "
|
||||
floating_tmux = terminal .. " --class Diptera -e tmux new "
|
||||
editor = "vim"
|
||||
--editor = os.getenv("EDITOR") or "nano"
|
||||
editor_cmd = terminal .. " -e " .. editor .. " "
|
||||
filemanager = "nemo"
|
||||
|
||||
-- Get screen geometry
|
||||
screen_width = awful.screen.focused().geometry.width
|
||||
screen_height = awful.screen.focused().geometry.height
|
||||
|
||||
-- Table of layouts to cover with awful.layout.inc, order matters.
|
||||
awful.layout.layouts = {
|
||||
-- I only ever use these
|
||||
-- I only ever use these 3
|
||||
awful.layout.suit.tile,
|
||||
awful.layout.suit.floating,
|
||||
awful.layout.suit.max,
|
||||
|
|
@ -132,21 +141,21 @@ naughty.config.defaults.margin = beautiful.notification_margin
|
|||
naughty.config.defaults.border_width = beautiful.notification_border_width
|
||||
|
||||
naughty.config.presets.normal = {
|
||||
font = beautiful.font,
|
||||
font = beautiful.notification_font,
|
||||
fg = beautiful.notification_fg,
|
||||
bg = beautiful.notification_bg,
|
||||
border_width = beautiful.notification_border_width,
|
||||
margin = beautiful.notification_margin,
|
||||
position = beautiful.notification_position
|
||||
position = beautiful.notification_position
|
||||
}
|
||||
|
||||
naughty.config.presets.low = {
|
||||
font = beautiful.font,
|
||||
font = beautiful.notification_font,
|
||||
fg = beautiful.notification_fg,
|
||||
bg = beautiful.notification_bg,
|
||||
border_width = beautiful.notification_border_width,
|
||||
margin = beautiful.notification_margin,
|
||||
position = beautiful.notification_position
|
||||
position = beautiful.notification_position
|
||||
}
|
||||
|
||||
naughty.config.presets.ok = naughty.config.presets.low
|
||||
|
|
@ -154,12 +163,12 @@ naughty.config.presets.info = naughty.config.presets.low
|
|||
naughty.config.presets.warn = naughty.config.presets.normal
|
||||
|
||||
naughty.config.presets.critical = {
|
||||
font = beautiful.font,
|
||||
fg = beautiful.notification_crit_fg,
|
||||
bg = beautiful.notification_crit_bg,
|
||||
font = beautiful.notification_font,
|
||||
fg = beautiful.notification_crit_fg,
|
||||
bg = beautiful.notification_crit_bg,
|
||||
border_width = beautiful.notification_border_width,
|
||||
margin = beautiful.notification_margin,
|
||||
position = beautiful.notification_position
|
||||
position = beautiful.notification_position
|
||||
}
|
||||
|
||||
-- }}}
|
||||
|
|
@ -167,56 +176,73 @@ naughty.config.presets.critical = {
|
|||
-- {{{ Menu
|
||||
-- Create a launcher widget and a main menu
|
||||
myawesomemenu = {
|
||||
{ "hotkeys", function() return false, hotkeys_popup.show_help end},
|
||||
{ "manual", terminal .. " -e \"man awesome\"" },
|
||||
{ "restart", awesome.restart },
|
||||
{ "quit", function() awesome.quit() end}
|
||||
}
|
||||
mymusicmenu = {
|
||||
{ "mpd toggle", function() awful.spawn.with_shell("mpc toggle") end},
|
||||
{ "mpd next", function() awful.spawn.with_shell("mpc next") end},
|
||||
{ "mpd previous", function() awful.spawn.with_shell("mpc prev") end},
|
||||
{ "ncmpcpp", function() awful.spawn.with_shell(terminal .. " -e ncmpcpp") end},
|
||||
{ "--------------", nil},
|
||||
{ "mpv toggle", function() awful.spawn.with_shell("mpvc toggle") end},
|
||||
{ "mpv next", function() awful.spawn.with_shell("mpvc next") end},
|
||||
{ "mpv previous", function() awful.spawn.with_shell("mpvc prev") end},
|
||||
{ "mpvtube", function() awful.spawn.with_shell("~/scr/Rofi/rofi_mpvtube") end}
|
||||
{ "hotkeys", function() return false, hotkeys_popup.show_help end, beautiful.keyboard_icon},
|
||||
{ "manual", terminal .. " -e \"man awesome\"", beautiful.manual_icon },
|
||||
{ "restart", awesome.restart, beautiful.reboot_icon },
|
||||
{ "quit", function() exit_screen_show() end, beautiful.exit_icon}
|
||||
-- { "quit", function() awesome.quit() end}
|
||||
}
|
||||
|
||||
|
||||
|
||||
-- Need to allow these commands to be run without password
|
||||
-- Or if you are using systemd: systemctl [suspend|hibernate]
|
||||
mypowermenu = {
|
||||
{ "reboot", "reboot" },
|
||||
{ "suspend", "sudo pm-suspend" },
|
||||
{ "hibernate", "sudo pm-hibernate" },
|
||||
{ "poweroff", "poweroff" }
|
||||
}
|
||||
|
||||
--mymainmenu = awful.menu({ items = { { "awesome", myawesomemenu, beautiful.awesome_icon },
|
||||
--{ "music", mymusicmenu, beautiful.awesome_icon },
|
||||
--{ "power", mypowermenu, beautiful.awesome_icon },
|
||||
mymainmenu = awful.menu({ items = {
|
||||
{ "awesome", myawesomemenu },
|
||||
{ "music", mymusicmenu },
|
||||
{ "firefox", "firefox" },
|
||||
{ "files", "nemo" },
|
||||
{ "discord", "discord" },
|
||||
{ "gimp", "gimp" },
|
||||
{ "appearance", "lxappearance" },
|
||||
{ "volume", "pavucontrol" },
|
||||
{ "games", "lutris" },
|
||||
{ "steam", "steam" },
|
||||
{ "terminal", terminal },
|
||||
{ "power", mypowermenu }
|
||||
mymainmenu = awful.menu({ items = {
|
||||
{ "awesome", myawesomemenu, beautiful.home_icon },
|
||||
{ "firefox", "firefox", beautiful.firefox_icon },
|
||||
{ "mail",
|
||||
function ()
|
||||
local matcher = function (c)
|
||||
return awful.rules.match(c, {class = 'Thunderbird'})
|
||||
end
|
||||
awful.client.run_or_raise("thunderbird", matcher)
|
||||
end,
|
||||
beautiful.mail_icon },
|
||||
{ "editor", "em", beautiful.editor_icon },
|
||||
{ "files", filemanager, beautiful.files_icon },
|
||||
{ "discord",
|
||||
function ()
|
||||
local matcher = function (c)
|
||||
return awful.rules.match(c, {class = 'discord'})
|
||||
end
|
||||
awful.client.run_or_raise("discord", matcher)
|
||||
end,
|
||||
beautiful.discord_icon },
|
||||
{ "gimp",
|
||||
function ()
|
||||
local matcher = function (c)
|
||||
return awful.rules.match(c, {class = 'Gimp'})
|
||||
end
|
||||
awful.client.run_or_raise("gimp", matcher)
|
||||
end,
|
||||
beautiful.gimp_icon },
|
||||
{ "appearance", "lxappearance", beautiful.appearance_icon },
|
||||
{ "volume",
|
||||
function ()
|
||||
local matcher = function (c)
|
||||
return awful.rules.match(c, {class = 'Pavucontrol'})
|
||||
end
|
||||
awful.client.run_or_raise("pavucontrol", matcher)
|
||||
end,
|
||||
beautiful.volume_icon },
|
||||
{ "lutris",
|
||||
function ()
|
||||
local matcher = function (c)
|
||||
return awful.rules.match(c, {class = 'Lutris'})
|
||||
end
|
||||
awful.client.run_or_raise("lutris", matcher)
|
||||
end,
|
||||
beautiful.lutris_icon },
|
||||
{ "steam",
|
||||
function ()
|
||||
local matcher = function (c)
|
||||
return awful.rules.match(c, {class = 'Steam'})
|
||||
end
|
||||
awful.client.run_or_raise("steam", matcher)
|
||||
end,
|
||||
beautiful.steam_icon },
|
||||
{ "terminal", terminal, beautiful.terminal_icon },
|
||||
}
|
||||
})
|
||||
|
||||
mylauncher = awful.widget.launcher({ image = beautiful.awesome_icon,
|
||||
menu = mymainmenu })
|
||||
|
||||
-- Menubar configuration
|
||||
menubar.utils.terminal = terminal -- Set the terminal for applications that require it
|
||||
-- }}}
|
||||
|
|
@ -244,19 +270,67 @@ end
|
|||
-- Re-set wallpaper when a screen's geometry changes (e.g. different resolution)
|
||||
screen.connect_signal("property::geometry", set_wallpaper)
|
||||
|
||||
-- Tag Names
|
||||
local tagnames = beautiful.tagnames or { "1", "2", "3", "4", "5", "6", "7", "8", "9", "10" }
|
||||
|
||||
awful.screen.connect_for_each_screen(function(s)
|
||||
-- Wallpaper
|
||||
set_wallpaper(s)
|
||||
|
||||
-- Layouts
|
||||
-- Each screen has its own tag table.
|
||||
-- Layouts
|
||||
local l = awful.layout.suit -- Alias to save time :)
|
||||
local layouts = { l.max, l.floating, l.max, l.tile , l.tile,
|
||||
l.max, l.floating, l.max, l.floating, l.floating}
|
||||
awful.tag(tagnames, s, layouts)
|
||||
-- Initialize layouts array
|
||||
local layouts = { l.max, l.floating, l.max, l.max , l.tile,
|
||||
l.max, l.max, l.max, l.floating, l.fair}
|
||||
|
||||
-- Initialize tagnames array
|
||||
local tagnames = beautiful.tagnames or { "1", "2", "3", "4", "5", "6", "7", "8", "9", "10" }
|
||||
|
||||
-- Create tags
|
||||
awful.tag.add(tagnames[1], {
|
||||
-- icon = "/path/to/icon1.png",
|
||||
layout = layouts[1],
|
||||
screen = s,
|
||||
selected = true,
|
||||
})
|
||||
awful.tag.add(tagnames[2], {
|
||||
layout = layouts[2],
|
||||
screen = s,
|
||||
})
|
||||
awful.tag.add(tagnames[3], {
|
||||
layout = layouts[3],
|
||||
screen = s,
|
||||
})
|
||||
awful.tag.add(tagnames[4], {
|
||||
layout = layouts[4],
|
||||
screen = s,
|
||||
})
|
||||
awful.tag.add(tagnames[5], {
|
||||
layout = layouts[5],
|
||||
master_width_factor = 0.65,
|
||||
screen = s,
|
||||
})
|
||||
awful.tag.add(tagnames[6], {
|
||||
layout = layouts[6],
|
||||
screen = s,
|
||||
})
|
||||
awful.tag.add(tagnames[7], {
|
||||
layout = layouts[7],
|
||||
screen = s,
|
||||
})
|
||||
awful.tag.add(tagnames[8], {
|
||||
layout = layouts[8],
|
||||
screen = s,
|
||||
})
|
||||
awful.tag.add(tagnames[9], {
|
||||
layout = layouts[9],
|
||||
screen = s,
|
||||
})
|
||||
awful.tag.add(tagnames[10], {
|
||||
layout = layouts[10],
|
||||
screen = s,
|
||||
})
|
||||
|
||||
-- Create all tags at once (without seperate configuration for each tag)
|
||||
-- awful.tag(tagnames, s, layouts)
|
||||
end)
|
||||
|
||||
-- {{{ Rules
|
||||
|
|
@ -278,6 +352,11 @@ awful.rules.rules = {
|
|||
}
|
||||
},
|
||||
|
||||
-- Add titlebars to normal clients and dialogs
|
||||
{ rule_any = {type = { "normal", "dialog" }
|
||||
}, properties = { titlebars_enabled = true },
|
||||
},
|
||||
|
||||
-- Floating clients
|
||||
{ rule_any = {
|
||||
instance = {
|
||||
|
|
@ -288,7 +367,8 @@ awful.rules.rules = {
|
|||
"Galculator",
|
||||
"feh",
|
||||
"Gpick",
|
||||
"Diptera", -- Floating Termite
|
||||
"Lxappearance",
|
||||
"Pavucontrol",
|
||||
},
|
||||
|
||||
name = {
|
||||
|
|
@ -300,13 +380,14 @@ awful.rules.rules = {
|
|||
}
|
||||
}, properties = { floating = true, ontop = false }},
|
||||
|
||||
-- Add titlebars to normal clients and dialogs
|
||||
-- Not needed anymore --
|
||||
{ rule_any = {type = { "normal", "dialog" }
|
||||
}, properties = { titlebars_enabled = true }--,
|
||||
--callback = function (c)
|
||||
--end
|
||||
},
|
||||
-- Fullscreen clients
|
||||
{ rule_any = {
|
||||
class = {
|
||||
"dota2",
|
||||
"Terraria.bin.x86",
|
||||
"dontstarve_steam",
|
||||
},
|
||||
}, properties = { fullscreen = true }},
|
||||
|
||||
-- Centered clients
|
||||
{ rule_any = {
|
||||
|
|
@ -318,6 +399,7 @@ awful.rules.rules = {
|
|||
},
|
||||
name = {
|
||||
"Save As",
|
||||
"File Upload",
|
||||
},
|
||||
role = {
|
||||
"GtkFileChooserDialog",
|
||||
|
|
@ -333,14 +415,14 @@ awful.rules.rules = {
|
|||
{ rule_any = {
|
||||
class = {
|
||||
"qutebrowser",
|
||||
"feh",
|
||||
"Gimp",
|
||||
-- "feh",
|
||||
-- "Gimp",
|
||||
"Sublime_text",
|
||||
--"discord",
|
||||
--"TelegramDesktop",
|
||||
"Firefox",
|
||||
"Steam",
|
||||
"Chromium-browser",
|
||||
"Rofi",
|
||||
},
|
||||
}, properties = {},
|
||||
callback = function (c)
|
||||
|
|
@ -355,11 +437,15 @@ awful.rules.rules = {
|
|||
-- Titlebars of these clients will be shown regardless of the theme setting
|
||||
{ rule_any = {
|
||||
class = {
|
||||
--"feh",
|
||||
--"qutebrowser",
|
||||
--"Firefox",
|
||||
--"Rofi"
|
||||
--"???",
|
||||
},
|
||||
name = {
|
||||
"File Upload",
|
||||
"Open File",
|
||||
"Select a filename",
|
||||
"Enter name of file to save to…",
|
||||
"Library"
|
||||
},
|
||||
}, properties = {},
|
||||
callback = function (c)
|
||||
awful.titlebar.show(c, beautiful.titlebar_position)
|
||||
|
|
@ -382,25 +468,23 @@ awful.rules.rules = {
|
|||
{ rule_any = {
|
||||
class = {
|
||||
"Termite",
|
||||
"Diptera",
|
||||
"mpvtube",
|
||||
"kitty",
|
||||
"st-256color",
|
||||
"st",
|
||||
"URxvt",
|
||||
"XTerm",
|
||||
},
|
||||
}, properties = { width = 640, height = 400 }
|
||||
}, properties = { width = screen_width * 0.45, height = screen_height * 0.5 }
|
||||
},
|
||||
|
||||
-- File managers
|
||||
{ rule_any = {
|
||||
class = {
|
||||
"Nemo",
|
||||
"Thunar"
|
||||
},
|
||||
}, properties = { floating = true, width = 580, height = 440 }
|
||||
},
|
||||
-- { rule_any = {
|
||||
-- class = {
|
||||
-- "Nemo",
|
||||
-- "Thunar"
|
||||
-- },
|
||||
-- }, properties = { width = screen_width * 0.7, height = screen_height * 0.75}
|
||||
-- },
|
||||
|
||||
-- Rofi configuration
|
||||
-- Needed only if option "-normal-window" is used
|
||||
|
|
@ -412,6 +496,9 @@ awful.rules.rules = {
|
|||
callback = function (c)
|
||||
c.skip_taskbar = true
|
||||
awful.placement.centered(c,{honor_workarea=true})
|
||||
if not beautiful.titlebars_imitate_borders then
|
||||
awful.titlebar.hide(c, beautiful.titlebar_position)
|
||||
end
|
||||
end
|
||||
},
|
||||
|
||||
|
|
@ -446,7 +533,7 @@ awful.rules.rules = {
|
|||
"scratchpad",
|
||||
"calendar",
|
||||
},
|
||||
}, properties = { tag = awful.screen.focused().tags[10], floating = true, ontop = false, sticky = true },
|
||||
}, properties = { tag = awful.screen.focused().tags[10], floating = true, ontop = false, sticky = true, width = screen_width * 0.7, height = screen_height * 0.75},
|
||||
callback = function (c)
|
||||
c.skip_taskbar = true
|
||||
c.minimized = true
|
||||
|
|
@ -454,13 +541,19 @@ awful.rules.rules = {
|
|||
end
|
||||
},
|
||||
|
||||
-- Steam guard
|
||||
{ rule = { name = "Steam Guard - Computer Authorization Required" },
|
||||
properties = { floating = true },
|
||||
callback = function (c)
|
||||
gears.timer.delayed_call(function()
|
||||
awful.placement.centered(c,{honor_workarea=true})
|
||||
end)
|
||||
end
|
||||
},
|
||||
|
||||
---------------------------------------------
|
||||
-- Start application on specific workspace --
|
||||
---------------------------------------------
|
||||
-- Example:
|
||||
-- Set Firefox to always map on the tag named "2" on screen 1.
|
||||
--{ rule = { class = "Firefox" },
|
||||
--properties = { screen = 1, tag = "2" } },
|
||||
-- Browsing
|
||||
{ rule_any = {
|
||||
class = {
|
||||
|
|
@ -468,9 +561,18 @@ awful.rules.rules = {
|
|||
"Chromium-browser",
|
||||
"qutebrowser",
|
||||
},
|
||||
--local clients =
|
||||
}, properties = { screen = 1, tag = awful.screen.focused().tags[1] } },
|
||||
|
||||
-- Games
|
||||
{ rule_any = {
|
||||
class = {
|
||||
"dota2",
|
||||
"Terraria.bin.x86",
|
||||
"dontstarve_steam",
|
||||
"Wine",
|
||||
},
|
||||
}, properties = { screen = 1, tag = awful.screen.focused().tags[2] } },
|
||||
|
||||
-- Chatting
|
||||
{ rule_any = {
|
||||
class = {
|
||||
|
|
@ -478,7 +580,6 @@ awful.rules.rules = {
|
|||
"TelegramDesktop",
|
||||
"TeamSpeak 3",
|
||||
},
|
||||
--local clients =
|
||||
}, properties = { screen = 1, tag = awful.screen.focused().tags[3] } },
|
||||
|
||||
-- Photo editing
|
||||
|
|
@ -489,7 +590,15 @@ awful.rules.rules = {
|
|||
},
|
||||
}, properties = { screen = 1, tag = awful.screen.focused().tags[6] } },
|
||||
|
||||
-- Gaming
|
||||
-- Mail / Torrent
|
||||
{ rule_any = {
|
||||
class = {
|
||||
"Thunderbird",
|
||||
"Deluge",
|
||||
},
|
||||
}, properties = { screen = 1, tag = awful.screen.focused().tags[7] } },
|
||||
|
||||
-- Gaming clients
|
||||
{ rule_any = {
|
||||
class = {
|
||||
"Steam",
|
||||
|
|
@ -506,8 +615,7 @@ awful.rules.rules = {
|
|||
--name = {
|
||||
--"mpvtube",
|
||||
--},
|
||||
|
||||
}, properties = { screen = 1, tag = awful.screen.focused().tags[10] },
|
||||
}, properties = { screen = 1, tag = awful.screen.focused().tags[9] },
|
||||
callback = function (c)
|
||||
awful.placement.centered(c,{honor_workarea=true})
|
||||
gears.timer.delayed_call(function()
|
||||
|
|
@ -515,6 +623,7 @@ awful.rules.rules = {
|
|||
end)
|
||||
end
|
||||
},
|
||||
|
||||
}
|
||||
-- }}}
|
||||
|
||||
|
|
@ -539,12 +648,12 @@ client.connect_signal("manage", function (c)
|
|||
|
||||
-- If the layout is not floating, every floating client that appears is centered
|
||||
if awful.layout.get(mouse.screen) ~= awful.layout.suit.floating then
|
||||
awful.placement.centered(c,{honor_workarea=true})
|
||||
awful.placement.centered(c,{honor_workarea=true})
|
||||
else
|
||||
-- If the layout is floating, and there is no other client visible, center it
|
||||
if #mouse.screen.clients == 1 then
|
||||
awful.placement.centered(c,{honor_workarea=true})
|
||||
end
|
||||
-- If the layout is floating, and there is no other client visible, center it
|
||||
if #mouse.screen.clients == 1 then
|
||||
awful.placement.centered(c,{honor_workarea=true})
|
||||
end
|
||||
end
|
||||
end)
|
||||
|
||||
|
|
@ -564,14 +673,10 @@ if beautiful.border_radius ~= 0 then
|
|||
end
|
||||
end)
|
||||
|
||||
-- Make sure fullscreen clients do not have rounded corners
|
||||
-- Fullscreen clients should not have rounded corners
|
||||
client.connect_signal("property::fullscreen", function (c)
|
||||
if c.fullscreen then
|
||||
-- Use delayed_call in order to avoid flickering when corners
|
||||
-- change shape
|
||||
gears.timer.delayed_call(function()
|
||||
c.shape = helpers.rect()
|
||||
end)
|
||||
c.shape = helpers.rect()
|
||||
else
|
||||
c.shape = helpers.rrect(beautiful.border_radius)
|
||||
end
|
||||
|
|
@ -580,7 +685,8 @@ end
|
|||
|
||||
-- When a client starts up in fullscreen, resize it to cover the fullscreen a short moment later
|
||||
-- Fixes wrong geometry when titlebars are enabled
|
||||
client.connect_signal("property::fullscreen", function(c)
|
||||
--client.connect_signal("property::fullscreen", function(c)
|
||||
client.connect_signal("manage", function(c)
|
||||
if c.fullscreen then
|
||||
gears.timer.delayed_call(function()
|
||||
if c.valid then
|
||||
|
|
@ -605,14 +711,14 @@ client.connect_signal("focus", function(c) c.border_color = beautiful.border_foc
|
|||
client.connect_signal("unfocus", function(c) c.border_color = beautiful.border_normal end)
|
||||
|
||||
-- Scratchpad gets minimized when it loses focus
|
||||
--client.connect_signal("unfocus", function(c)
|
||||
--if c.class == "scratchpad" or c.class == "calendar" then
|
||||
--c.minimized = true
|
||||
--end
|
||||
--end)
|
||||
-- client.connect_signal("unfocus", function(c)
|
||||
-- if c.class == "scratchpad" or c.class == "calendar" then
|
||||
-- c.minimized = true
|
||||
-- end
|
||||
-- end)
|
||||
|
||||
-- Scratchpad gets minimized if it is focused and tag changes
|
||||
awful.tag.attached_connect_signal(s, "property::selected", function ()
|
||||
awful.tag.attached_connect_signal(s, "property::selected", function ()
|
||||
local c = client.focus
|
||||
if c ~= nil then
|
||||
if c.class == "scratchpad" or c.class == "calendar" then
|
||||
|
|
@ -667,7 +773,7 @@ client.connect_signal('property::geometry',
|
|||
end
|
||||
)
|
||||
|
||||
-- Make rofi possible to raise minimized clients
|
||||
-- Make rofi able to unminimize minimized clients
|
||||
-- Note: causes clients to unminimize after restarting awesome
|
||||
client.connect_signal("request::activate",
|
||||
function(c, context, hints)
|
||||
|
|
@ -680,5 +786,4 @@ client.connect_signal("request::activate",
|
|||
|
||||
-- Startup applications
|
||||
awful.spawn.with_shell( os.getenv("HOME") .. "/.config/awesome/autostart.sh")
|
||||
|
||||
-- }}}
|
||||
|
|
|
|||
|
|
@ -10,13 +10,24 @@ local pad = helpers.pad
|
|||
-- Mouse buttons
|
||||
titlebars.buttons = gears.table.join(
|
||||
-- Left button - move
|
||||
-- (Double tap - Toggle maximize) -- A little BUGGY
|
||||
awful.button({ }, 1, function()
|
||||
c = mouse.object_under_pointer()
|
||||
local c = mouse.object_under_pointer()
|
||||
client.focus = c
|
||||
c:raise()
|
||||
awful.mouse.client.move(c)
|
||||
-- awful.mouse.client.move(c)
|
||||
local function single_tap()
|
||||
awful.mouse.client.move(c)
|
||||
end
|
||||
local function double_tap()
|
||||
gears.timer.delayed_call(function()
|
||||
c.maximized = not c.maximized
|
||||
end)
|
||||
end
|
||||
helpers.single_double_tap(single_tap, double_tap)
|
||||
-- helpers.single_double_tap(nil, double_tap)
|
||||
end),
|
||||
-- Middle button - close
|
||||
-- Middle button - close
|
||||
awful.button({ }, 2, function ()
|
||||
window_to_kill = mouse.object_under_pointer()
|
||||
window_to_kill:kill()
|
||||
|
|
@ -28,18 +39,6 @@ titlebars.buttons = gears.table.join(
|
|||
c:raise()
|
||||
awful.mouse.client.resize(c)
|
||||
end),
|
||||
-- Scroll up - toggle ontop
|
||||
awful.button({ }, 4, function()
|
||||
c = mouse.object_under_pointer()
|
||||
--c.maximized = not c.maximized
|
||||
c.ontop = not c.ontop
|
||||
c:raise()
|
||||
end),
|
||||
-- Scroll down - minimize
|
||||
awful.button({ }, 5, function()
|
||||
c = mouse.object_under_pointer()
|
||||
c.minimized = true
|
||||
end),
|
||||
-- Side button up - toggle floating
|
||||
awful.button({ }, 9, function()
|
||||
c = mouse.object_under_pointer()
|
||||
|
|
@ -48,10 +47,10 @@ titlebars.buttons = gears.table.join(
|
|||
c.floating = not c.floating
|
||||
c:raise()
|
||||
end),
|
||||
-- Side button down - toggle sticky
|
||||
-- Side button down - toggle ontop
|
||||
awful.button({ }, 8, function()
|
||||
c = mouse.object_under_pointer()
|
||||
c.sticky = not c.sticky
|
||||
local c = mouse.object_under_pointer()
|
||||
c.ontop = not c.ontop
|
||||
end)
|
||||
)
|
||||
|
||||
|
|
@ -96,13 +95,12 @@ client.connect_signal("request::titlebars", function(c)
|
|||
--awful.titlebar.widget.closebutton (c),
|
||||
--awful.titlebar.widget.maximizedbutton(c),
|
||||
--awful.titlebar.widget.minimizebutton (c),
|
||||
--awful.titlebar.widget.ontopbutton (c),
|
||||
--awful.titlebar.widget.stickybutton (c),
|
||||
--awful.titlebar.widget.floatingbutton (c),
|
||||
|
||||
-- awful.titlebar.widget.ontopbutton (c),
|
||||
-- awful.titlebar.widget.stickybutton (c),
|
||||
-- awful.titlebar.widget.floatingbutton (c),
|
||||
buttons = buttons,
|
||||
--awful.titlebar.widget.iconwidget(c),
|
||||
|
||||
|
||||
layout = titlebar_item_layout
|
||||
},
|
||||
{ -- Middle
|
||||
|
|
|
|||
BIN
screenshot.png
BIN
screenshot.png
Binary file not shown.
|
Before Width: | Height: | Size: 913 KiB |
Loading…
Add table
Add a link
Reference in a new issue