(local awful (require "awful")) (local gears (require "gears")) (require "awful.autofocus") (local ruled (require "ruled")) (local rules (require "rules")) (local beautiful (require "beautiful")) (local wibox (require "wibox")) (local xresources (require "beautiful.xresources")) ;; (local naughty (require "naughty")) (local menubar (require "menubar")) (local hotkeys_popup (require "awful.hotkeys_popup")) (local dpi xresources.apply_dpi) (local globalkeys (require "globalkeys")) ;;; rules (set awful.rules.rules rules) ;;; wallpaper (fn set_wallpaper [s] ;; Wallpaper (when beautiful.wallpaper (var wallpaper beautiful.wallpaper) ;; If wallpaper is a function, call it with the screen (when (= (type wallpaper) "function") (set wallpaper (wallpaper s))) (gears.wallpaper.maximized wallpaper s true))) ;; Re-set wallpaper when a screen's geometry changes (e.g. different resolution) (screen.connect_signal "property::geometry" set_wallpaper) (local mykeyboardlayout (awful.widget.keyboardlayout)) (local mytextclock (wibox.widget.textclock " %a %b %d, %l:%M %p ")) ;;; panel ;; (awful.screen.connect_for_each_screen ;; (fn [s] ;; ;; Wallpaper ;; (set_wallpaper s) ;; ;; Each screen has its own tag table. ;; (awful.tag [ "" "" "" "" ] s (. awful.layout.layouts 1)) ;; ;; Create a promptbox for each screen ;; (set s.mypromptbox (awful.widget.prompt)) ;; ;; Create an imagebox widget which will contain an icon indicating which layout we're using. ;; ;; We need one layoutbox per screen. ;; (set s.mylayoutbox (awful.widget.layoutbox s)) ;; (: s.mylayoutbox :buttons (gears.table.join ;; (awful.button [] 1 (fn [] (awful.layout.inc 1 s awful.layout.layouts))) ;; (awful.button [] 3 (fn [] (awful.layout.inc -1 s))) ;; (awful.button [] 4 (fn [] (awful.layout.inc 1 s))) ;; (awful.button [] 5 (fn [] (awful.layout.inc -1 s))))) ;; ;; create a systray widget ;; (set s.mysystray { ;; 1 (wibox.widget.systray) ;; :widget wibox.container.background ;; }) ;; ;; Create a taglist widget ;; (set s.mytaglist (awful.widget.taglist { ;; :screen s ;; :filter awful.widget.taglist.filter.all ;; :buttons taglist_buttons ;; })) ;; ;; Create a tasklist widget ;; (set s.mytasklist (awful.widget.tasklist { ;; :screen s ;; :filter awful.widget.tasklist.filter.currenttags ;; :buttons tasklist_buttons ;; :style { ;; :border_width 0 ;; :border_color "#777777" ;; :shape gears.shape.rounded_bar ;; } ;; :layout { ;; :spacing 20 ;; :spacing_widget { ;; 1 { ;; :forced_width 5 ;; :forced_height (dpi 20) ;; :widget wibox.widget.seperator ;; } ;; :valign "center" ;; :halign "center" ;; :widget wibox.container.place ;; } ;; :layout wibox.layout.flex.horizontal } ;; } ;; :widget_template { ;; 1 { ;; 1 { ;; 1 { ;; 1 { ;; :id "icon_role" ;; :widget wibox.widget.imagebox ;; } ;; :margins 2 ;; :widget wibox.container.margin ;; } ;; 2 { ;; :id "text_role" ;; :widget wibox.widget.textbox ;; } ;; :layout wibox.layout.align.horizontal ;; } ;; :left 10 ;; :right 10 ;; :widget wibox.container.margin ;; } ;; :id "background_role" ;; :widget wibox.container.background})) ;; ;; create battery network and volume widgets ;; (set s.battery (require widget.battery)) ;; (set s.volume (require widget.volume)) ;; (set s.updater (require widget.package-updater)) ;; ;; create right widgets ;; (set s.myrightwidgets { ;; 1 { ;; :layout wibox.layout.fixed.horizontal ;; 1 s.volume ;; 2 s.mysystray ;; 3 s.updater ;; 4 s.battery ;; 5 (wibox.container.margin (s.mylayoutbox 0 (dpi 25) 0 0)) ;; } ;; :widget wibox.container.background}) ;; ;; empty widget to use for spacing ;; (set s.myemptywidget (wibox.widget { ;; :markup "" ;; :align "" ;; :valign "" ;; :widget wibox.widget.textbox ;; })) ;; (local yoffset (dpi 45)) ;; (local xoffset (dpi 18)) ;; (set s.mypanel (wibox.wibox { ;; :x (+ s.geometry.x xoffset) ;; :y (- s.geometry.height yoffset) ;; :height (dpi 30) ;; :width (- s.geometry.width (* xoffset 2)) ;; :ontop false ;; :stretch false ;; :type "dock" ;; :shape gears.shape.rounded_bar ;; :bg beautiful.bg_normal ;; :fg beautiful.fg_normal ;; :opacity 0.65 ;; })) ;; (: s.mypanel :struts { ;; :bottom (dpi 40) ;; }) ;; (: s.mypanel :setup { ;; :layout wibox.layout.align.horizontal ;; :expand "outside" ;; 1 { ;; :layout wibox.layout.align.horizontal ;; 1 (wibox.container.margin (s.mytaglist (dpi 15) 0 (dpi -3) 0)) ;; 2 (wibox.container.margin (s.mytasklist (dpi 25) (dpi 25) 0 0)) ;; 3 s.myemptywidget ;; :spacing (dpi 15) ;; } ;; 2 mytextclock ;; 3 { ;; :layout wibox.layout.align.horizontal ;; 1 s.myemptywidget ;; 2 (wibox.container.margin (s.mypromptbox (dpi 25) (dpi 25) 0 0)) ;; 3 s.myrightwidgets ;; } ;; :visible true ;; }) ;; )) (root.keys globalkeys) ;;; autostart applications (awful.spawn.with_shell "picom --experimental-backend") (awful.spawn.with_shell "xset r rate 220 90") (awful.spawn.with_shell "/usr/lib/polkit-kde-authentication-agent-1") (awful.spawn.with_shell "feh --bg-fill ~/Pictures/wallpapers/RoyalKing.png") (awful.spawn.with_shell "flameshot") (awful.spawn.with_shell "caffeine") (awful.spawn.with_shell "nextcloud --background") (awful.spawn.with_shell "emacs -daemon") (awful.spawn.with_shell "libinput-gestures-setup start")