Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- # Window move/resize steps in pixel per keypress
- set :step, 5
- # Window screen border snapping
- set :snap, 10
- # Default starting gravity for windows. Comment out to use gravity of
- # currently active client
- set :gravity, :center
- # Make transient windows urgent
- set :urgent, false
- # Honor resize size hints globally
- set :resize, false
- # Enable gravity tiling
- set :tiling, false
- # Font string either take from e.g. xfontsel or use xft
- set :font, "xft:sans-8:antialias=true"
- # Separator between sublets
- set :separator, "·"
- # Set the WM_NAME of subtle (Java quirk)
- set :wmname, "LG3D"
- #icon = Subtlext::Icon.new("#{ENV["HOME"]}/images/xbm8x8/arch_10x10.xbm")
- screen 1 do
- # Content of the top panel
- top [ icon, :views, :layout, :mpd, :center, :title, :center, :spacer, :tray, :volume, :separator,:sublets ]
- # Content of the bottom panel
- bottom [ ]
- end
- #screen 2 do
- # Add stipple to panels
- # stipple false
- # Content of the top panel
- # top [ :views, :layout, :center, :title ]
- # Content of the bottom panel
- # bottom [ ]
- #end
- sublet :clock2 do
- interval 60
- time_color "#cdff00"
- date_color "#cdff00"
- date_format "%d/%m"
- time_format "%H:%M"
- end
- sublet :notify do
- interval 60
- font "xft:sans-8:antialias=true"
- highlight "#ff3b77"
- end
- style :all do
- padding 0, 2
- margin 0
- border "#202020", 0
- foreground "#757575"
- background "#202020"
- end
- # Style for focus window title
- style :title do
- foreground "#cdff00"
- end
- # Style for the active views
- style :focus do
- foreground "#cdff00"
- end
- # Style for urgent window titles and views
- style :urgent do
- foreground "#ff3b77"
- end
- style :views do
- foreground "#757575"
- background "#202020"
- end
- # Style for occupied views (views with clients)
- style :occupied do
- foreground "#ff3b77"
- end
- # Style for unoccupied views (views without clients)
- #style :unoccupied do
- #end
- # Style for sublets
- #style :sublets do
- #end
- # Style for separator
- #style :separator do
- #end
- # Style for active/inactive windows
- style :clients do
- active "#303030", 0
- inactive "#202020", 0
- margin 0
- width 50
- end
- # Style for subtle
- style :subtle do
- margin 0
- panel "#202020"
- #background "#3d3d3d"
- stipple "#757575"
- end
- # Top left
- gravity :top_left, [ 0, 0, 50, 50 ]
- gravity :top_left66, [ 0, 0, 50, 66 ]
- gravity :top_left33, [ 0, 0, 50, 34 ]
- # Top
- gravity :top, [ 0, 0, 100, 50 ]
- gravity :top66, [ 0, 0, 100, 66 ]
- gravity :top33, [ 0, 0, 100, 34 ]
- # Top right
- gravity :top_right, [ 50, 0, 50, 50 ]
- gravity :top_right66, [ 50, 0, 50, 66 ]
- gravity :top_right33, [ 50, 0, 50, 33 ]
- # Left
- gravity :left, [ 0, 0, 50, 100 ]
- gravity :left66, [ 0, 0, 66, 100 ]
- gravity :left33, [ 0, 0, 33, 100 ]
- # Center
- gravity :center, [ 0, 0, 100, 100 ]
- gravity :center66, [ 17, 17, 66, 66 ]
- gravity :center33, [ 33, 33, 33, 33 ]
- # Right
- gravity :right, [ 50, 0, 50, 100 ]
- gravity :right66, [ 34, 0, 66, 100 ]
- gravity :right33, [ 67, 50, 33, 100 ]
- # Bottom left
- gravity :bottom_left, [ 0, 50, 50, 50 ]
- gravity :bottom_left66, [ 0, 34, 50, 66 ]
- gravity :bottom_left33, [ 0, 67, 50, 33 ]
- # Bottom
- gravity :bottom, [ 0, 50, 100, 50 ]
- gravity :bottom66, [ 0, 34, 100, 66 ]
- gravity :bottom33, [ 0, 67, 100, 33 ]
- # Bottom right
- gravity :bottom_right, [ 50, 50, 50, 50 ]
- gravity :bottom_right66, [ 50, 34, 50, 66 ]
- gravity :bottom_right33, [ 50, 67, 50, 33 ]
- # Gimp
- gravity :gimp_image, [ 15, 0, 85, 100 ]
- gravity :gimp_toolbox, [ 0, 0, 15, 100 ]
- # Dia
- gravity :dia_toolbox, [ 0, 0, 10, 100 ]
- gravity :dia_view, [ 10, 0, 90, 100 ]
- # shutdown-dialog.py
- gravity :shutdownDialog, [ 30, 15, 40, 70 ]
- #
- ## Alt (A), Control (C), Meta (M), Shift (S), Super (W)
- #
- # Mastekey - used in most combinations
- modkey = "W"
- # Volume control
- grab "XF86AudioMute" , :VolumeToggle
- grab "XF86AudioRaiseVolume", :VolumeRaise
- grab "XF86AudioLowerVolume", :VolumeLower
- # Jump to view1, view2, ...
- grab modkey + "-S-1", :ViewJump1
- grab modkey + "-S-2", :ViewJump2
- grab modkey + "-S-3", :ViewJump3
- grab modkey + "-S-4", :ViewJump4
- grab modkey + "-S-5", :ViewJump4
- # Switch current view
- grab modkey + "-1", :ViewSwitch1
- grab modkey + "-2", :ViewSwitch2
- grab modkey + "-3", :ViewSwitch3
- grab modkey + "-4", :ViewSwitch4
- grab modkey + "-5", :ViewSwitch5
- # Select next and prev view */
- grab modkey + "-Page_Up", :ViewNext
- grab modkey + "-Page_Down", :ViewPrev
- # Move mouse to screen1, screen2, ...
- grab modkey + "-A-1", :ScreenJump1
- grab modkey + "-A-2", :ScreenJump2
- grab modkey + "-A-3", :ScreenJump3
- grab modkey + "-A-4", :ScreenJump4
- grab modkey + "-A-5", :ScreenJump5
- # Force reload of config and sublets
- # grab "W-C-r", :SubtleReload
- grab modkey + "-C-r", <<SCRIPT
- subtle -k &>/dev/null
- reload=$?
- if [ $reload -eq 1 ] ; then
- zenity --question --text="Syntax error, reload anyway?" --ok-label="Yes" --cancel-label="No"
- reload=$?
- fi
- [ $reload -eq 0 ] && subtler -r
- SCRIPT
- # Force restart of subtle
- # grab "W-C-S-r", :SubtleRestart
- grab modkey + "-C-S-r", <<SCRIPT
- subtle -k &>/dev/null
- reload=$?
- if [ $reload -eq 1 ] ; then
- zenity --question --text="Syntax error, restart anyway?" --ok-label="Yes" --cancel-label="No"
- reload=$?
- fi
- [ $reload -eq 0 ] && subtler -R
- SCRIPT
- # Quit subtle
- grab modkey + "-C-q", :SubtleQuit
- # Move current window
- grab modkey + "-B1", :WindowMove
- # Resize current window
- grab modkey + "-B3", :WindowResize
- # Toggle floating mode of window
- grab modkey + "-f", :WindowFloat
- # Toggle fullscreen mode of window
- grab modkey + "-space", :WindowFull
- # Toggle sticky mode of window (will be visible on all views)
- grab modkey + "-v", :WindowStick
- # Toggle zaphod mode of window (will span across all screens)
- grab modkey + "-equal", :WindowZaphod
- # Raise window
- grab modkey + "-r", :WindowRaise
- # Lower window
- grab modkey + "-l", :WindowLower
- # Select next windows
- grab modkey + "-Left", :WindowLeft
- grab modkey + "-Down", :WindowDown
- grab modkey + "-Up", :WindowUp
- grab modkey + "-Right", :WindowRight
- # Kill current window
- grab modkey + "-S-k", :WindowKill
- grab modkey + "-q", [ :top_left, :top_left66, :top_left33 ]
- grab modkey + "-w", [ :top, :top66, :top33 ]
- grab modkey + "-e", [ :top_right, :top_right66, :top_right33 ]
- grab modkey + "-a", [ :left, :left66, :left33 ]
- grab modkey + "-s", [ :center, :center66, :center33 ]
- grab modkey + "-d", [ :right, :right66, :right33 ]
- grab modkey + "-z", [ :bottom_left, :bottom_left66, :bottom_left33 ]
- grab modkey + "-x", [ :bottom, :bottom66, :bottom33 ]
- grab modkey + "-c", [ :bottom_right, :bottom_right66, :bottom_right33 ]
- grab modkey + "-Return", "urxvtc"
- grab modkey + "-C-Return" do
- if((c = Subtlext::Client["urxvtq"]))
- c.toggle_stick
- c.focus
- elsif((c = Subtlext::Subtle.spawn("urxvtc -name urxvtq -pe tabbed -depth 32 -bg rgba:0000/0000/0000/bbbb")))
- c.tags = []
- c.flags = [ :stick ]
- end
- end
- grab modkey + "-p", "~/bin/dmenu_launch"
- grab modkey + "-C-l", "sleep 1; xset dpms force off && slimlock"
- grab "Print", "~/bin/screen"
- grab "A-Tab" do |c|
- sel = 0
- clients = Subtlext::Client.visible
- clients.each_index do |idx|
- if(clients[idx].id == c.id)
- sel = idx + 1 if(idx < clients.size - 1)
- end
- end
- clients[sel].focus
- end
- begin
- require "#{ENV["HOME"]}/bin/subtle-contrib/ruby/selector.rb"
- # Set font
- Subtle::Contrib::Selector.font = "xft:sans-10:antialias=true"
- rescue LoadError => error
- puts error
- end
- grab modkey + "-C-space" do
- Subtle::Contrib::Selector.run
- end
- # Simple tags
- tag "browser", "luakit|jumanji|chromium|uzbl|opera|firefox|navigator|Namoroka"
- tag "misc", "inkscape|ario|pympd|audacious"
- tag "editor", "[g]?vim|medit|meld"
- tag "dmanager", "gpodder|deluge|jdownloader"
- # Urxvtq
- tag "urxvtq" do
- match "urxvtq"
- gravity :top
- resize false
- stick true
- urgent true
- end
- # shutdown-dialog.py
- tag "shutdown-dialog.py" do
- match "shutdown-dialog.py"
- gravity :shutdownDialog
- float true
- resize true
- stick true
- urgent true
- end
- tag "xfce4-notifyd" do
- match "xfce4-notifyd"
- float true
- resize false
- stick true
- urgent false
- end
- tag "fixed" do
- geometry [ 10, 10, 100, 100 ]
- stick true
- end
- tag "resize" do
- match "gvim"
- resize true
- end
- tag "gravity" do
- gravity :center
- end
- # Modes
- tag "stick" do
- match "mplayer"
- float true
- stick true
- urgent true
- end
- tag "float" do
- match "display"
- float true
- end
- # Flash fix
- tag "flash" do
- match "<unknown>|exe|operapluginwrapper|npviewer.bin"
- stick true
- end
- # Gimp
- tag "gimp_center" do
- match :class => "gimp"
- center true
- end
- tag "gimp_image" do
- match :role => "gimp-image-window"
- gravity :gimp_image
- end
- tag "gimp_toolbox" do
- match :role => "gimp-toolbox$"
- gravity :gimp_toolbox
- end
- # Dia
- tag "dia_center" do
- match :class => "dia"
- center true
- end
- tag "dia_toolbox" do
- match :role => "toolbox_window"
- gravity :dia_toolbox
- end
- tag "dia_view" do
- match :role => "diagram_window"
- gravity :dia_view
- end
- tag "pms" do
- match :instance => "pms", :class => "urxvt"
- end
- tag "terms" do
- match :instance => "[u]?rxvt"
- end
- view "main", "terms|default"
- view "www", "browser|flash"
- view "dev", "editor"
- view "misc", "gimp_.*|dia_.*|misc|pms"
- view "down", "dmanager"
- on :start do
- #Subtlext::Subtle.spawn "/usr/bin/killall devmon; /usr/bin/devmon --exec-on-drive \"traydevice %f\" "
- # Create missing tags
- views = Subtlext::View.all.map { |v| v.name }
- tags = Subtlext::Tag.all.map { |t| t.name }
- views.each do |v|
- unless(tags.include?(v))
- t = Subtlext::Tag.new(v)
- t.save
- end
- end
- end
- # Add nine C-< number> grabs
- (1..9).each do |i|
- grab modkey + "-C-%d" % [ i ] do |c|
- views = Subtlext::View.all
- names = views.map { |v| v.name }
- # Sanity check
- if(i <= views.size)
- # Tag client
- tags = c.tags.reject { |t| names.include?(t.name) or "default" == t.name }
- tags << names[i - 1]
- c.tags = tags
- # Tag view
- views[i - 1].tag(names[i - 1])
- end
- end
- end
- on :client_create do |c|
- if (c.name != "urxvtq" and c.name != "xfce4-notifyd" and c.name != "<unknown>" and c.name != "mplayer")
- c.views.first.jump
- c.focus
- end
- end
- # vim:ts=2:bs=2:sw=2:et:fdm=marker
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement