daily pastebin goal
24%
SHARE
TWEET

subtle config

a guest Oct 28th, 2011 285 Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. #
  2. # Author::  Christoph Kappel <unexist@dorfelite.net>
  3. # Version:: $Id: data/subtle.rb,v 2978 2011/08/02 11:16:25 unexist $
  4. # License:: GNU GPLv2
  5. #
  6. # = Subtle default configuration
  7. #
  8. # This file will be installed as default and can also be used as a starter for
  9. # an own custom configuration file. The system wide config usually resides in
  10. # +/etc/xdg/subtle+ and the user config in +HOME/.config/subtle+, both locations
  11. # are dependent on the locations specified by +XDG_CONFIG_DIRS+ and
  12. # +XDG_CONFIG_HOME+.
  13. #
  14.  
  15. #
  16. # == Options
  17. #
  18. # Following options change behaviour and sizes of the window manager:
  19. #
  20.  
  21. # Window move/resize steps in pixel per keypress
  22. set :step, 5
  23.  
  24. # Window screen border snapping
  25. set :snap, 10
  26.  
  27. # Default starting gravity for windows. Comment out to use gravity of
  28. # currently active client
  29. set :gravity, :center66
  30.  
  31. # Make transient windows urgent
  32. set :urgent, false
  33.  
  34. # Honor resize size hints globally
  35. set :resize, false
  36.  
  37. # Enable gravity tiling
  38. set :tiling, true
  39.  
  40. # Font string either take from e.g. xfontsel or use xft
  41. set :font, "xft:Luxi Mono-10"
  42. #set :font, "xft:sans-8"
  43.  
  44. # Separator between sublets
  45. set :separator, "|"
  46.  
  47. # Set the WM_NAME of subtle (Java quirk)
  48. # set :wmname, "LG3D"
  49.  
  50. #
  51. # == Screen
  52. #
  53. # Generally subtle comes with two panels per screen, one on the top and one at
  54. # the bottom. Each panel can be configured with different panel items and
  55. # sublets screen wise. The default config uses top panel on the first screen
  56. # only, it's up to the user to enable the bottom panel or disable either one
  57. # or both.
  58.  
  59. # === Properties
  60. #
  61. # [*stipple*]    This property adds a stipple pattern to both screen panels.
  62. #
  63. #                Example: stipple "~/stipple.xbm"
  64. #                         stipple Subtlext::Icon.new("~/stipple.xbm")
  65. #
  66. # [*top*]        This property adds a top panel to the screen.
  67. #
  68. #                Example: top [ :views, :title ]
  69. #
  70. # [*bottom*]     This property adds a bottom panel to the screen.
  71. #
  72. #                Example: bottom [ :views, :title ]
  73.  
  74. #
  75. # Following items are available for the panels:
  76. #
  77. # [*:views*]     List of views with buttons
  78. # [*:title*]     Title of the current active window
  79. # [*:tray*]      Systray icons (Can be used only once)
  80. # [*:keychain*]  Display current chain (Can be used only once)
  81. # [*:sublets*]   Catch-all for installed sublets
  82. # [*:sublet*]    Name of a sublet for direct placement
  83. # [*:spacer*]    Variable spacer (free width / count of spacers)
  84. # [*:center*]    Enclose items with :center to center them on the panel
  85. # [*:separator*] Insert separator
  86. #
  87. # Empty panels are hidden.
  88. #
  89. # === Links
  90. #
  91. # http://subforge.org/projects/subtle/wiki/Multihead
  92. # http://subforge.org/projects/subtle/wiki/Panel
  93. #
  94.  
  95. screen 1 do
  96.   top    [ :views,  :spacer, :keychain, :spacer, :cpu, :memory, :pacman, :weather_mod, :clock ]
  97.   bottom [ :mpd, :spacer, :title, :tray ]
  98. end
  99.  
  100. # Example for a second screen:
  101. #screen 2 do
  102. #  top    [ :views, :title, :spacer ]
  103. #  bottom [ ]
  104. #end
  105.  
  106. #
  107. # == Styles
  108. #
  109. # Styles define various properties of styleable items in a CSS-like syntax.
  110. #
  111. # If no background color is given no color will be set. This will ensure a
  112. # custom background pixmap won't be overwritten.
  113. #
  114. # === Link
  115. #
  116. # http://subforge.org/projects/subtle/wiki/Styles
  117.  
  118. # Style for all style elements
  119. style :all do
  120.   background  "#252525"
  121.   foreground  "#707070"
  122.   border      "#707070", 0
  123.   padding     5
  124.   padding_top 0
  125. end
  126.  
  127. # Style for the views
  128. style :views do
  129.  
  130.   foreground "#E5CB85"
  131.   padding_right 12
  132.   padding_left  12
  133.  
  134.   # Style for the active views
  135.   style :focus do
  136.     foreground  "#252525"
  137.     background  "#E5CB85"
  138.     border_top  "#E5CB85", 3
  139.   end
  140.  
  141.   # Style for urgent window titles and views
  142.   style :urgent do
  143.     border_top  "#AF7561", 3
  144.   end
  145.  
  146.   # Style for occupied views (views with clients)
  147.   style :occupied do
  148.     border_top  "#E5CB85", 3
  149.   end
  150.  
  151.   # Style for unoccupied views (views without clients)
  152.   style :unoccupied do
  153.     border_top  "#252525", 3
  154.   end
  155. end
  156.  
  157. # Style for sublets
  158. style :sublets do
  159.   foreground  "#707070"
  160.   icon        "#E5CB85"
  161. end
  162.  
  163. # Style for separator
  164. style :separator do
  165.   foreground  "#707070"
  166. end
  167.  
  168. # Style for focus window title
  169. style :title do
  170.   foreground  "#DDDDDD"
  171. end
  172.  
  173. # Style for active/inactive windows
  174. style :clients do
  175.   active      "#E5CB85", 2
  176.   inactive    "#252525", 2
  177.   margin      5
  178.   width       50
  179. end
  180.  
  181. # Style for subtle
  182. style :subtle do
  183.   margin      0, 0, 0, 0
  184.   panel       "#252525"
  185.   background  "#252525"
  186.   stipple     "#757575"
  187. end
  188.  
  189. #
  190. # == Gravities
  191. #
  192. # Gravities are predefined sizes a window can be set to. There are several ways
  193. # to set a certain gravity, most convenient is to define a gravity via a tag or
  194. # change them during runtime via grab. Subtler and subtlext can also modify
  195. # gravities.
  196. #
  197. # A gravity consists of four values which are a percentage value of the screen
  198. # size. The first two values are x and y starting at the center of the screen
  199. # and he last two values are the width and height.
  200. #
  201. # === Example
  202. #
  203. # Following defines a gravity for a window with 100% width and height:
  204. #
  205. #   gravity :example, [ 0, 0, 100, 100 ]
  206. #
  207. # === Link
  208. #
  209. # http://subforge.org/projects/subtle/wiki/Gravity
  210. #
  211.  
  212. # Top left
  213. gravity :top_left,       [   0,   0,  50,  50 ]
  214. gravity :top_left66,     [   0,   0,  50,  66 ]
  215. gravity :top_left33,     [   0,   0,  50,  34 ]
  216.  
  217. # Top
  218. gravity :top,            [   0,   0, 100,  50 ]
  219. gravity :top66,          [   0,   0, 100,  66 ]
  220. gravity :top33,          [   0,   0, 100,  34 ]
  221.  
  222. # Top right
  223. gravity :top_right,      [  50,   0,  50,  50 ]
  224. gravity :top_right66,    [  50,   0,  50,  66 ]
  225. gravity :top_right33,    [  50,   0,  50,  33 ]
  226.  
  227. # Left
  228. gravity :left,           [   0,   0,  50, 100 ]
  229. gravity :left66,         [   0,   0,  66, 100 ]
  230. gravity :left33,         [   0,   0,  33, 100 ]
  231.  
  232. # Center
  233. gravity :center,         [   0,   0, 100, 100 ]
  234. gravity :center66,       [  17,  17,  66,  66 ]
  235. gravity :center33,       [  33,  33,  33,  33 ]
  236.  
  237. # Right
  238. gravity :right,          [  50,   0,  50, 100 ]
  239. gravity :right66,        [  34,   0,  66, 100 ]
  240. gravity :right33,        [  67,   0,  33, 100 ]
  241.  
  242. # Bottom left
  243. gravity :bottom_left,    [   0,  50,  50,  50 ]
  244. gravity :bottom_left66,  [   0,  34,  50,  66 ]
  245. gravity :bottom_left33,  [   0,  67,  50,  33 ]
  246.  
  247. # Bottom
  248. gravity :bottom,         [   0,  50, 100,  50 ]
  249. gravity :bottom66,       [   0,  34, 100,  66 ]
  250. gravity :bottom33,       [   0,  67, 100,  33 ]
  251.  
  252. # Bottom right
  253. gravity :bottom_right,   [  50,  50,  50,  50 ]
  254. gravity :bottom_right66, [  50,  34,  50,  66 ]
  255. gravity :bottom_right33, [  50,  67,  50,  33 ]
  256.  
  257. # Gimp
  258. gravity :gimp_image,     [  15,   0,  70, 100 ]
  259. gravity :gimp_toolbox,   [   0,   0,  15, 100 ]
  260. gravity :gimp_dock,      [  85,   0,  15, 100 ]
  261.  
  262. #
  263. # == Grabs
  264. #
  265. # Grabs are keyboard and mouse actions within subtle, every grab can be
  266. # assigned either to a key and/or to a mouse button combination. A grab
  267. # consists of a chain and an action.
  268. #
  269. # === Finding keys
  270. #
  271. # The best resource for getting the correct key names is
  272. # */usr/include/X11/keysymdef.h*, but to make life easier here are some hints
  273. # about it:
  274. #
  275. # * Numbers and letters keep their names, so *a* is *a* and *0* is *0*
  276. # * Keypad keys need *KP_* as prefix, so *KP_1* is *1* on the keypad
  277. # * Strip the *XK_* from the key names if looked up in
  278. #   /usr/include/X11/keysymdef.h
  279. # * Keys usually have meaningful english names
  280. # * Modifier keys have special meaning (Alt (A), Control (C), Meta (M),
  281. #   Shift (S), Super (W))
  282. #
  283. # === Chaining
  284. #
  285. # Chains are a combination of keys and modifiers to one or a list of keys
  286. # and can be used in various ways to trigger an action. In subtle, there are
  287. # two ways to define chains for grabs:
  288. #
  289. #   1. *Default*: Add modifiers to a key and use it for a grab
  290. #
  291. #      *Example*: grab "W-Return", "urxvt"
  292. #
  293. #   2. *Chain*: Define a list of grabs that need to be pressed in order
  294. #
  295. #      *Example*: grab "C-y Return", "urxvt"
  296. #
  297. # ==== Mouse buttons
  298. #
  299. # [*B1*] = Button1 (Left mouse button)
  300. # [*B2*] = Button2 (Middle mouse button)
  301. # [*B3*] = Button3 (Right mouse button)
  302. # [*B4*] = Button4 (Mouse wheel up)
  303. # [*B5*] = Button5 (Mouse wheel down)
  304. #
  305. # ==== Modifiers
  306. #
  307. # [*A*] = Alt key
  308. # [*C*] = Control key
  309. # [*M*] = Meta key
  310. # [*S*] = Shift key
  311. # [*W*] = Super (Windows) key
  312. #
  313. # === Action
  314. #
  315. # An action is something that happens when a grab is activated, this can be one
  316. # of the following:
  317. #
  318. # [*symbol*] Run a subtle action
  319. # [*string*] Start a certain program
  320. # [*array*]  Cycle through gravities
  321. # [*lambda*] Run a Ruby proc
  322. #
  323. # === Example
  324. #
  325. # This will create a grab that starts a urxvt when Alt+Enter are pressed:
  326. #
  327. #   grab "A-Return", "urxvt"
  328. #   grab "C-a c",    "urxvt"
  329. #
  330. # === Link
  331. #
  332. # http://subforge.org/projects/subtle/wiki/Grabs
  333. #
  334.  
  335. # Jump to view1, view2, ...
  336. grab "W-S-1", :ViewJump1
  337. grab "W-S-2", :ViewJump2
  338. grab "W-S-3", :ViewJump3
  339. grab "W-S-4", :ViewJump4
  340.  
  341. # Switch current view
  342. grab "W-1", :ViewSwitch1
  343. grab "W-2", :ViewSwitch2
  344. grab "W-3", :ViewSwitch3
  345. grab "W-4", :ViewSwitch4
  346. grab "W-5", :ViewSwitch5
  347. grab "W-6", :ViewSwitch6
  348.  
  349. # Select next and prev view */
  350. grab "KP_Add",      :ViewNext
  351. grab "KP_Subtract", :ViewPrev
  352.  
  353. # Move mouse to screen1, screen2, ...
  354. grab "W-A-1", :ScreenJump1
  355. grab "W-A-2", :ScreenJump2
  356. grab "W-A-3", :ScreenJump3
  357. grab "W-A-4", :ScreenJump4
  358.  
  359. # Force reload of config and sublets
  360. grab "C-A-r", :SubtleReload
  361.  
  362. # Force restart of subtle
  363. grab "W-C-S-r", :SubtleRestart
  364.  
  365. # Quit subtle
  366. grab "W-C-q", :SubtleQuit
  367.  
  368. # Move current window
  369. grab "W-B1", :WindowMove
  370.  
  371. # Resize current window
  372. grab "W-B3", :WindowResize
  373.  
  374. # Toggle floating mode of window
  375. grab "W-f", :WindowFloat
  376.  
  377. # Toggle fullscreen mode of window
  378. grab "W-space", :WindowFull
  379.  
  380. # Toggle sticky mode of window (will be visible on all views)
  381. grab "W-s", :WindowStick
  382.  
  383. # Toggle zaphod mode of window (will span across all screens)
  384. grab "W-equal", :WindowZaphod
  385.  
  386. # Raise window
  387. grab "W-r", :WindowRaise
  388.  
  389. # Lower window
  390. grab "W-l", :WindowLower
  391.  
  392. # Select next windows
  393. grab "W-Left",  :WindowLeft
  394. grab "W-Down",  :WindowDown
  395. grab "W-Up",    :WindowUp
  396. grab "W-Right", :WindowRight
  397.  
  398. # Kill current window
  399. grab "W-q", :WindowKill
  400.  
  401. # Cycle between given gravities
  402. grab "KP_7", [ :top_left,     :top_left66,     :top_left33     ]
  403. grab "KP_8", [ :top,          :top66,          :top33          ]
  404. grab "KP_9", [ :top_right,    :top_right66,    :top_right33    ]
  405. grab "KP_4", [ :left,         :left66,         :left33         ]
  406. grab "KP_5", [ :center,       :center66,       :center33       ]
  407. grab "KP_6", [ :right,        :right66,        :right33        ]
  408. grab "KP_1", [ :bottom_left,  :bottom_left66,  :bottom_left33  ]
  409. grab "KP_2", [ :bottom,       :bottom66,       :bottom33       ]
  410. grab "KP_3", [ :bottom_right, :bottom_right66, :bottom_right33 ]
  411.  
  412.  
  413. # In case no numpad is available e.g. on notebooks
  414. #grab "W-q", [ :top_left,     :top_left66,     :top_left33     ]
  415. #grab "W-w", [ :top,          :top66,          :top33          ]
  416. #grab "W-e", [ :top_right,    :top_right66,    :top_right33    ]
  417. #grab "W-a", [ :left,         :left66,         :left33         ]
  418. #grab "W-s", [ :center,       :center66,       :center33       ]
  419. #grab "W-d", [ :right,        :right66,        :right33        ]
  420. #
  421. # QUERTZ
  422. #grab "W-y", [ :bottom_left,  :bottom_left66,  :bottom_left33  ]
  423. #
  424. # QWERTY
  425. #grab "W-z", [ :bottom_left,  :bottom_left66,  :bottom_left33  ]
  426. #
  427. #grab "W-x", [ :bottom,       :bottom66,       :bottom33       ]
  428. #grab "W-c", [ :bottom_right, :bottom_right66, :bottom_right33 ]
  429.  
  430. # Exec programs
  431. grab "W-t", "urxvt"
  432. grab "W-u", "uzbl-browser"
  433. grab "W-Return", "dmenu_run"
  434.  
  435. grab "W-b", "urxvt -name bashmount -geometry 53x24 -e bashmount"
  436.  
  437. grab "W-i", "urxvt -name ncmpcpp -e ncmpcpp"
  438.  
  439. grab "W-w", "urxvt -name weechat -e weechat-curses"
  440. grab "W-m", "urxvt -name mutt -e mutt"
  441. grab "W-n", "urxvt -name newsbeuter -e newsbeuter"
  442. grab "W-j", "urxvt -name jabber -e mcabber"
  443.  
  444. # Run Ruby lambdas
  445. grab "S-F2" do |c|
  446.   puts c.name
  447. end
  448.  
  449. grab "S-F3" do
  450.   puts Subtlext::VERSION
  451. end
  452.  
  453.  
  454. grab "A-Tab" do
  455.   clients = Subtlext::Client.visible
  456.   clients.last.instance_eval do
  457.     focus
  458.     raise
  459.   end
  460. end
  461.  
  462. grab "W-A-t" do
  463.   if((c = Subtlext::Client["scratch"]))
  464.     c.toggle_stick
  465.     c.focus
  466.   elsif((c = Subtlext::Subtle.spawn("urxvt -name scratch")))
  467.     c.tags  = []
  468.     c.flags = [ :stick ]
  469.   end
  470. end
  471.  
  472. #
  473. # == Tags
  474. #
  475. # Tags are generally used in subtle for placement of windows. This placement is
  476. # strict, that means that - aside from other tiling window managers - windows
  477. # must have a matching tag to be on a certain view. This also includes that
  478. # windows that are started on a certain view will not automatically be placed
  479. # there.
  480. #
  481. # There are to ways to define a tag:
  482. #
  483. # === Simple
  484. #
  485. # The simple way just needs a name and a regular expression to just handle the
  486. # placement:
  487. #
  488. # Example:
  489. #
  490. #  tag "terms", "terms"
  491. #
  492. # === Extended
  493. #
  494. # Additionally tags can do a lot more then just control the placement - they
  495. # also have properties than can define and control some aspects of a window
  496. # like the default gravity or the default screen per view.
  497. #
  498. # Example:
  499. #
  500. #  tag "terms" do
  501. #    match   "xterm|[u]?rxvt"
  502. #    gravity :center
  503. #  end
  504. #
  505. # === Default
  506. #
  507. # Whenever a window has no tag it will get the default tag and be placed on the
  508. # default view. The default view can either be set by the user with adding the
  509. # default tag to a view by choice or otherwise the first defined view will be
  510. # chosen automatically.
  511. #
  512. # === Properties
  513. #
  514. # [*borderless*] This property enables the borderless mode for tagged clients.
  515. #
  516. #                Example: borderless true
  517. #                Links:    http://subforge.org/projects/subtle/wiki/Tagging#Borderless
  518. #                          http://subforge.org/projects/subtle/wiki/Clients#Borderless
  519. #
  520. # [*fixed*]      This property enables the fixed mode for tagged clients.
  521. #
  522. #                Example: fixed true
  523. #                Links:   http://subforge.org/projects/subtle/wiki/Tagging#Fixed
  524. #                         http://subforge.org/projects/subtle/wiki/Clients#Fixed
  525. #
  526. # [*float*]      This property enables the float mode for tagged clients.
  527. #
  528. #                Example: float true
  529. #                Links:   http://subforge.org/projects/subtle/wiki/Tagging#Float
  530. #                         http://subforge.org/projects/subtle/wiki/Clients#Float
  531. #
  532. # [*full*]       This property enables the fullscreen mode for tagged clients.
  533. #
  534. #                Example: full true
  535. #                Links:   http://subforge.org/projects/subtle/wiki/Tagging#Fullscreen
  536. #                         http://subforge.org/projects/subtle/wiki/Clients#Fullscreen
  537. #
  538. # [*geometry*]   This property sets a certain geometry as well as floating mode
  539. #                to the tagged client, but only on views that have this tag too.
  540. #                It expects an array with x, y, width and height values whereas
  541. #                width and height must be >0.
  542. #
  543. #                Example: geometry [100, 100, 50, 50]
  544. #                Link:    http://subforge.org/projects/subtle/wiki/Tagging#Geometry
  545. #
  546. # [*gravity*]    This property sets a certain to gravity to the tagged client,
  547. #                but only on views that have this tag too.
  548. #
  549. #                Example: gravity :center
  550. #                Link:    http://subforge.org/projects/subtle/wiki/Tagging#Gravity
  551. #
  552. # [*match*]      This property adds matching patterns to a tag, a tag can have
  553. #                more than one. Matching works either via plaintext, regex
  554. #                (see man regex(7)) or window id. Per default tags will only
  555. #                match the WM_NAME and the WM_CLASS portion of a client, this
  556. #                can be changed with following possible values:
  557. #
  558. #                [*:name*]      Match the WM_NAME
  559. #                [*:instance*]  Match the first (instance) part from WM_CLASS
  560. #                [*:class*]     Match the second (class) part from WM_CLASS
  561. #                [*:role*]      Match the window role
  562. #                [*:type*]      Match the window type
  563. #
  564. #                Examples: match instance: "urxvt"
  565. #                          match [:role, :class] => "test"
  566. #                          match "[xa]+term"
  567. #                Link:     http://subforge.org/projects/subtle/wiki/Tagging#Match
  568. #
  569. # [*position*]   Similar to the geometry property, this property just sets the
  570. #                x/y coordinates of the tagged client, but only on views that
  571. #                have this tag, too. It expects an array with x and y values.
  572. #
  573. #                Example: position [ 10, 10 ]
  574. #                Link:    http://subforge.org/projects/subtle/wiki/Tagging#Position
  575. #
  576. # [*resize*]     This property enables the float mode for tagged clients.
  577. #
  578. #                Example: resize true
  579. #                Links:   http://subforge.org/projects/subtle/wiki/Tagging#Resize
  580. #                         http://subforge.org/projects/subtle/wiki/Clients#Resize
  581. #
  582. # [*stick*]      This property enables the float mode for tagged clients.
  583. #
  584. #                Example: stick true
  585. #                Links:   http://subforge.org/projects/subtle/wiki/Tagging#Stick
  586. #                         http://subforge.org/projects/subtle/wiki/Clients#Stick
  587. #
  588. # [*type*]       This property sets the tagged client to be treated as a specific
  589. #                window type though as the window sets the type itself. Following
  590. #                types are possible:
  591. #
  592. #                [*:desktop*]  Treat as desktop window (_NET_WM_WINDOW_TYPE_DESKTOP)
  593. #                              Link: http://subforge.org/projects/subtle/wiki/Clients#Desktop
  594. #                [*:dock*]     Treat as dock window (_NET_WM_WINDOW_TYPE_DOCK)
  595. #                              Link: http://subforge.org/projects/subtle/wiki/Clients#Dock
  596. #                [*:toolbar*]  Treat as toolbar windows (_NET_WM_WINDOW_TYPE_TOOLBAR)
  597. #                              Link: http://subforge.org/projects/subtle/wiki/Clients#Toolbar
  598. #                [*:splash*]   Treat as splash window (_NET_WM_WINDOW_TYPE_SPLASH)
  599. #                              Link: http://subforge.org/projects/subtle/wiki/Clients#Splash
  600. #                [*:dialog*]   Treat as dialog window (_NET_WM_WINDOW_TYPE_DIALOG)
  601. #                              Link: http://subforge.org/projects/subtle/wiki/Clients#Dialog
  602. #
  603. #                Example: type :desktop
  604. #                Link:    http://subforge.org/projects/subtle/wiki/Tagging#Type
  605. #
  606. # [*urgent*]     This property enables the urgent mode for tagged clients.
  607. #
  608. #                Example: stick true
  609. #                Links:   http://subforge.org/projects/subtle/wiki/Tagging#Stick
  610. #                         http://subforge.org/projects/subtle/wiki/Clients#Urgent
  611. #
  612. # [*zaphod*]     This property enables the zaphod mode for tagged clients.
  613. #
  614. #                Example: zaphod true
  615. #                Links:   http://subforge.org/projects/subtle/wiki/Tagging#Zaphod
  616. #                         http://subforge.org/projects/subtle/wiki/Clients#Zaphod
  617. #
  618. #
  619. # === Link
  620. #
  621. # http://subforge.org/projects/subtle/wiki/Tagging
  622. #
  623.  
  624. # Simple tags
  625. tag "terms" do
  626.   match :instance => "urxvt"
  627. end
  628.  
  629. tag "browser" do
  630.   match "uzbl|opera|firefox|navigator"
  631.   gravity :right33
  632. end
  633.  
  634. tag "bashmount" do
  635.   match "bashmount"
  636.   gravity :center33
  637. end
  638.  
  639. tag "musique" do
  640.   match :instance => "ncmpcpp"
  641.   gravity :bottom_left
  642. end
  643.  
  644. tag "weechat" do
  645.   match "weechat"
  646.   gravity :right
  647. end
  648.  
  649. tag "mutt" do
  650.   match :instance => "mutt"
  651.   gravity :top_left
  652. end
  653.  
  654. tag "jabber" do
  655.   match :instance => "jabber"
  656.   gravity :bottom_left
  657. end
  658.  
  659. tag "news" do
  660.   match :instance => "newsbeuter"
  661.   gravity :left66
  662. end
  663.  
  664. # Placement
  665. tag "editor" do
  666.   match  "[g]?vim"
  667.   resize true
  668. end
  669.  
  670. tag "fixed" do
  671.   geometry [ 10, 10, 100, 100 ]
  672.   stick    true
  673. end
  674.  
  675. tag "resize" do
  676.   match  "sakura|gvim"
  677.   resize true
  678. end
  679.  
  680. tag "gravity" do
  681.   gravity :center
  682. end
  683.  
  684. # Modes
  685. tag "stick" do
  686.   match "mplayer|scratch"
  687.   float true
  688.   stick true
  689. end
  690.  
  691. tag "float" do
  692.   match "display"
  693.   float true
  694. end
  695.  
  696. # Gimp
  697. tag "gimp_image" do
  698.   match   :role => "gimp-image-window"
  699.   gravity :gimp_image
  700. end
  701.  
  702. tag "gimp_toolbox" do
  703.   match   :role => "gimp-toolbox$"
  704.   gravity :gimp_toolbox
  705. end
  706.  
  707. tag "gimp_dock" do
  708.   match   :role => "gimp-dock"
  709.   gravity :gimp_dock
  710. end
  711.  
  712. #
  713. # == Views
  714. #
  715. # Views are the virtual desktops in subtle, they show all windows that share a
  716. # tag with them. Windows that have no tag will be visible on the default view
  717. # which is the view with the default tag or the first defined view when this
  718. # tag isn't set.
  719. #
  720. # Like tags views can be defined in two ways:
  721. #
  722. # === Simple
  723. #
  724. # The simple way is exactly the same as for tags:
  725. #
  726. # Example:
  727. #
  728. #   view "terms", "terms"
  729. #
  730. # === Extended
  731. #
  732. # The extended way for views is also similar to the tags, but with fewer
  733. # properties.
  734. #
  735. # Example:
  736. #
  737. #  view "terms" do
  738. #    match "terms"
  739. #    icon  "/usr/share/icons/icon.xbm"
  740. #  end
  741. #
  742. # === Properties
  743. #
  744. # [*match*]      This property adds a matching pattern to a view. Matching
  745. #                works either via plaintext or regex (see man regex(7)) and
  746. #                applies to names of tags.
  747. #
  748. #                Example: match "terms"
  749. #
  750. # [*dynamic*]    This property hides unoccupied views, views that display no
  751. #                windows.
  752. #
  753. #                Example: dynamic true
  754. #
  755. # [*icon*]       This property adds an icon in front of the view name. The
  756. #                icon can either be path to an icon or an instance of
  757. #                Subtlext::Icon.
  758. #
  759. #                Example: icon "/usr/share/icons/icon.xbm"
  760. #                         icon Subtlext::Icon.new("/usr/share/icons/icon.xbm")
  761. #
  762. # [*icon_only*]  This property hides the view name from the view buttons, just
  763. #                the icon will be visible.
  764. #
  765. #                Example: icon_only true
  766. #
  767. #
  768. # === Link
  769. #
  770. # http://subforge.org/projects/subtle/wiki/Tagging
  771. #
  772.  
  773. view "com" do
  774.   match     "mutt|weechat|jabber"
  775.   icon      "~/.icons/subtle/balloon.xbm"
  776.   icon_only true
  777. end
  778.  
  779. view "www" do
  780.   match     "browser|news"
  781.   icon      "~/.icons/subtle/world.xbm"
  782.   icon_only true
  783. end
  784.  
  785. view "misc" do
  786.   match     "default"
  787.   icon      "~/.icons/subtle/notepad.xbm"
  788.   icon_only true
  789. end
  790.  
  791. view "terms" do
  792.   match     "terms"
  793.   icon      "~/.icons/subtle/terminal.xbm"
  794.   icon_only true
  795. end
  796.  
  797. view "media" do
  798.   match     "musique|video"
  799.   icon      "~/.icons/subtle/movie.xbm"
  800.   icon_only true
  801. end
  802. view "gimp" do
  803.   match     "gimp_.*"
  804.   icon      "~/.icons/subtle/pencil.xbm"
  805.   icon_only true
  806. end
  807.  
  808. #
  809. # == Sublets
  810. #
  811. # Sublets are Ruby scripts that provide data for the panel and can be managed
  812. # with the sur script that comes with subtle.
  813. #
  814. # === Example
  815. #
  816. #  sur install clock
  817. #  sur uninstall clock
  818. #  sur list
  819. #
  820. # === Configuration
  821. #
  822. # All sublets have a set of configuration values that can be changed directly
  823. # from the config of subtle.
  824. #
  825. # There are three default properties, that can be be changed for every sublet:
  826. #
  827. # [*interval*]    Update interval of the sublet
  828. # [*foreground*]  Default foreground color
  829. # [*background*]  Default background color
  830. #
  831. # sur can also give a brief overview about properties
  832. #
  833. # === Example
  834. #
  835. #   sur config clock
  836. #
  837. # The syntax of the sublet configuration is similar to other configuration
  838. # options in subtle:
  839. #
  840. # === Example
  841. #
  842. #  sublet :clock do
  843. #    interval      30
  844. #    foreground    "#eeeeee"
  845. #    background    "#000000"
  846. #    format_string "%H:%M:%S"
  847. #  end
  848. #
  849. #  === Link
  850. #
  851. # http://subforge.org/projects/subtle/wiki/Sublets
  852. #
  853. sublet :mpd do
  854.   interval          5
  855.   format_string     "%note% %artist% - %title% (%album%)"
  856.   not_running_text  "MPD non lancé"
  857.   stop_text         "Stoppé"
  858.   pause_text        "Pause"
  859.   pause_color       "#707070"
  860.   stop_color        "#707070"
  861.   show_colors       true
  862. end
  863.  
  864. sublet :cpu do
  865.   interval 1
  866. end
  867.  
  868. sublet :clock do
  869.   interval 20
  870.   format_string "%R"
  871. end
  872.  
  873. sublet :pacman do
  874.   interval    1000
  875.   separator   "/"
  876.   updatefile  "/home/polo/.config/subtle/pacmanupdates"
  877. end
  878.  
  879. sublet :weather_mod do
  880.   interval      1000
  881.   locale        "fr"
  882.   units         "c"
  883.   location      "Bordeaux"
  884.   sep           "/"
  885.   sep_color     "#707070"
  886.   temp_color    "#707070"
  887.   day_color     "#707070"
  888.   current_label ""
  889.   temp_suffix   "°"
  890. end
  891. #
  892. # == Hooks
  893. #
  894. # And finally hooks are a way to bind Ruby scripts to a certain event.
  895. #
  896. # Following hooks exist so far:
  897. #
  898. # [*:client_create*]    Called whenever a window is created
  899. # [*:client_configure*] Called whenever a window is configured
  900. # [*:client_focus*]     Called whenever a window gets focus
  901. # [*:client_kill*]      Called whenever a window is killed
  902. #
  903. # [*:tag_create*]       Called whenever a tag is created
  904. # [*:tag_kill*]         Called whenever a tag is killed
  905. #
  906. # [*:view_create*]      Called whenever a view is created
  907. # [*:view_configure*]   Called whenever a view is configured
  908. # [*:view_jump*]        Called whenever the view is switched
  909. # [*:view_kill*]        Called whenever a view is killed
  910. #
  911. # [*:tile*]             Called on whenever tiling would be needed
  912. # [*:reload*]           Called on reload
  913. # [*:start*]            Called on start
  914. # [*:exit*]             Called on exit
  915. #
  916. # === Example
  917. #
  918. # This hook will print the name of the window that gets the focus:
  919. #
  920. #   on :client_focus do |c|
  921. #     puts c.name
  922. #   end
  923. #
  924. # === Link
  925. #
  926. # http://subforge.org/projects/subtle/wiki/Hooks
  927. #
  928.  
  929. on :start do
  930.   Subtlext::Subtle.spawn "~/scripts/autostart.sh"
  931. end
  932.  
  933. # vim:ts=2:bs=2:sw=2:et:fdm=marker
  934.  
  935.  
RAW Paste Data
We use cookies for various purposes including analytics. By continuing to use Pastebin, you agree to our use of cookies as described in the Cookies Policy. OK, I Understand
 
Top