feat: add base fennel config
This commit is contained in:
		
							
								
								
									
										473
									
								
								cfg.orig.fnl
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										473
									
								
								cfg.orig.fnl
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,473 @@ | ||||
| (let [;; Standard awesome library | ||||
|       gears (require :gears) | ||||
|       awful (require :awful) | ||||
|       ;; Widget and layout library | ||||
|       wibox (require :wibox) | ||||
|       ;; Theme handling library | ||||
|       beautiful (require :beautiful) | ||||
|       ;; Notification library | ||||
|       naughty (require :naughty) | ||||
|       menubar (require :menubar) | ||||
|       hotkeys-popup (. (require :awful.hotkeys_popup) :widget)] | ||||
|   (require :awful.autofocus) | ||||
|   ;; Enable hotkeys help client widget for VIM and other apps | ||||
|   ;; when client with a matching name is open | ||||
|   (require :awful.hotkeys_popup.keys) | ||||
|  | ||||
|   ;; {{{ Error handling | ||||
|   ;; Check if aweseom encountered an error during startup and fell back to | ||||
|   ;; another config (This code will only ever execute for the fallback config) | ||||
|   (when awesome.startup_errors | ||||
|     (naughty.notify {:preset naughty.config.presets.critical | ||||
|                      :title "Oops, there were errors during startup!" | ||||
|                      :text awesome.startup_errors})) | ||||
|  | ||||
|   ;; Handle runtime errors after startup | ||||
|   (do | ||||
|     (var error? false) | ||||
|     (awesome.connect_signal | ||||
|      "debug::error" | ||||
|      (lambda [err] | ||||
|        (when (not error?) | ||||
|          (set error? true) | ||||
|          (naughty.notify {:preset naughty.config.presets.critical | ||||
|                           :title "Oops, an error happened!" | ||||
|                           :text (tostring err)}) | ||||
|          (set error? false))))) | ||||
|   ;; }}} | ||||
|  | ||||
|   ;;{{{ Variable definitions | ||||
|   ;; Themes define colours, icons, font, and wallpapers. | ||||
|   (beautiful.init (.. (gears.filesystem.get_themes_dir) "default/theme.lua")) | ||||
|  | ||||
|   ;; This is used later as the default terminal and editor to run. | ||||
|   (local terminal "xterm") | ||||
|   (local editor (or (os.getenv "EDITOR") | ||||
|                     "nano")) | ||||
|   (local editor-cmd (.. terminal " -e " editor)) | ||||
|  | ||||
|   ;; Default modkey. | ||||
|   ;; Usually, Mod4 is the key with a logo between Control and Alt. | ||||
|   ;; If you do not like this or do not have such a key, | ||||
|   ;; I suggest you to remap Mod4 to another key using xmodmap or other tools. | ||||
|   ;; However, you can use another modifier like Mod1, but it may interact with others. | ||||
|   (local modkey "Mod4") | ||||
|  | ||||
|   ;; Table of layouts to cover with awful.layout.inc, order matters. | ||||
|   (set awful.layout.layouts | ||||
|        [awful.layout.suit.floating | ||||
|         awful.layout.suit.tile | ||||
|         awful.layout.suit.tile.left | ||||
|         awful.layout.suit.tile.bottom | ||||
|         awful.layout.suit.tile.top | ||||
|         awful.layout.suit.fair | ||||
|         awful.layout.suit.fair.horizontal | ||||
|         awful.layout.suit.spiral | ||||
|         awful.layout.suit.spiral.dwindle | ||||
|         awful.layout.suit.max | ||||
|         awful.layout.suit.max.fullscreen | ||||
|         awful.layout.suit.magnifier | ||||
|         awful.layout.suit.corner.nw | ||||
|         ;; awful.layout.suit.corner.ne | ||||
|         ;; awful.layout.suit.corner.sw | ||||
|         ;; awful.layout.suit.corner.se | ||||
|         ]) | ||||
|   ;; }}} | ||||
|  | ||||
|   ;; {{{ Helper functions | ||||
|   (fn client-menu-toggle-fn [] | ||||
|     (var instance nil) | ||||
|     (lambda [] | ||||
|       (if (and instance (. instance :wibox :visible)) | ||||
|           (do (: instance :hide) | ||||
|               (set instance nil)) | ||||
|           (set instance (awful.menu.clients {:theme {:width 250}}))))) | ||||
|   ;; }}} | ||||
|  | ||||
|   ;; {{{ Menu | ||||
|   ;; Create a launcher widget and a main menu | ||||
|   (local myawesomemenu | ||||
|          [["hotkeys" (lambda [] (values false hotkeys-popup.show_help))] | ||||
|           ["manual" (.. terminal "-e man awesome")] | ||||
|           ["edit config" (.. editor-cmd " " awesome.conffile)] | ||||
|           ["restart" awesome.restart] | ||||
|           ["quit" (lambda [] (awesome.quit))]]) | ||||
|  | ||||
|   (local mymainmenu | ||||
|          (awful.menu {:items [["awesome" myawesomemenu beautiful.awesome_icon] | ||||
|                               ["open terminal" terminal]]})) | ||||
|  | ||||
|   (local mylauncher | ||||
|          (awful.widget.launcher {:image beautiful.awesome_icon | ||||
|                                  :menu mymainmenu})) | ||||
|  | ||||
|   ;; Menubar configuration | ||||
|   (set menubar.utils.terminal terminal) ;; Set the terminal for applications that require it | ||||
|   ;; }}} | ||||
|  | ||||
|   ;; Keyboard map indicator and switcher | ||||
|   (local mykeyboardlayout (awful.widget.keyboardlayout)) | ||||
|  | ||||
|   ;; {{{ Wibar | ||||
|   ;; Create a textclock widget | ||||
|   (local mytextclock (wibox.widget.textclock)) | ||||
|  | ||||
|   ;; Create a wibox for each screen and add it | ||||
|   (local | ||||
|    taglist-buttons | ||||
|    (gears.table.join | ||||
|     (awful.button [] 1 (lambda [t] (: t :view_only))) | ||||
|     (awful.button [modkey] 1 | ||||
|                   (lambda [t] (when client.focus (: client.focus :move_to_tag t)))) | ||||
|     (awful.button [] 3 awful.tag.viewtoggle) | ||||
|     (awful.button [modkey] 3 | ||||
|                   (lambda [t] (when client.focus (: client.focus :toggle_tag t)))) | ||||
|     (awful.button [] 4 (lambda [t] (awful.tag.viewnext t.screen))) | ||||
|     (awful.button [] 5 (lambda [t] (awful.tag.viewprev t.screen))))) | ||||
|  | ||||
|   (local | ||||
|    tasklist-buttons | ||||
|    (gears.table.join | ||||
|     (awful.button | ||||
|      [] 1 (lambda [c] (if (= c client.focus) | ||||
|                      (set c.minimized true) | ||||
|                      (do | ||||
|                        ;; Without this, the following | ||||
|                        ;; :isvisible makes no sense | ||||
|                        (set c.minimized false) | ||||
|                        (when (and (not (: c :isvisible)) | ||||
|                                   c.first_tag) | ||||
|                          (: c.first_tag :view_only) | ||||
|                          ;; This will also un-minimize | ||||
|                          ;; the client, if needed | ||||
|                          (set client.focus c) | ||||
|                          (: c :raise)))))) | ||||
|     (awful.button [] 3 (client-menu-toggle-fn)) | ||||
|     (awful.button [] 4 (lambda [] (awful.client.focus.byidx 1))) | ||||
|     (awful.button [] 5 (lambda [] (awful.client.focus.byidx -1))))) | ||||
|  | ||||
|   (fn set-wallpaper [s] | ||||
|     (when beautiful.wallpaper | ||||
|       (var wallpaper beautiful.wallpaper) | ||||
|       (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) | ||||
|  | ||||
|   (awful.screen.connect_for_each_screen | ||||
|    (lambda [s] | ||||
|      ;; Wallpaper | ||||
|      (set-wallpaper s) | ||||
|  | ||||
|      ;; Each screen has its own tag table. | ||||
|      (awful.tag ["1", "2", "3", "4", "5", "6", "7", "8", "9"] | ||||
|                 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 layout box per screen. | ||||
|      (set s.mylayoutbox (awful.widget.layoutbox s)) | ||||
|      (: s.mylayoutbox :buttons | ||||
|         (gears.table.join | ||||
|          (awful.button [] 1 (lambda [] (awful.layout.inc 1))) | ||||
|          (awful.button [] 3 (lambda [] (awful.layout.inc -1))) | ||||
|          (awful.button [] 4 (lambda [] (awful.layout.inc 1))) | ||||
|          (awful.button [] 5 (lambda [] (awful.layout.inc -1))))) | ||||
|      ;; Create a taglist widget | ||||
|      (set s.mytaglist (awful.widget.taglist s awful.widget.taglist.filter.all | ||||
|                                             taglist-buttons)) | ||||
|  | ||||
|      ;; Create a tasklist widget | ||||
|      (set s.mytasklist (awful.widget.tasklist s awful.widget.tasklist.filter.currenttags | ||||
|                                               tasklist-buttons)) | ||||
|  | ||||
|      ;; Create the wibox | ||||
|      (set s.mywibox (awful.wibar {:position "top" :screen s})) | ||||
|  | ||||
|      ;; Add widgets to the wibox | ||||
|      ;; XXX Adding numbers is required workaround for mixed named and not tables. | ||||
|      ;; Alternative is to construct table and then tset the named entry(s). | ||||
|      (: s.mywibox :setup | ||||
|         {:layout wibox.layout.align.horizontal | ||||
|          1 { ;; Left widgets | ||||
|             :layout wibox.layout.fixed.horizontal | ||||
|             1 mylauncher | ||||
|             2 s.mytaglist | ||||
|             3 s.mypromptbox} | ||||
|          2 s.mytasklist ;; Middle widget | ||||
|          3 {;;Right widgets | ||||
|             :layout wibox.layout.fixed.horizontal | ||||
|             1 mykeyboardlayout | ||||
|             2 (wibox.widget.systray) | ||||
|             3 mytextclock | ||||
|             4 s.mylayoutbox}}))) | ||||
|   ;; }}} | ||||
|  | ||||
|   ;; {{{ Mouse bindings | ||||
|   (root.buttons (gears.table.join | ||||
|                  (awful.button [] 3 (lambda [] (: mymainmenu :toggle))) | ||||
|                  (awful.button [] 4 awful.tag.viewnext) | ||||
|                  (awful.button [] 5 awful.tag.viewprev))) | ||||
|   ;;}}} | ||||
|  | ||||
|   ;; {{{ Key bindings | ||||
|   (var | ||||
|    globalkeys | ||||
|    (gears.table.join | ||||
|     (awful.key [modkey] :s hotkeys-popup.show_help | ||||
|                {:description "show help" :group "awesome"}) | ||||
|     (awful.key [modkey] :Left awful.tag.viewprev | ||||
|                {:description "view previous" :group "tag"}) | ||||
|     (awful.key [modkey] :Right awful.tag.viewnext | ||||
|                {:description "view next" :group "tag"}) | ||||
|     (awful.key [modkey] :Escape awful.tag.history.restore | ||||
|                {:description "go back" :group "tag"}) | ||||
|  | ||||
|     (awful.key [modkey] :j (lambda [] (awful.client.focus.byidx 1)) | ||||
|                {:description "focus next by index" :group "client"}) | ||||
|     (awful.key [modkey] :k (lambda [] (awful.client.focus.byidx -1)) | ||||
|                {:description "focus previous by index" :group "client"}) | ||||
|     (awful.key [modkey] :w (lambda [] (: mymainmenu :show)) | ||||
|                {:description "show main menu" :group "awesome"}) | ||||
|  | ||||
|     ;; Layout manipulation | ||||
|     (awful.key [modkey :Shift] :j (lambda [] (awful.client.swap.byidx 1)) | ||||
|                {:description "swap with next client by index", :group "client"}) | ||||
|     (awful.key [modkey :Shift] :k (lambda [] (awful.client.swap.byidx -1)) | ||||
|                {:description "swap with previous client by index", :group "client"}) | ||||
|     (awful.key [modkey :Control] :j (lambda [] (awful.screen.focus_relative 1)) | ||||
|                {:description "focus the next screen", :group "screen"}) | ||||
|     (awful.key [modkey :Control] :k (lambda [] (awful.screen.focus_relative -1)) | ||||
|                {:description "focus the previous screen", :group "screen"}) | ||||
|     (awful.key [modkey] :u awful.client.urgent.jumpto | ||||
|                {:description "jump to urgent client" :group "client"}) | ||||
|     (awful.key [modkey] :Tab (lambda [] | ||||
|                                (awful.client.focus.history.previous) | ||||
|                                (when client.focus (: client.focus :raise))) | ||||
|                {:description "go back" :group "client"}) | ||||
|  | ||||
|     ;; Standard program | ||||
|     (awful.key [modkey] :Return (lambda [] (awful.spawn terminal)) | ||||
|                {:description "open a terminal" :group "launcher"}) | ||||
|     (awful.key [modkey :Control] :r awesome.restart | ||||
|                {:description "reload awesome" :group "awesome"}) | ||||
|     (awful.key [modkey :Shift] :q awesome.quit | ||||
|                {:description "quit awesome" :group "awesome"}) | ||||
|  | ||||
|     (awful.key [modkey] :l (lambda [] (awful.tag.incmwfact 0.05)) | ||||
|                {:description "increase master width factor" :group "layout"}) | ||||
|     (awful.key [modkey] :h (lambda [] (awful.tag.incmwfact -0.05)) | ||||
|                {:description "decrease master width factor" :group "layout"}) | ||||
|     (awful.key [modkey :Shift] :h (lambda [] (awful.tag.incnmaster 1 nil true)) | ||||
|                {:description "increase the number of master clients" :group "layout"}) | ||||
|     (awful.key [modkey :Shift] :l (lambda [] (awful.tag.incnmaster -1 nil true)) | ||||
|                {:description "decrease the number of master clients" :group "layout"}) | ||||
|     (awful.key [modkey :Control] :h (lambda [] (awful.tag.incncol 1 nil true)) | ||||
|                {:description "increase the number of columns" :group "layout"}) | ||||
|     (awful.key [modkey :Control] :l (lambda [] (awful.tag.incncol -1 nil true)) | ||||
|                {:description "decrease the number of columns" :group "layout"}) | ||||
|     (awful.key [modkey] :space (lambda [] (awful.layout.inc 1)) | ||||
|                {:description "select next" :group "layout"}) | ||||
|     (awful.key [modkey :Shift] :space (lambda [] (awful.layout.inc -1)) | ||||
|                {:description "select previous" :group "layout"}) | ||||
|  | ||||
|     (awful.key [modkey :Control] :n | ||||
|                (lambda [] (let [c (awful.client.restore)] | ||||
|                        ;; Focus restored client | ||||
|                        (when c | ||||
|                          (set client.focus c) | ||||
|                          (: c :raise)))) | ||||
|                {:description "restore minimized" :group "client"}) | ||||
|  | ||||
|     ;; Prompt | ||||
|     (awful.key [modkey] :r (lambda [] (: (. (awful.screen.focused) :mypromptbox) :run)) | ||||
|                {:description "run prompt" :group "launcher"}) | ||||
|  | ||||
|     (awful.key [modkey] :x | ||||
|                (lambda [] (awful.prompt.run | ||||
|                       {:prompt "Run Lua code: " | ||||
|                        :textbox  (. (awful.screen.focused) :mypromptbox :widget) | ||||
|                        :exe_callback awful.util.eval | ||||
|                        :history_path (.. (awful.util.get_cache_dir) "/history_eval")})) | ||||
|                {:description "lua execute prompt" :group "awesome"}) | ||||
|     ;; Menubar | ||||
|     (awful.key [modkey] :p (lambda [] (menubar.show)) | ||||
|                {:description "show the menubar" :group "launcher"}))) | ||||
|  | ||||
|   (local | ||||
|    clientkeys | ||||
|    (gears.table.join | ||||
|     (awful.key [modkey] :f (lambda [c] (set c.fullscreen (not c.fullscreen)) (: c :raise)) | ||||
|                {:description "toggle fullscreen" :group "client"}) | ||||
|     (awful.key [modkey :Shift] :c (lambda [c] (: c :kill)) | ||||
|                {:description "close" :group "client"}) | ||||
|     (awful.key [modkey :Control] :space awful.client.floating.toggle | ||||
|                {:description "toggle floating" :group "client"}) | ||||
|     (awful.key [modkey :Control] :Return (lambda [c] (: c :swap (awful.client.getmaster))) | ||||
|                {:description "move to master" :group "client"}) | ||||
|     (awful.key [modkey] :o (lambda [c] (: c :move_to_screen)) | ||||
|                {:description "move to screen" :group "client"}) | ||||
|     (awful.key [modkey] :t (lambda [c] (set c.ontop (not c.ontop))) | ||||
|                {:description "toggle keep on top" :group "client"}) | ||||
|     (awful.key [modkey] :n (lambda [c] (set c.minimized true)) | ||||
|                ;; The client currently has the input focus, so it cannot be | ||||
|                ;; minimized, since minimized clients can't have the focus | ||||
|                {:description "minimize" :group "client"}) | ||||
|     (awful.key [modkey] :m (lambda [c] (set c.maximized (not c.maximized)) (: c :raise)) | ||||
|                {:description "(un)maximize" :group "client"}) | ||||
|     (awful.key [modkey :Control] :m | ||||
|                (lambda [c] | ||||
|                  (set c.maximized_vertical (not c.maximized_vertical)) | ||||
|                  (: c :raise)) | ||||
|                {:description "(un)maximize vertically" :group "client"}) | ||||
|     (awful.key [modkey :Shift] :m | ||||
|                (lambda [c] | ||||
|                  (set c.maximized_horizontal (not c.maximized_horizontal)) | ||||
|                  (: c :raise)) | ||||
|                {:description "(un)maximize horizontally" :group "client"}))) | ||||
|  | ||||
|   ;; Bind all keys numbers to tags. | ||||
|   ;; Be careful: we use keycodes to make it work on any keyboard layout. | ||||
|   ;; This should ma on the top row of your keyboard, usually 1 to 9. | ||||
|   (for [i 1 9] | ||||
|     (set | ||||
|      globalkeys | ||||
|      (gears.table.join | ||||
|       globalkeys | ||||
|       ;; View tag only. | ||||
|       (awful.key [modkey] (.. "#" (+ i 9)) | ||||
|                  (lambda [] (let [screen (awful.screen.focused) | ||||
|                              tag (. screen.tags i)] | ||||
|                          (when tag | ||||
|                            (: tag :view_only)))) | ||||
|                  {:description (.. "view tag #" i) :group "tag"}) | ||||
|       ;; Toggle tag display. | ||||
|       (awful.key [modkey :Control] (.. "#" (+ i 9)) | ||||
|                  (lambda [] (let [screen (awful.screen.focused) | ||||
|                              tag (. screen.tags i)] | ||||
|                          (when tag | ||||
|                            (awful.tag.viewtoggle tag)))) | ||||
|                  {:description (.. "toggle tag #" i) :group "tag"}) | ||||
|       ;; Move client to tag. | ||||
|       (awful.key [modkey :Shift] (.. "#" (+ i 9)) | ||||
|                  (lambda [] (when client.focus | ||||
|                          (let [tag (. client.focus.screen.tags i)] | ||||
|                            (when tag | ||||
|                              (: client.focus :move_to_tag tag))))) | ||||
|                  {:description (.. "move focused client to tag #" i) :group "tag"}) | ||||
|       ;; Toggle tag on focused client. | ||||
|       (awful.key [modkey :Control :Shift] (.. "#" (+ i 9)) | ||||
|                  (lambda [] (when client.focus | ||||
|                          (let [tag (. client.focus.screen.tags i)] | ||||
|                            (when tag | ||||
|                              (: client.focus :toggle_tag tag))))) | ||||
|                  {:description (.. "toggle focused client on tag #" i) :group "tag"})))) | ||||
|  | ||||
|   (local | ||||
|    clientbuttons | ||||
|    (gears.table.join | ||||
|     (awful.button [] 1 (lambda [c] (set client.focus c) (: c :raise))) | ||||
|     (awful.button [modkey] 1 awful.mouse.client.move) | ||||
|     (awful.button [modkey] 3 awful.mouse.client.resize))) | ||||
|  | ||||
|   ;; Set keys | ||||
|   (root.keys globalkeys) | ||||
|   ;;}}} | ||||
|  | ||||
|   ;; {{{ Rules | ||||
|   ;; Rules apply to new clients (through the "manage" signal). | ||||
|   (set awful.rules.rules | ||||
|        [ ;; All clients will match this rule. | ||||
|         {:rule {} | ||||
|          :properties {:border_width beautiful.border_width | ||||
|                       :border_color beautiful.border_normal | ||||
|                       :focus awful.client.focus.filter | ||||
|                       :raise true | ||||
|                       :keys clientkeys | ||||
|                       :buttons clientbuttons | ||||
|                       :screen awful.screen.preferred | ||||
|                       :placement (+ awful.placement.no_overlap | ||||
|                                     awful.placement.no_offscreen)}} | ||||
|  | ||||
|         ;; Floating clients. | ||||
|         {:rule_any {:instance ["DTA" ;; Firefox addon DownThemAll. | ||||
|                                "copyq"] ;; Includes session name in class. | ||||
|                     :class ["Arandr" | ||||
|                             "Gpick" | ||||
|                             "Kruler" | ||||
|                             "MessageWin" ;; kalarm. | ||||
|                             "Sxiv" | ||||
|                             "Wpa_gui" | ||||
|                             "pinentry" | ||||
|                             "veromix" | ||||
|                             "xtightvncviewer"] | ||||
|                     :name ["Event Tester"] ;; xev | ||||
|                     :role ["AlarmWindow"   ;; Thunderbird's calendar | ||||
|                            "pop-up"]}      ;; e.g. Google Chrome's (detatched) Developer Tools. | ||||
|          :properties {:floating true}} | ||||
|  | ||||
|         ;; Add titlebars to normal clients and dialogs. | ||||
|         {:rule_any {:type ["normal" "dialog"]} | ||||
|          :properties {:titlebars_enabled true}} | ||||
|  | ||||
|         ;; Set Firefox to always map on the tag named "2" on screen 1. | ||||
|         ;; {:rule {:class "Firefox"} | ||||
|         ;;  :properties {:screen 1 :tag "2"}} | ||||
|         ]) | ||||
|   ;; }}} | ||||
|  | ||||
|   ;; {{{ Signals | ||||
|   ;; Signal function to execute when a new client appears. | ||||
|   (client.connect_signal "manage" | ||||
|                          (lambda [c] (when (and awesome.startup | ||||
|                                            (not c.size_hints.user_position) | ||||
|                                            (not c.size_hints.program_position)) | ||||
|                                   ;; Prevent clients from being unreachable after screen count changes. | ||||
|                                   (awful.placement.no_offscreen c)))) | ||||
|  | ||||
|   ;; Add a titlebar if titlebars_enabled is set to true in the rules. | ||||
|   (client.connect_signal | ||||
|    "request::titlebars" | ||||
|    (lambda [c] (let [buttons (gears.table.join | ||||
|                          (awful.button [] 1 (lambda [] | ||||
|                                               (set client.focus c) | ||||
|                                               (: c :raise) | ||||
|                                               (awful.mouse.client.move c))) | ||||
|                          (awful.button [] 3 (lambda [] | ||||
|                                               (set client.focus c) | ||||
|                                               (: c :raise) | ||||
|                                               (awful.mouse.client.resize c))))] | ||||
|             (: (awful.titlebar c) :setup | ||||
|                { ;; Left | ||||
|                 1 {1 (awful.titlebar.widget.iconwidget c) | ||||
|                    :buttons buttons | ||||
|                    :layout wibox.layout.fixed.horizontal} | ||||
|                 ;; Middle | ||||
|                 2 {1 {:align "center" ;; Title | ||||
|                       :widget (awful.titlebar.widget.titlewidget c)} | ||||
|                    :buttons buttons | ||||
|                    :layout wibox.layout.flex.horizontal} | ||||
|                 ;; Right | ||||
|                 3 {1 (awful.titlebar.widget.floatingbutton c) | ||||
|                    2 (awful.titlebar.widget.maximizedbutton c) | ||||
|                    3 (awful.titlebar.widget.stickybutton c) | ||||
|                    4 (awful.titlebar.widget.ontopbutton c) | ||||
|                    5 (awful.titlebar.widget.closebutton c) | ||||
|                    :layout (wibox.layout.fixed.horizontal)} | ||||
|                 :layout wibox.layout.align.horizontal})))) | ||||
|  | ||||
|   ;; Enable sloppy focus, so that the focus follows mouse. | ||||
|   (client.connect_signal "mouse::enter" | ||||
|                          (lambda [c] (when (and (~= (awful.layout.get c.screen) | ||||
|                                                awful.layout.suit.magnifier) | ||||
|                                            (awful.client.focus.filter c)) | ||||
|                                   (set client.focus c)))) | ||||
|  | ||||
|   (client.connect_signal "focus" | ||||
|                          (lambda [c] (set c.border_color beautiful.border_focus))) | ||||
|   (client.connect_signal "unfocus" | ||||
|                          (lambda [c] (set c.border_color beautiful.border_normal)))) | ||||
|   ;; }}} | ||||
		Reference in New Issue
	
	Block a user