@ 260802.2

260531.1 · 10fa193739c5619f3b4d943cda69dd795a813730

config: add new nas configuration

We don't switch over to it yet. There's still a lot more work before that's done.

reading declarations

.config/.gitignore

@@ -65,6 +65,7 @@ /mimeapps.list /mirage /monitors.xml*+/mozilla /nautilus /nitrogen /okularpartrc@@ -87,6 +88,7 @@ /session /snes9x /sniffnet+/systemd /totem /trashrc /Unknown Organization

.config/ag/alacritty/nas2

new file mode 120000@@ -0,0 +1 @@+default\ No newline at end of file

.config/ag/gitconfig/nas

deleted file mode 120000@@ -1 +0,0 @@-default\ No newline at end of file

.config/ag/gitconfig/nas2

new file mode 120000@@ -0,0 +1 @@+default\ No newline at end of file

.config/ag/gohead/nas2/config.ini

new file mode 100644@@ -0,0 +1,2 @@+[Monitors]+main = HDMI-1

.config/ag/nvim/nas

deleted file mode 120000@@ -1 +0,0 @@-default\ No newline at end of file

.config/ag/nvim/nas2

new file mode 120000@@ -0,0 +1 @@+default\ No newline at end of file

.config/ag/startup/wingo-frink.xinitrc

deleted file mode 100755@@ -1,11 +0,0 @@-#!/bin/sh--startup &-media-video left middle right-nitrogen --restore-# (sleep 2 && compton --backend glx --vsync opengl-swc) &-gkrellm &-dunst &--exec bash -c '(dbus-launch run-wingo ; (while true; do sleep 1000; done))'

.config/ag/startup/wingo-kodos.xinitrc

deleted file mode 100755@@ -1,11 +0,0 @@-#!/bin/sh--startup &-nitrogen --restore-(-  sleep 0.3-  video laptop-  dunst &-  nm-applet &-) &-exec bash -c '(dbus-launch run-wingo ; (while true; do sleep 1000; done))'

.config/ag/startup/wingo-krusty.xinitrc

deleted file mode 100755@@ -1,12 +0,0 @@-#!/bin/sh--startup &-nitrogen --restore-(-  sleep 0.3-  video laptop-  dunst &-  nm-applet &-  gkrellm &-) &-exec bash -c '(dbus-launch run-wingo ; (while true; do sleep 1000; done))'

.config/ag/startup/wingo-monty.xinitrc

deleted file mode 100755@@ -1,16 +0,0 @@-#!/bin/sh--startup &-nitrogen --restore-compton --backend glx --vsync opengl-swc &-dunst &-(-  sleep 0.1-  video laptop-  kmix --keepvisibility &-  nm-applet &-  # wicd-client --tray &-  gkrellm &-) &--exec bash -c '(dbus-launch run-wingo ; (while true; do sleep 1000; done))'

.config/ag/startup/wingo-nas2.xinitrc

new file mode 100755@@ -0,0 +1,15 @@+#!/bin/sh++startup+video main &+dunst &+ag-blueberry-tray &+restart-compositor &++# Run the 1password tray.+1password \+  --silent \+  --force-device-scale-factor=1.5 \+  --log=debug &> /tmp/1password.log &++exec run-wingo-environment

.config/ag/startup/wingo.xinitrc

@@ -4,36 +4,18 @@  base="$HOME/.config/ag/startup" case "$(myhostname)" in-  Turtle)-    exec "$base/wingo-turtle.xinitrc"-    ;;-  monty)-    exec "$base/wingo-monty.xinitrc"-    ;;-  krusty)-    exec "$base/wingo-krusty.xinitrc"-    ;;   bart)     exec "$base/wingo-bart.xinitrc" &> /tmp/run-wingo-environment.log     ;;   kang)     exec "$base/wingo-kang.xinitrc"     ;;-  kodos)-    exec "$base/wingo-kodos.xinitrc"+  nas2)+    exec "$base/wingo-nas2.xinitrc"     ;;   duff)     exec "$base/wingo-duff.xinitrc"     ;;-  frink)-    exec "$base/wingo-frink.xinitrc"-    ;;-  skinner)-    exec "$base/wingo-skinner.xinitrc"-    ;;-  chalmers)-    exec "$base/wingo-chalmers.xinitrc"-    ;;   flanders)     exec "$base/wingo-flanders.xinitrc"     ;;

.config/ag/wingo/chalmers

deleted file mode 120000@@ -1 +0,0 @@-tv\ No newline at end of file

.config/ag/wingo/frink/hooks.wini

deleted file mode 100644@@ -1,39 +0,0 @@-# [NoDecor] -# match := MatchClientClass ":client:" "google-chrome" -#  -# managed := FrameNada ":client:" --[ForceFloating]-match := MatchClientClass ":client:" "gimp"--managed := ToggleFloating ":client:"--[Resize]-match := MatchClientClass ":client:" "konsole"--managed := Resize ":client:" 0.6 0.6-managed := Move (GetActive) 0.2 0.2--[FocusTransparency]-# If you have a compositing manager running, this will use transparency-# to indicate focus.-match := True--focused := SetOpacity ":client:" 1.0-unfocused := SetOpacity ":client:" 0.85--[Autostart]-match := True--# You can add startup programs here if you like.-#startup := Shell "xterm"--# You can add more by just adding another definition of "startup".-#startup := Shell "gkrellm"--[Dale]-# Dale is an easter egg.-# Use "match := False" to disable. Or delete it. Whatever.-match := False--startup := Dale

.config/ag/wingo/frink/key.wini

deleted file mode 100644@@ -1,143 +0,0 @@-[Global]-Mod4-Shift-r := WingoExec (Input "Wingo command:")-Mod4-Shift-h := WingoHelp (Input "Wingo command name:")-Mod4-Shift-s := Script (Input "Script command:")--Mod4-c := Close (GetActive)-Mod4-x := ToggleMaximize (GetActive)-Mod4-i := ToggleIconify (GetActive)-# Mod1-up := ToggleStackAbove (GetActive)-# Mod1-down := ToggleStackBelow (GetActive)-Mod1-f := ToggleFloating (GetActive)--Mod1-Shift-t := Move (GetActive) 0.2 0.2-Mod1-Shift-t := Resize (GetActive) 0.6 0.6--Mod4-left := Move (GetActive) 0.00001 0-Mod4-left := Resize (GetActive) 0.5 1.0-Mod4-Shift-left := Move (GetActive) 0.00001 0-Mod4-Shift-left := Resize (GetActive) 0.25 1.0-Mod4-right := Move (GetActive) 0.5 0-Mod4-right := Resize (GetActive) 0.5 1.0-Mod4-Shift-right := Move (GetActive) 0.75 0-Mod4-Shift-right := Resize (GetActive) 0.25 1.0-Mod4-up := Move (GetActive) 0.00001 0-Mod4-up := Resize (GetActive) 1.0 0.5-Mod4-Shift-up := Move (GetActive) 0.00001 0-Mod4-Shift-up := Resize (GetActive) 1.0 0.25-Mod4-down := Move (GetActive) 0.00001 0.5-Mod4-down := Resize (GetActive) 1.0 0.5-Mod4-Shift-down := Move (GetActive) 0.00001 0.75-Mod4-Shift-down := Resize (GetActive) 1.0 0.25--Mod1-a := AutoTile (GetWorkspace)-Mod1-u := AutoUntile (GetWorkspace)-Mod1-z := SetLayout (GetWorkspace) "Horizontal"-Mod1-Shift-z := SetLayout (GetWorkspace) "Vertical"-Mod1-h := AutoResizeMaster (GetWorkspace) -0.02-Mod1-l := AutoResizeMaster (GetWorkspace) 0.02-Mod1-b := AutoResizeWindow (GetWorkspace) -0.02-Mod1-n := AutoResizeWindow (GetWorkspace) 0.02-Mod1-k := AutoNext (GetWorkspace)-Mod1-j := AutoPrev (GetWorkspace)-Mod1-Shift-k := AutoSwitchNext (GetWorkspace)-Mod1-Shift-j := AutoSwitchPrev (GetWorkspace)-Mod1-m := AutoMaster (GetWorkspace)-Mod1-Shift-return := AutoMakeMaster (GetWorkspace)-Mod1-comma := AutoMastersFewer (GetWorkspace)-Mod1-period := AutoMastersMore (GetWorkspace)--Mod4-Shift-l := SetLayout (GetWorkspace) (Input "Layout name:")--Mod1-w := MovePointerRelative 0 0-Mod1-w := HeadFocus 0--Mod1-e := MovePointerRelative 0 0-Mod1-e := HeadFocus 1--Mod1-r := MovePointerRelative 0 0-Mod1-r := HeadFocus 2--Mod1-Shift-w := MovePointerRelative 0 0-Mod1-Shift-w := MovePointerRelative 0 0-Mod1-Shift-w := MovePointerRelative 0 0-Mod1-Shift-w := MovePointerRelative 0 0-Mod1-Shift-w := MovePointerRelative 0 0-Mod1-Shift-w := MovePointerRelative 0 0-Mod1-Shift-w := MovePointerRelative 0 0-Mod1-Shift-w := MovePointerRelative 0 0-Mod1-Shift-w := MovePointerRelative 0 0-Mod1-Shift-w := MovePointerRelative 0 0-Mod1-Shift-w := HeadFocusWithClient 0 (GetActive)--Mod1-Shift-e := MovePointerRelative 0 0-Mod1-Shift-e := MovePointerRelative 0 0-Mod1-Shift-e := MovePointerRelative 0 0-Mod1-Shift-e := MovePointerRelative 0 0-Mod1-Shift-e := MovePointerRelative 0 0-Mod1-Shift-e := MovePointerRelative 0 0-Mod1-Shift-e := MovePointerRelative 0 0-Mod1-Shift-e := MovePointerRelative 0 0-Mod1-Shift-e := MovePointerRelative 0 0-Mod1-Shift-e := MovePointerRelative 0 0-Mod1-Shift-e := HeadFocusWithClient 1 (GetActive)--Mod1-Shift-r := MovePointerRelative 0 0-Mod1-Shift-r := MovePointerRelative 0 0-Mod1-Shift-r := MovePointerRelative 0 0-Mod1-Shift-r := MovePointerRelative 0 0-Mod1-Shift-r := MovePointerRelative 0 0-Mod1-Shift-r := MovePointerRelative 0 0-Mod1-Shift-r := MovePointerRelative 0 0-Mod1-Shift-r := MovePointerRelative 0 0-Mod1-Shift-r := MovePointerRelative 0 0-Mod1-Shift-r := MovePointerRelative 0 0-Mod1-Shift-r := HeadFocusWithClient 2 (GetActive)--Mod1-1 := WorkspaceGreedy "1"-Mod1-2 := WorkspaceGreedy "2"-Mod1-3 := WorkspaceGreedy "3"-Mod1-4 := WorkspaceGreedy "4"-Mod1-5 := WorkspaceGreedy "5"-Mod1-6 := WorkspaceGreedy "6"--Mod4-Shift-a := Workspace (AddWorkspace (Input "New workspace name:"))-Mod4-shift-d := RemoveWorkspace (SelectWorkspace "Prefix")-Mod4-BackSpace := RemoveWorkspace (GetWorkspace)--Mod1-Tab := CycleClientNext "yes" "no" "yes"-Mod1-Shift-Tab := CycleClientPrev "yes" "no" "yes"--Mod4-space := FocusRaise (SelectClient "Any" "no" "no" "yes")-Mod4-return := WorkspaceGreedy (SelectWorkspace "Prefix")-Mod4-Shift-return := WorkspaceGreedyWithClient \-                       (SelectWorkspace "Prefix") \-                       (GetActive)--Control-Mod1-a := Workspace (GetWorkspacePrefix "a")-Control-Mod1-b := Workspace (GetWorkspacePrefix "b")-Control-Mod1-c := Workspace (GetWorkspacePrefix "c")-Control-Mod1-d := Workspace (GetWorkspacePrefix "d")-Control-Mod1-e := Workspace (GetWorkspacePrefix "e")-Control-Mod1-f := Workspace (GetWorkspacePrefix "f")-Control-Mod1-g := Workspace (GetWorkspacePrefix "g")-Control-Mod1-h := Workspace (GetWorkspacePrefix "h")-Control-Mod1-i := Workspace (GetWorkspacePrefix "i")-Control-Mod1-j := Workspace (GetWorkspacePrefix "j")-Control-Mod1-k := Workspace (GetWorkspacePrefix "k")-Control-Mod1-l := Workspace (GetWorkspacePrefix "l")-Control-Mod1-m := Workspace (GetWorkspacePrefix "m")-Control-Mod1-n := Workspace (GetWorkspacePrefix "n")-Control-Mod1-o := Workspace (GetWorkspacePrefix "o")-Control-Mod1-p := Workspace (GetWorkspacePrefix "p")-Control-Mod1-q := Workspace (GetWorkspacePrefix "q")-Control-Mod1-r := Workspace (GetWorkspacePrefix "r")-Control-Mod1-s := Workspace (GetWorkspacePrefix "s")-Control-Mod1-t := Workspace (GetWorkspacePrefix "t")-Control-Mod1-u := Workspace (GetWorkspacePrefix "u")-Control-Mod1-v := Workspace (GetWorkspacePrefix "v")-Control-Mod1-w := Workspace (GetWorkspacePrefix "w")-Control-Mod1-x := Workspace (GetWorkspacePrefix "x")-Control-Mod1-y := Workspace (GetWorkspacePrefix "y")-Control-Mod1-z := Workspace (GetWorkspacePrefix "z")-

.config/ag/wingo/frink/mouse.wini

deleted file mode 100644@@ -1,118 +0,0 @@-$OPACITY_UP := Shell "transset-df -p --max 1.0 --inc 0.05"-$OPACITY_DOWN := Shell "transset-df -p --min 0.1 --dec 0.05"--[Root]-1 := Focus ":mouse:"--[Client]-1 := FocusRaise ":mouse:"--[Frame]-Mod4-1 := MouseMove-Mod4-3 := MouseResize "Infer"-Mod4-4 up := $OPACITY_UP-Mod4-5 up := $OPACITY_DOWN--[FullIcon]-1 := MouseMove-1 := FocusRaise ":mouse:"-3 := MouseResize "Infer"-Mod4-4 up := $OPACITY_UP-Mod4-5 up := $OPACITY_DOWN--[FullTitleText]-1 := MouseMove-1 := FocusRaise ":mouse:"-3 := MouseResize "Infer"-Mod4-4 up := $OPACITY_UP-Mod4-5 up := $OPACITY_DOWN--[FullTitleBar]-1 := MouseMove-1 := FocusRaise ":mouse:"-3 := MouseResize "Infer"-Mod4-4 up := $OPACITY_UP-Mod4-5 up := $OPACITY_DOWN--[FullClose]-1 up := Close ":mouse:"-Mod4-4 up := $OPACITY_UP-Mod4-5 up := $OPACITY_DOWN--[FullMaximize]-1 up := ToggleMaximize ":mouse:"-Mod4-4 up := $OPACITY_UP-Mod4-5 up := $OPACITY_DOWN--[FullMinimize]-1 up := ToggleIconify ":mouse:"-Mod4-4 up := $OPACITY_UP-Mod4-5 up := $OPACITY_DOWN--[FullTop]-1 := MouseResize "Top"-1 down := FocusRaise ":mouse:"--[FullTitleBottom]-1 down := FocusRaise ":mouse:"--[FullBottom]-1 := MouseResize "Bottom"-1 down := FocusRaise ":mouse:"--[FullLeft]-1 := MouseResize "Left"-1 down := FocusRaise ":mouse:"--[FullRight]-1 := MouseResize "Right"-1 down := FocusRaise ":mouse:"--[FullTopLeft]-1 := MouseResize "TopLeft"-1 down := FocusRaise ":mouse:"--[FullTopRight]-1 := MouseResize "TopRight"-1 down := FocusRaise ":mouse:"--[FullBottomLeft]-1 := MouseResize "BottomLeft"-1 down := FocusRaise ":mouse:"--[FullBottomRight]-1 := MouseResize "BottomRight"-1 down := FocusRaise ":mouse:"--[BordersTop]-1 := MouseResize "Top"-1 down := FocusRaise ":mouse:"--[BordersBottom]-1 := MouseResize "Bottom"-1 down := FocusRaise ":mouse:"--[BordersLeft]-1 := MouseResize "Left"-1 down := FocusRaise ":mouse:"--[BordersRight]-1 := MouseResize "Right"-1 down := FocusRaise ":mouse:"--[BordersTopLeft]-1 := MouseResize "TopLeft"-1 down := FocusRaise ":mouse:"--[BordersTopRight]-1 := MouseResize "TopRight"-1 down := FocusRaise ":mouse:"--[BordersBottomLeft]-1 := MouseResize "BottomLeft"-1 down := FocusRaise ":mouse:"--[BordersBottomRight]-1 := MouseResize "BottomRight"-1 down := FocusRaise ":mouse:"-

.config/ag/wingo/frink/options.wini

deleted file mode 100644@@ -1,57 +0,0 @@-[Options]-# The list of workspaces to set upon startup. Workspaces can be added or-# removed while Wingo is running.-workspaces := 1 2 3 4 mail browser irc text s1 s2 s3 doc--# The default layout that is used in a particular workspace. Currently, the-# only available layouts are: Floating, Vertical or Horizontal.-# Setting this to something other than a Floating layout effectively turns-# Wingo into a tiling window manager.-default_layout := Floating--# When enabled, windows will be focused when the mouse enters the window.-# N.B. I don't use focus follows mouse, so I'm not sure precisely how it-# should work. If I've messed up, file a bug report.-focus_follows_mouse := no--# If enabled, head focus will follow the mouse. That is, moving the mouse to-# another monitor will move the focus to the workspace on that monitor.-# Note that this does not require that "focus_follows_mouse" be enabled;-# however this only works when the mouse is directly over the root window.-# (So enabling this option might be weight if "focus_follows_mouse" is-# disabled.)-#-# N.B. It is possible that this could have an effect on performance, since-# all pointer motion events on the root window must be inspected.-focus_follows_mouse_head := no--# Whether error messages should be shown or not. Error messages typically-# show up when you've tried to do something illegal with one of Wingo's-# commands.-# Error messages acquire focus and do not disappear until they lose focus, or-# if the "confirm" or "cancel" keys have been pressed.-show_popup_errors := yes--# Whether FYI messages should be shown or not. These are typically used to-# indicate state changes, like when a the current workspace is changed.-# Note that FYI messages only appear for a set amount of time (see "popup_time"-# below) and then disappear. They never acquire focus.-show_popup_fyi := yes--# The time that an "FYI" message window stays visible in milliseconds.-# After time expires, the message disappears.-popup_time := 500--# The key that acts as the "confirm" key. This is mostly used in prompts. When-# the confirm key is pressed, the prompt will execute an action corresponding-# to the inputted text or the selected item.-confirm := Return--# The key that acts as the "cancel" key. This is mostly used in prompts. When-# the cancel key is pressed, the prompt disappears and no action occurs.-cancel := Escape--# The program to use to play a wav file. This is only used with the "Dale"-# command, which is an easter egg.-audio_play_cmd := aplay-

.config/ag/wingo/frink/scripts/dzen-workspaces/README.md

deleted file mode 100644@@ -1,23 +0,0 @@-Description-===========-dzen-workspaces listens to events from Wingo and emits a dzen formatted string -whenever there is a change. The formatting is configurable and is based on the -kind of workspace: current, visible, hidden or empty.---Example-=======-In your `Autostart` hook:--    startup := Shell "dzen2 -dock | ~/.config/wingo/scripts/dzen-workspaces/dzen-workspaces"--The formatting options can be changed in--    ~/.config/wingo/scripts/dzen-workspaces/dzen-workspaces.cfg---Dependencies-============-* pywingo-* dzen2-

.config/ag/wingo/frink/scripts/dzen-workspaces/dzen-workspaces

deleted file mode 100755@@ -1,44 +0,0 @@-#!/home/andrew/.pyx11/bin/python--import sys--import pywingo--W = pywingo.Wingo()--cfg = W.LoadConfig()-markup = {}-for k in ('current', 'visible', 'hidden', 'empty'):-    markup[k] = cfg.get('fmt', k)---@W.bind('AddedWorkspace')-@W.bind('RemovedWorkspace')-@W.bind('ChangedWorkspace')-@W.bind('ChangedVisibleWorkspace')-@W.bind('ChangedWorkspaceNames')-@W.bind('ManagedClient')-@W.bind('UnmanagedClient')-@W.bind('Subscribed')-def show(_):-    current = W.GetWorkspace()-    visible = W.GetVisibleWorkspaceList()-    hidden = W.GetHiddenWorkspaceList()--    vtagged = []-    for space in visible:-        if space == current:-            vtagged.append(markup['current'] % space)-        else:-            vtagged.append(markup['visible'] % space)-    htagged = []-    for space in hidden:-        if W.IsEmpty(space):-            htagged.append(markup['empty'] % space)-        else:-            htagged.append(markup['hidden'] % space)--    print '[%s] %s' % (' '.join(vtagged), ' '.join(htagged))-    sys.stdout.flush()--W.loop()

.config/ag/wingo/frink/scripts/dzen-workspaces/dzen-workspaces.cfg

deleted file mode 100644@@ -1,5 +0,0 @@-[fmt]-current = ^fg(#18B218)%s^fg()-visible = ^fg(#FF0000)%s^fg()-hidden = ^fg(#FFA500)%s^fg()-empty = ^fg(#000)%s^fg()

.config/ag/wingo/frink/scripts/growto

deleted file mode 100755@@ -1,105 +0,0 @@-#!/usr/bin/env python2--import sys--import pywingo--if len(sys.argv) != 2 or sys.argv[1] not in ('top', 'bot', 'left', 'right'):-    print >> sys.stderr, 'Usage: growto (top | bot | left | right)'-    sys.exit(1)--def edges(client):-    '''-    Returns a dictionary of edges for the given client.-    '''-    eleft, etop = W.GetClientX(client), W.GetClientY(client)-    w, h = W.GetClientWidth(client), W.GetClientHeight(client)-    eright, ebot = eleft + w, etop + h-    return {-        'left': eleft, 'top': etop,-        'right': eright, 'bot': ebot,-    }--def flatten(lst):-    '''-    Flattens a list: [[a]] -> [a].-    '''-    flattened = []-    for sublst in lst:-        for x in sublst:-            flattened.append(x)-    return flattened--def newpos(vertical, order, default, include):-    '''-    Finds a new edge for the client from a list of edges corresponding-    to all relevant surfaces.--    `vertical` should be True if the client is moving/growing/shrinking in-    a vertical direction (top/bot). Should be False otherwise.--    `order` should either be `min` or `max`, and is used to retrieve the-    next edge to move/grow/shrink to from a list of candidate edges.--    `default` is the edge of last resort if no other edges were found.-    It is also used as a min/max depending on `order`.-    (e.g., the head boundary.)--    `include` is the comparison criterion for edges. It should return-    True if the given edge is a possible choice.-    (e.g., all edges less than the active client's left edge when-           growing in the left direction.)-    '''-    def extract(edges):-        if vertical:-            return [edges['top'], edges['bot']]-        else:-            return [edges['left'], edges['right']]-    candidates = filter(include, flatten(map(extract, alledges)))-    return order(default, order(candidates) if candidates else default)--# Initialization. Connect and grab the edges/geometry of the active client.-direction = sys.argv[1]-W = pywingo.Wingo()--win = W.GetActive()-if not W.MatchClientMapped(win):-    print >> sys.stderr, 'Window %d is not visible' % win-    sys.exit(1)-wine = edges(win)-wine_width = wine['right'] - wine['left']-wine_height = wine['bot'] - wine['top']--# Find the geometry of the active head and compute the edges for all-# clients on the head.-wrk = W.GetClientWorkspace(win)-head = W.WorkspaceHead(wrk)-headw, headh = W.GetHeadWidth(head), W.GetHeadHeight(head)-clients = filter(lambda c: W.MatchClientMapped(c), W.GetClientList(wrk))-alledges = []-for c in clients:-    if c == win:-        continue-    alledges.append(edges(c))--if direction == 'top':-    newtop = newpos(True, max, 0, lambda e: e < wine['top'])--    W.MoveRelative(win, wine['left'], newtop)-    W.Resize(win, wine_width, wine_height + wine['top'] - newtop)-elif direction == 'left':-    newleft = newpos(False, max, 0, lambda e: e < wine['left'])--    W.MoveRelative(win, newleft, wine['top'])-    W.Resize(win, wine_width + wine['left'] - newleft, wine_height)-elif direction == 'bot':-    newbot = newpos(True, min, headh, lambda e: e > wine['bot'])--    W.Resize(win, wine_width, newbot - wine['top'])-elif direction == 'right':-    newright = newpos(False, min, headw, lambda e: e > wine['right'])--    W.Resize(win, newright - wine['left'], wine_height)-else:-    assert False, 'bug'-

.config/ag/wingo/frink/scripts/newproject/README.md

deleted file mode 100644@@ -1,20 +0,0 @@-Description-===========-newproject prompts the user for a project name, and creates N workspaces with -the names {name}1, {name}2, ..., {name}N where N is the number of monitors -active on your system.---Example-=======-In your `key.wini`:--  Mod4-p := Script "newproject"--Then type in the desired project name.---Dependencies-============-* pywingo-

.config/ag/wingo/frink/scripts/newproject/newproject

deleted file mode 100755@@ -1,16 +0,0 @@-#!/home/andrew/.pyx11/bin/python--import pywingo--W = pywingo.Wingo()--prefix = W.Input('Project name: ')-if len(prefix) == 0:-    exit(0)--for i in xrange(W.GetNumHeads()):-    name = '%s%d' % (prefix, i + 1)-    W.HeadFocus(i)-    W.AddWorkspace(name)-    W.Workspace(name)-

.config/ag/wingo/frink/scripts/nexthead

deleted file mode 100755@@ -1,13 +0,0 @@-#!/home/andrew/.pyx11/bin/python--import pywingo--W = pywingo.Wingo()--cur_head = W.GetHead()-cur_client = W.GetActive()--next_head = (cur_head + 1) % W.GetNumHeads()--W.HeadFocusWithClient(next_head, cur_client)-

.config/ag/wingo/frink/scripts/transparency

deleted file mode 100755@@ -1,47 +0,0 @@-#!/home/andrew/.pyx11/bin/python--import atexit--import pywingo--# The transparency to use for unfocused and focused clients.-# 1 is completely opaque and 0 is completely transparent.-alpha = {-    'unfocused': 0.85,-    'focused': 1.0,-}--# Does the initial connection with Wingo. `W` can now be used to run commands.-W = pywingo.Wingo()--# Use Python decorators to bind functions to specific events.-@W.bind('FocusedClient')-def focused(ev):-    W.SetOpacity(ev.Id, alpha['focused'])--@W.bind('UnfocusedClient')-def focused(ev):-    W.SetOpacity(ev.Id, alpha['unfocused'])--# Set the transparency of all clients upon subscription.-@W.bind('Subscribed')-def startup(ev):-    active = W.GetActive()-    for cid in W.GetAllNormalClients():-        if cid == active:-            W.SetOpacity(cid, alpha['focused'])-        else:-            W.SetOpacity(cid, alpha['unfocused'])--# Use the special `atexit.register` decoration in the Python standard-# library to do any clean up if your program quits.-@atexit.register-def shutdown():-    # If the program quits unexpectedly, return opacity-    # to normal levels.-    for cid in W.GetAllNormalClients():-        W.SetOpacity(cid, 1.0)--# Start the main event loop. This should be the last thing in your program.-W.loop()-

.config/ag/wingo/frink/theme.wini

deleted file mode 100644@@ -1,65 +0,0 @@-$THIN_COLOR := 0x585a5d-$BLUE := 0x3366ff-$ORANGE := 0xff7f00-$GREY := 0xdfdcdf-$PURPLE := 0xff00ff--[Prompt]-bg_color := 0x8e8e8e-border_color := 0x585a5d-border_size := 10-padding := 15-font := /usr/share/fonts/TTF/DejaVuSansMono.ttf-font_size := 17-font_color := 0xffffff-select_active_color := 0x4c4c4c-select_active_bg_color := 0xffffff-select_group_bg_color := 0x8e8e8e-select_group_font := /usr/share/fonts/TTF/DejaVuSansMono-Bold.ttf-select_group_font_size := 25-select_group_font_color := 0xffffff-cycle_icon_size := 100-cycle_icon_border_size := 10-cycle_icon_transparency := 30--[Misc]-default_icon := ./data/wingo.png--[Full]-font := /usr/share/fonts/TTF/DejaVuSansMono-Bold.ttf-font_size := 17-a_font_color := 0xffffff-i_font_color := 0x000000--title_size := 30-a_title_color := 0xd66b00 0xff9123-i_title_color := 0xffffff--close := ./data/close.png-a_close_color := 0xffffff-i_close_color := 0x000000--maximize := ./data/maximize.png-a_maximize_color := 0xffffff-i_maximize_color := 0x000000--minimize := ./data/minimize.png-a_minimize_color := 0xffffff-i_minimize_color := 0x000000--border_size := 4-a_border_color := $THIN_COLOR-i_border_color := $THIN_COLOR--[Borders]-border_size := 4-a_thin_color := $THIN_COLOR-i_thin_color := $THIN_COLOR-a_border_color := $ORANGE-i_border_color := $GREY--[Slim]-border_size := 1-a_border_color := 0x000000-i_border_color := 0x000000-

.config/ag/wingo/kodos/hooks.wini

deleted file mode 100644@@ -1,39 +0,0 @@-# [NoDecor] -# match := MatchClientClass ":client:" "google-chrome" -#  -# managed := FrameNada ":client:" --[ForceFloating]-match := MatchClientClass ":client:" "gimp"--managed := ToggleFloating ":client:"--[Resize]-match := MatchClientClass ":client:" "konsole"--managed := Resize ":client:" 0.6 0.6-managed := Move (GetActive) 0.2 0.2--[FocusTransparency]-# If you have a compositing manager running, this will use transparency-# to indicate focus.-match := True--focused := SetOpacity ":client:" 1.0-unfocused := SetOpacity ":client:" 0.85--[Autostart]-match := True--# You can add startup programs here if you like.-#startup := Shell "xterm"--# You can add more by just adding another definition of "startup".-#startup := Shell "gkrellm"--[Dale]-# Dale is an easter egg.-# Use "match := False" to disable. Or delete it. Whatever.-match := False--startup := Dale

.config/ag/wingo/kodos/key.wini

deleted file mode 100644@@ -1,143 +0,0 @@-[Global]-Mod4-Shift-r := WingoExec (Input "Wingo command:")-Mod4-Shift-h := WingoHelp (Input "Wingo command name:")-Mod4-Shift-s := Script (Input "Script command:")--Mod4-c := Close (GetActive)-Mod4-x := ToggleMaximize (GetActive)-Mod4-i := ToggleIconify (GetActive)-# Mod1-up := ToggleStackAbove (GetActive)-# Mod1-down := ToggleStackBelow (GetActive)-Mod1-f := ToggleFloating (GetActive)--Mod1-Shift-t := Move (GetActive) 0.2 0.2-Mod1-Shift-t := Resize (GetActive) 0.6 0.6--Mod4-left := Move (GetActive) 0 0-Mod4-left := Resize (GetActive) 0.5 1.0-Mod4-Shift-left := Move (GetActive) 0 0-Mod4-Shift-left := Resize (GetActive) 0.25 1.0-Mod4-right := Move (GetActive) 0.5 0-Mod4-right := Resize (GetActive) 0.5 1.0-Mod4-Shift-right := Move (GetActive) 0.75 0-Mod4-Shift-right := Resize (GetActive) 0.25 1.0-Mod4-up := Move (GetActive) 0 0-Mod4-up := Resize (GetActive) 1.0 0.5-Mod4-Shift-up := Move (GetActive) 0 0-Mod4-Shift-up := Resize (GetActive) 1.0 0.25-Mod4-down := Move (GetActive) 0 0.5-Mod4-down := Resize (GetActive) 1.0 0.5-Mod4-Shift-down := Move (GetActive) 0 0.75-Mod4-Shift-down := Resize (GetActive) 1.0 0.25--Mod1-a := AutoTile (GetWorkspace)-Mod1-u := AutoUntile (GetWorkspace)-Mod1-z := SetLayout (GetWorkspace) "Horizontal"-Mod1-Shift-z := SetLayout (GetWorkspace) "Vertical"-Mod1-h := AutoResizeMaster (GetWorkspace) -0.02-Mod1-l := AutoResizeMaster (GetWorkspace) 0.02-Mod1-b := AutoResizeWindow (GetWorkspace) -0.02-Mod1-n := AutoResizeWindow (GetWorkspace) 0.02-Mod1-k := AutoNext (GetWorkspace)-Mod1-j := AutoPrev (GetWorkspace)-Mod1-Shift-k := AutoSwitchNext (GetWorkspace)-Mod1-Shift-j := AutoSwitchPrev (GetWorkspace)-Mod1-m := AutoMaster (GetWorkspace)-Mod1-Shift-return := AutoMakeMaster (GetWorkspace)-Mod1-comma := AutoMastersFewer (GetWorkspace)-Mod1-period := AutoMastersMore (GetWorkspace)--Mod4-Shift-l := SetLayout (GetWorkspace) (Input "Layout name:")--Mod1-w := MovePointerRelative 0 0-Mod1-w := HeadFocus 0--Mod1-e := MovePointerRelative 0 0-Mod1-e := HeadFocus 1--Mod1-r := MovePointerRelative 0 0-Mod1-r := HeadFocus 2--Mod1-Shift-w := MovePointerRelative 0 0-Mod1-Shift-w := MovePointerRelative 0 0-Mod1-Shift-w := MovePointerRelative 0 0-Mod1-Shift-w := MovePointerRelative 0 0-Mod1-Shift-w := MovePointerRelative 0 0-Mod1-Shift-w := MovePointerRelative 0 0-Mod1-Shift-w := MovePointerRelative 0 0-Mod1-Shift-w := MovePointerRelative 0 0-Mod1-Shift-w := MovePointerRelative 0 0-Mod1-Shift-w := MovePointerRelative 0 0-Mod1-Shift-w := HeadFocusWithClient 0 (GetActive)--Mod1-Shift-e := MovePointerRelative 0 0-Mod1-Shift-e := MovePointerRelative 0 0-Mod1-Shift-e := MovePointerRelative 0 0-Mod1-Shift-e := MovePointerRelative 0 0-Mod1-Shift-e := MovePointerRelative 0 0-Mod1-Shift-e := MovePointerRelative 0 0-Mod1-Shift-e := MovePointerRelative 0 0-Mod1-Shift-e := MovePointerRelative 0 0-Mod1-Shift-e := MovePointerRelative 0 0-Mod1-Shift-e := MovePointerRelative 0 0-Mod1-Shift-e := HeadFocusWithClient 1 (GetActive)--Mod1-Shift-r := MovePointerRelative 0 0-Mod1-Shift-r := MovePointerRelative 0 0-Mod1-Shift-r := MovePointerRelative 0 0-Mod1-Shift-r := MovePointerRelative 0 0-Mod1-Shift-r := MovePointerRelative 0 0-Mod1-Shift-r := MovePointerRelative 0 0-Mod1-Shift-r := MovePointerRelative 0 0-Mod1-Shift-r := MovePointerRelative 0 0-Mod1-Shift-r := MovePointerRelative 0 0-Mod1-Shift-r := MovePointerRelative 0 0-Mod1-Shift-r := HeadFocusWithClient 2 (GetActive)--Mod1-1 := WorkspaceGreedy "1"-Mod1-2 := WorkspaceGreedy "2"-Mod1-3 := WorkspaceGreedy "3"-Mod1-4 := WorkspaceGreedy "4"-Mod1-5 := WorkspaceGreedy "5"-Mod1-6 := WorkspaceGreedy "6"--Mod4-Shift-a := Workspace (AddWorkspace (Input "New workspace name:"))-Mod4-shift-d := RemoveWorkspace (SelectWorkspace "Prefix")-Mod4-BackSpace := RemoveWorkspace (GetWorkspace)--Mod1-Tab := CycleClientNext "yes" "no" "yes"-Mod1-Shift-Tab := CycleClientPrev "yes" "no" "yes"--Mod4-space := FocusRaise (SelectClient "Any" "no" "no" "yes")-Mod4-return := WorkspaceGreedy (SelectWorkspace "Prefix")-Mod4-Shift-return := WorkspaceGreedyWithClient \-                       (SelectWorkspace "Prefix") \-                       (GetActive)--Control-Mod1-a := Workspace (GetWorkspacePrefix "a")-Control-Mod1-b := Workspace (GetWorkspacePrefix "b")-Control-Mod1-c := Workspace (GetWorkspacePrefix "c")-Control-Mod1-d := Workspace (GetWorkspacePrefix "d")-Control-Mod1-e := Workspace (GetWorkspacePrefix "e")-Control-Mod1-f := Workspace (GetWorkspacePrefix "f")-Control-Mod1-g := Workspace (GetWorkspacePrefix "g")-Control-Mod1-h := Workspace (GetWorkspacePrefix "h")-Control-Mod1-i := Workspace (GetWorkspacePrefix "i")-Control-Mod1-j := Workspace (GetWorkspacePrefix "j")-Control-Mod1-k := Workspace (GetWorkspacePrefix "k")-Control-Mod1-l := Workspace (GetWorkspacePrefix "l")-Control-Mod1-m := Workspace (GetWorkspacePrefix "m")-Control-Mod1-n := Workspace (GetWorkspacePrefix "n")-Control-Mod1-o := Workspace (GetWorkspacePrefix "o")-Control-Mod1-p := Workspace (GetWorkspacePrefix "p")-Control-Mod1-q := Workspace (GetWorkspacePrefix "q")-Control-Mod1-r := Workspace (GetWorkspacePrefix "r")-Control-Mod1-s := Workspace (GetWorkspacePrefix "s")-Control-Mod1-t := Workspace (GetWorkspacePrefix "t")-Control-Mod1-u := Workspace (GetWorkspacePrefix "u")-Control-Mod1-v := Workspace (GetWorkspacePrefix "v")-Control-Mod1-w := Workspace (GetWorkspacePrefix "w")-Control-Mod1-x := Workspace (GetWorkspacePrefix "x")-Control-Mod1-y := Workspace (GetWorkspacePrefix "y")-Control-Mod1-z := Workspace (GetWorkspacePrefix "z")-

.config/ag/wingo/kodos/mouse.wini

deleted file mode 100644@@ -1,118 +0,0 @@-$OPACITY_UP := Shell "transset-df -p --max 1.0 --inc 0.05"-$OPACITY_DOWN := Shell "transset-df -p --min 0.1 --dec 0.05"--[Root]-1 := Focus ":mouse:"--[Client]-1 := FocusRaise ":mouse:"--[Frame]-Mod4-1 := MouseMove-Mod4-3 := MouseResize "Infer"-Mod4-4 up := $OPACITY_UP-Mod4-5 up := $OPACITY_DOWN--[FullIcon]-1 := MouseMove-1 := FocusRaise ":mouse:"-3 := MouseResize "Infer"-Mod4-4 up := $OPACITY_UP-Mod4-5 up := $OPACITY_DOWN--[FullTitleText]-1 := MouseMove-1 := FocusRaise ":mouse:"-3 := MouseResize "Infer"-Mod4-4 up := $OPACITY_UP-Mod4-5 up := $OPACITY_DOWN--[FullTitleBar]-1 := MouseMove-1 := FocusRaise ":mouse:"-3 := MouseResize "Infer"-Mod4-4 up := $OPACITY_UP-Mod4-5 up := $OPACITY_DOWN--[FullClose]-1 up := Close ":mouse:"-Mod4-4 up := $OPACITY_UP-Mod4-5 up := $OPACITY_DOWN--[FullMaximize]-1 up := ToggleMaximize ":mouse:"-Mod4-4 up := $OPACITY_UP-Mod4-5 up := $OPACITY_DOWN--[FullMinimize]-1 up := ToggleIconify ":mouse:"-Mod4-4 up := $OPACITY_UP-Mod4-5 up := $OPACITY_DOWN--[FullTop]-1 := MouseResize "Top"-1 down := FocusRaise ":mouse:"--[FullTitleBottom]-1 down := FocusRaise ":mouse:"--[FullBottom]-1 := MouseResize "Bottom"-1 down := FocusRaise ":mouse:"--[FullLeft]-1 := MouseResize "Left"-1 down := FocusRaise ":mouse:"--[FullRight]-1 := MouseResize "Right"-1 down := FocusRaise ":mouse:"--[FullTopLeft]-1 := MouseResize "TopLeft"-1 down := FocusRaise ":mouse:"--[FullTopRight]-1 := MouseResize "TopRight"-1 down := FocusRaise ":mouse:"--[FullBottomLeft]-1 := MouseResize "BottomLeft"-1 down := FocusRaise ":mouse:"--[FullBottomRight]-1 := MouseResize "BottomRight"-1 down := FocusRaise ":mouse:"--[BordersTop]-1 := MouseResize "Top"-1 down := FocusRaise ":mouse:"--[BordersBottom]-1 := MouseResize "Bottom"-1 down := FocusRaise ":mouse:"--[BordersLeft]-1 := MouseResize "Left"-1 down := FocusRaise ":mouse:"--[BordersRight]-1 := MouseResize "Right"-1 down := FocusRaise ":mouse:"--[BordersTopLeft]-1 := MouseResize "TopLeft"-1 down := FocusRaise ":mouse:"--[BordersTopRight]-1 := MouseResize "TopRight"-1 down := FocusRaise ":mouse:"--[BordersBottomLeft]-1 := MouseResize "BottomLeft"-1 down := FocusRaise ":mouse:"--[BordersBottomRight]-1 := MouseResize "BottomRight"-1 down := FocusRaise ":mouse:"-

.config/ag/wingo/kodos/options.wini

deleted file mode 100644@@ -1,57 +0,0 @@-[Options]-# The list of workspaces to set upon startup. Workspaces can be added or-# removed while Wingo is running.-workspaces := 1 2 3 4 mail browser text s1 s2 s3 doc--# The default layout that is used in a particular workspace. Currently, the-# only available layouts are: Floating, Vertical or Horizontal.-# Setting this to something other than a Floating layout effectively turns-# Wingo into a tiling window manager.-default_layout := Floating--# When enabled, windows will be focused when the mouse enters the window.-# N.B. I don't use focus follows mouse, so I'm not sure precisely how it-# should work. If I've messed up, file a bug report.-focus_follows_mouse := no--# If enabled, head focus will follow the mouse. That is, moving the mouse to-# another monitor will move the focus to the workspace on that monitor.-# Note that this does not require that "focus_follows_mouse" be enabled;-# however this only works when the mouse is directly over the root window.-# (So enabling this option might be weight if "focus_follows_mouse" is-# disabled.)-#-# N.B. It is possible that this could have an effect on performance, since-# all pointer motion events on the root window must be inspected.-focus_follows_mouse_head := no--# Whether error messages should be shown or not. Error messages typically-# show up when you've tried to do something illegal with one of Wingo's-# commands.-# Error messages acquire focus and do not disappear until they lose focus, or-# if the "confirm" or "cancel" keys have been pressed.-show_popup_errors := yes--# Whether FYI messages should be shown or not. These are typically used to-# indicate state changes, like when a the current workspace is changed.-# Note that FYI messages only appear for a set amount of time (see "popup_time"-# below) and then disappear. They never acquire focus.-show_popup_fyi := yes--# The time that an "FYI" message window stays visible in milliseconds.-# After time expires, the message disappears.-popup_time := 500--# The key that acts as the "confirm" key. This is mostly used in prompts. When-# the confirm key is pressed, the prompt will execute an action corresponding-# to the inputted text or the selected item.-confirm := Return--# The key that acts as the "cancel" key. This is mostly used in prompts. When-# the cancel key is pressed, the prompt disappears and no action occurs.-cancel := Escape--# The program to use to play a wav file. This is only used with the "Dale"-# command, which is an easter egg.-audio_play_cmd := aplay-

.config/ag/wingo/kodos/scripts/dzen-workspaces/README.md

deleted file mode 100644@@ -1,23 +0,0 @@-Description-===========-dzen-workspaces listens to events from Wingo and emits a dzen formatted string -whenever there is a change. The formatting is configurable and is based on the -kind of workspace: current, visible, hidden or empty.---Example-=======-In your `Autostart` hook:--    startup := Shell "dzen2 -dock | ~/.config/wingo/scripts/dzen-workspaces/dzen-workspaces"--The formatting options can be changed in--    ~/.config/wingo/scripts/dzen-workspaces/dzen-workspaces.cfg---Dependencies-============-* pywingo-* dzen2-

.config/ag/wingo/kodos/scripts/dzen-workspaces/dzen-workspaces

deleted file mode 100755@@ -1,45 +0,0 @@-#!/home/kait/.pyx11/bin/python--import sys--import pywingo--W = pywingo.Wingo()--cfg = W.LoadConfig()-markup = {}-for k in ('current', 'visible', 'hidden', 'empty'):-    markup[k] = cfg.get('fmt', k, raw=True)---@W.bind('AddedWorkspace')-@W.bind('RemovedWorkspace')-@W.bind('ChangedWorkspace')-@W.bind('ChangedVisibleWorkspace')-@W.bind('ChangedWorkspaceNames')-@W.bind('ManagedClient')-@W.bind('UnmanagedClient')-@W.bind('Subscribed')-def show(_):-    current = W.GetWorkspace()-    visible = W.GetVisibleWorkspaceList()-    hidden = W.GetHiddenWorkspaceList()--    vtagged = []-    for space in visible:-        if space == current:-            vtagged.append(markup['current'] % space)-        else:-            vtagged.append(markup['visible'] % space)-    htagged = []-    for space in hidden:-        if W.IsEmpty(space):-            htagged.append(markup['empty'] % space)-        else:-            htagged.append(markup['hidden'] % space)--    print('[%s] %s' % (' '.join(vtagged), ' '.join(htagged)))-    sys.stdout.flush()---W.loop()

.config/ag/wingo/kodos/scripts/dzen-workspaces/dzen-workspaces.cfg

deleted file mode 100644@@ -1,5 +0,0 @@-[fmt]-current = ^fg(#18B218)%s^fg()-visible = ^fg(#FF0000)%s^fg()-hidden = ^fg(#FFA500)%s^fg()-empty = ^fg(#000)%s^fg()

.config/ag/wingo/kodos/scripts/growto

deleted file mode 100755@@ -1,105 +0,0 @@-#!/usr/bin/env python2--import sys--import pywingo--if len(sys.argv) != 2 or sys.argv[1] not in ('top', 'bot', 'left', 'right'):-    print >> sys.stderr, 'Usage: growto (top | bot | left | right)'-    sys.exit(1)--def edges(client):-    '''-    Returns a dictionary of edges for the given client.-    '''-    eleft, etop = W.GetClientX(client), W.GetClientY(client)-    w, h = W.GetClientWidth(client), W.GetClientHeight(client)-    eright, ebot = eleft + w, etop + h-    return {-        'left': eleft, 'top': etop,-        'right': eright, 'bot': ebot,-    }--def flatten(lst):-    '''-    Flattens a list: [[a]] -> [a].-    '''-    flattened = []-    for sublst in lst:-        for x in sublst:-            flattened.append(x)-    return flattened--def newpos(vertical, order, default, include):-    '''-    Finds a new edge for the client from a list of edges corresponding-    to all relevant surfaces.--    `vertical` should be True if the client is moving/growing/shrinking in-    a vertical direction (top/bot). Should be False otherwise.--    `order` should either be `min` or `max`, and is used to retrieve the-    next edge to move/grow/shrink to from a list of candidate edges.--    `default` is the edge of last resort if no other edges were found.-    It is also used as a min/max depending on `order`.-    (e.g., the head boundary.)--    `include` is the comparison criterion for edges. It should return-    True if the given edge is a possible choice.-    (e.g., all edges less than the active client's left edge when-           growing in the left direction.)-    '''-    def extract(edges):-        if vertical:-            return [edges['top'], edges['bot']]-        else:-            return [edges['left'], edges['right']]-    candidates = filter(include, flatten(map(extract, alledges)))-    return order(default, order(candidates) if candidates else default)--# Initialization. Connect and grab the edges/geometry of the active client.-direction = sys.argv[1]-W = pywingo.Wingo()--win = W.GetActive()-if not W.MatchClientMapped(win):-    print >> sys.stderr, 'Window %d is not visible' % win-    sys.exit(1)-wine = edges(win)-wine_width = wine['right'] - wine['left']-wine_height = wine['bot'] - wine['top']--# Find the geometry of the active head and compute the edges for all-# clients on the head.-wrk = W.GetClientWorkspace(win)-head = W.WorkspaceHead(wrk)-headw, headh = W.GetHeadWidth(head), W.GetHeadHeight(head)-clients = filter(lambda c: W.MatchClientMapped(c), W.GetClientList(wrk))-alledges = []-for c in clients:-    if c == win:-        continue-    alledges.append(edges(c))--if direction == 'top':-    newtop = newpos(True, max, 0, lambda e: e < wine['top'])--    W.MoveRelative(win, wine['left'], newtop)-    W.Resize(win, wine_width, wine_height + wine['top'] - newtop)-elif direction == 'left':-    newleft = newpos(False, max, 0, lambda e: e < wine['left'])--    W.MoveRelative(win, newleft, wine['top'])-    W.Resize(win, wine_width + wine['left'] - newleft, wine_height)-elif direction == 'bot':-    newbot = newpos(True, min, headh, lambda e: e > wine['bot'])--    W.Resize(win, wine_width, newbot - wine['top'])-elif direction == 'right':-    newright = newpos(False, min, headw, lambda e: e > wine['right'])--    W.Resize(win, newright - wine['left'], wine_height)-else:-    assert False, 'bug'-

.config/ag/wingo/kodos/scripts/newproject/README.md

deleted file mode 100644@@ -1,20 +0,0 @@-Description-===========-newproject prompts the user for a project name, and creates N workspaces with -the names {name}1, {name}2, ..., {name}N where N is the number of monitors -active on your system.---Example-=======-In your `key.wini`:--  Mod4-p := Script "newproject"--Then type in the desired project name.---Dependencies-============-* pywingo-

.config/ag/wingo/kodos/scripts/newproject/newproject

deleted file mode 100755@@ -1,16 +0,0 @@-#!/home/andrew/.pyx11/bin/python--import pywingo--W = pywingo.Wingo()--prefix = W.Input('Project name: ')-if len(prefix) == 0:-    exit(0)--for i in xrange(W.GetNumHeads()):-    name = '%s%d' % (prefix, i + 1)-    W.HeadFocus(i)-    W.AddWorkspace(name)-    W.Workspace(name)-

.config/ag/wingo/kodos/scripts/nexthead

deleted file mode 100755@@ -1,13 +0,0 @@-#!/home/andrew/.pyx11/bin/python--import pywingo--W = pywingo.Wingo()--cur_head = W.GetHead()-cur_client = W.GetActive()--next_head = (cur_head + 1) % W.GetNumHeads()--W.HeadFocusWithClient(next_head, cur_client)-

.config/ag/wingo/kodos/scripts/transparency

deleted file mode 100755@@ -1,47 +0,0 @@-#!/home/andrew/.pyx11/bin/python--import atexit--import pywingo--# The transparency to use for unfocused and focused clients.-# 1 is completely opaque and 0 is completely transparent.-alpha = {-    'unfocused': 0.85,-    'focused': 1.0,-}--# Does the initial connection with Wingo. `W` can now be used to run commands.-W = pywingo.Wingo()--# Use Python decorators to bind functions to specific events.-@W.bind('FocusedClient')-def focused(ev):-    W.SetOpacity(ev.Id, alpha['focused'])--@W.bind('UnfocusedClient')-def focused(ev):-    W.SetOpacity(ev.Id, alpha['unfocused'])--# Set the transparency of all clients upon subscription.-@W.bind('Subscribed')-def startup(ev):-    active = W.GetActive()-    for cid in W.GetAllNormalClients():-        if cid == active:-            W.SetOpacity(cid, alpha['focused'])-        else:-            W.SetOpacity(cid, alpha['unfocused'])--# Use the special `atexit.register` decoration in the Python standard-# library to do any clean up if your program quits.-@atexit.register-def shutdown():-    # If the program quits unexpectedly, return opacity-    # to normal levels.-    for cid in W.GetAllNormalClients():-        W.SetOpacity(cid, 1.0)--# Start the main event loop. This should be the last thing in your program.-W.loop()-

.config/ag/wingo/kodos/theme.wini

deleted file mode 100644@@ -1,65 +0,0 @@-$THIN_COLOR := 0x585a5d-$BLUE := 0x3366ff-$ORANGE := 0xff7f00-$GREY := 0xdfdcdf-$PURPLE := 0xff00ff--[Prompt]-bg_color := 0x8e8e8e-border_color := 0x585a5d-border_size := 10-padding := 15-font := /usr/share/fonts/TTF/DejaVuSansMono.ttf-font_size := 17-font_color := 0xffffff-select_active_color := 0x4c4c4c-select_active_bg_color := 0xffffff-select_group_bg_color := 0x8e8e8e-select_group_font := /usr/share/fonts/TTF/DejaVuSansMono-Bold.ttf-select_group_font_size := 25-select_group_font_color := 0xffffff-cycle_icon_size := 100-cycle_icon_border_size := 10-cycle_icon_transparency := 30--[Misc]-default_icon := ./data/wingo.png--[Full]-font := /usr/share/fonts/TTF/DejaVuSansMono-Bold.ttf-font_size := 17-a_font_color := 0xffffff-i_font_color := 0x000000--title_size := 30-a_title_color := 0xd66b00 0xff9123-i_title_color := 0xffffff--close := ./data/close.png-a_close_color := 0xffffff-i_close_color := 0x000000--maximize := ./data/maximize.png-a_maximize_color := 0xffffff-i_maximize_color := 0x000000--minimize := ./data/minimize.png-a_minimize_color := 0xffffff-i_minimize_color := 0x000000--border_size := 4-a_border_color := $THIN_COLOR-i_border_color := $THIN_COLOR--[Borders]-border_size := 4-a_thin_color := $THIN_COLOR-i_thin_color := $THIN_COLOR-a_border_color := $ORANGE-i_border_color := $GREY--[Slim]-border_size := 1-a_border_color := 0x000000-i_border_color := 0x000000-

.config/ag/wingo/krusty/hooks.wini

deleted file mode 100644@@ -1,39 +0,0 @@-# [NoDecor] -# match := MatchClientClass ":client:" "google-chrome" -#  -# managed := FrameNada ":client:" --[ForceFloating]-match := MatchClientClass ":client:" "gimp"--managed := ToggleFloating ":client:"--[Resize]-match := MatchClientClass ":client:" "konsole"--managed := Resize ":client:" 0.6 0.6-managed := Move (GetActive) 0.2 0.2--[FocusTransparency]-# If you have a compositing manager running, this will use transparency-# to indicate focus.-match := True--focused := SetOpacity ":client:" 1.0-unfocused := SetOpacity ":client:" 0.85--[Autostart]-match := True--# You can add startup programs here if you like.-#startup := Shell "xterm"--# You can add more by just adding another definition of "startup".-#startup := Shell "gkrellm"--[Dale]-# Dale is an easter egg.-# Use "match := False" to disable. Or delete it. Whatever.-match := False--startup := Dale

.config/ag/wingo/krusty/key.wini

deleted file mode 100644@@ -1,143 +0,0 @@-[Global]-Mod4-Shift-r := WingoExec (Input "Wingo command:")-Mod4-Shift-h := WingoHelp (Input "Wingo command name:")-Mod4-Shift-s := Script (Input "Script command:")--Mod4-c := Close (GetActive)-Mod4-x := ToggleMaximize (GetActive)-Mod4-i := ToggleIconify (GetActive)-# Mod1-up := ToggleStackAbove (GetActive)-# Mod1-down := ToggleStackBelow (GetActive)-Mod1-f := ToggleFloating (GetActive)--Mod1-Shift-t := Move (GetActive) 0.2 0.2-Mod1-Shift-t := Resize (GetActive) 0.6 0.6--Mod4-left := Move (GetActive) 0 0-Mod4-left := Resize (GetActive) 0.5 1.0-Mod4-Shift-left := Move (GetActive) 0 0-Mod4-Shift-left := Resize (GetActive) 0.25 1.0-Mod4-right := Move (GetActive) 0.5 0-Mod4-right := Resize (GetActive) 0.5 1.0-Mod4-Shift-right := Move (GetActive) 0.75 0-Mod4-Shift-right := Resize (GetActive) 0.25 1.0-Mod4-up := Move (GetActive) 0 0-Mod4-up := Resize (GetActive) 1.0 0.5-Mod4-Shift-up := Move (GetActive) 0 0-Mod4-Shift-up := Resize (GetActive) 1.0 0.25-Mod4-down := Move (GetActive) 0 0.5-Mod4-down := Resize (GetActive) 1.0 0.5-Mod4-Shift-down := Move (GetActive) 0 0.75-Mod4-Shift-down := Resize (GetActive) 1.0 0.25--Mod1-a := AutoTile (GetWorkspace)-Mod1-u := AutoUntile (GetWorkspace)-Mod1-z := SetLayout (GetWorkspace) "Horizontal"-Mod1-Shift-z := SetLayout (GetWorkspace) "Vertical"-Mod1-h := AutoResizeMaster (GetWorkspace) -0.02-Mod1-l := AutoResizeMaster (GetWorkspace) 0.02-Mod1-b := AutoResizeWindow (GetWorkspace) -0.02-Mod1-n := AutoResizeWindow (GetWorkspace) 0.02-Mod1-k := AutoNext (GetWorkspace)-Mod1-j := AutoPrev (GetWorkspace)-Mod1-Shift-k := AutoSwitchNext (GetWorkspace)-Mod1-Shift-j := AutoSwitchPrev (GetWorkspace)-Mod1-m := AutoMaster (GetWorkspace)-Mod1-Shift-return := AutoMakeMaster (GetWorkspace)-Mod1-comma := AutoMastersFewer (GetWorkspace)-Mod1-period := AutoMastersMore (GetWorkspace)--Mod4-Shift-l := SetLayout (GetWorkspace) (Input "Layout name:")--Mod1-w := MovePointerRelative 0 0-Mod1-w := HeadFocus 0--Mod1-e := MovePointerRelative 0 0-Mod1-e := HeadFocus 1--Mod1-r := MovePointerRelative 0 0-Mod1-r := HeadFocus 2--Mod1-Shift-w := MovePointerRelative 0 0-Mod1-Shift-w := MovePointerRelative 0 0-Mod1-Shift-w := MovePointerRelative 0 0-Mod1-Shift-w := MovePointerRelative 0 0-Mod1-Shift-w := MovePointerRelative 0 0-Mod1-Shift-w := MovePointerRelative 0 0-Mod1-Shift-w := MovePointerRelative 0 0-Mod1-Shift-w := MovePointerRelative 0 0-Mod1-Shift-w := MovePointerRelative 0 0-Mod1-Shift-w := MovePointerRelative 0 0-Mod1-Shift-w := HeadFocusWithClient 0 (GetActive)--Mod1-Shift-e := MovePointerRelative 0 0-Mod1-Shift-e := MovePointerRelative 0 0-Mod1-Shift-e := MovePointerRelative 0 0-Mod1-Shift-e := MovePointerRelative 0 0-Mod1-Shift-e := MovePointerRelative 0 0-Mod1-Shift-e := MovePointerRelative 0 0-Mod1-Shift-e := MovePointerRelative 0 0-Mod1-Shift-e := MovePointerRelative 0 0-Mod1-Shift-e := MovePointerRelative 0 0-Mod1-Shift-e := MovePointerRelative 0 0-Mod1-Shift-e := HeadFocusWithClient 1 (GetActive)--Mod1-Shift-r := MovePointerRelative 0 0-Mod1-Shift-r := MovePointerRelative 0 0-Mod1-Shift-r := MovePointerRelative 0 0-Mod1-Shift-r := MovePointerRelative 0 0-Mod1-Shift-r := MovePointerRelative 0 0-Mod1-Shift-r := MovePointerRelative 0 0-Mod1-Shift-r := MovePointerRelative 0 0-Mod1-Shift-r := MovePointerRelative 0 0-Mod1-Shift-r := MovePointerRelative 0 0-Mod1-Shift-r := MovePointerRelative 0 0-Mod1-Shift-r := HeadFocusWithClient 2 (GetActive)--Mod1-1 := WorkspaceGreedy "1"-Mod1-2 := WorkspaceGreedy "2"-Mod1-3 := WorkspaceGreedy "3"-Mod1-4 := WorkspaceGreedy "4"-Mod1-5 := WorkspaceGreedy "5"-Mod1-6 := WorkspaceGreedy "6"--Mod4-Shift-a := Workspace (AddWorkspace (Input "New workspace name:"))-Mod4-shift-d := RemoveWorkspace (SelectWorkspace "Prefix")-Mod4-BackSpace := RemoveWorkspace (GetWorkspace)--Mod1-Tab := CycleClientNext "yes" "no" "yes"-Mod1-Shift-Tab := CycleClientPrev "yes" "no" "yes"--Mod4-space := FocusRaise (SelectClient "Any" "no" "no" "yes")-Mod4-return := WorkspaceGreedy (SelectWorkspace "Prefix")-Mod4-Shift-return := WorkspaceGreedyWithClient \-                       (SelectWorkspace "Prefix") \-                       (GetActive)--Control-Mod1-a := Workspace (GetWorkspacePrefix "a")-Control-Mod1-b := Workspace (GetWorkspacePrefix "b")-Control-Mod1-c := Workspace (GetWorkspacePrefix "c")-Control-Mod1-d := Workspace (GetWorkspacePrefix "d")-Control-Mod1-e := Workspace (GetWorkspacePrefix "e")-Control-Mod1-f := Workspace (GetWorkspacePrefix "f")-Control-Mod1-g := Workspace (GetWorkspacePrefix "g")-Control-Mod1-h := Workspace (GetWorkspacePrefix "h")-Control-Mod1-i := Workspace (GetWorkspacePrefix "i")-Control-Mod1-j := Workspace (GetWorkspacePrefix "j")-Control-Mod1-k := Workspace (GetWorkspacePrefix "k")-Control-Mod1-l := Workspace (GetWorkspacePrefix "l")-Control-Mod1-m := Workspace (GetWorkspacePrefix "m")-Control-Mod1-n := Workspace (GetWorkspacePrefix "n")-Control-Mod1-o := Workspace (GetWorkspacePrefix "o")-Control-Mod1-p := Workspace (GetWorkspacePrefix "p")-Control-Mod1-q := Workspace (GetWorkspacePrefix "q")-Control-Mod1-r := Workspace (GetWorkspacePrefix "r")-Control-Mod1-s := Workspace (GetWorkspacePrefix "s")-Control-Mod1-t := Workspace (GetWorkspacePrefix "t")-Control-Mod1-u := Workspace (GetWorkspacePrefix "u")-Control-Mod1-v := Workspace (GetWorkspacePrefix "v")-Control-Mod1-w := Workspace (GetWorkspacePrefix "w")-Control-Mod1-x := Workspace (GetWorkspacePrefix "x")-Control-Mod1-y := Workspace (GetWorkspacePrefix "y")-Control-Mod1-z := Workspace (GetWorkspacePrefix "z")-

.config/ag/wingo/krusty/mouse.wini

deleted file mode 100644@@ -1,118 +0,0 @@-$OPACITY_UP := Shell "transset-df -p --max 1.0 --inc 0.05"-$OPACITY_DOWN := Shell "transset-df -p --min 0.1 --dec 0.05"--[Root]-1 := Focus ":mouse:"--[Client]-1 := FocusRaise ":mouse:"--[Frame]-Mod4-1 := MouseMove-Mod4-3 := MouseResize "Infer"-Mod4-4 up := $OPACITY_UP-Mod4-5 up := $OPACITY_DOWN--[FullIcon]-1 := MouseMove-1 := FocusRaise ":mouse:"-3 := MouseResize "Infer"-Mod4-4 up := $OPACITY_UP-Mod4-5 up := $OPACITY_DOWN--[FullTitleText]-1 := MouseMove-1 := FocusRaise ":mouse:"-3 := MouseResize "Infer"-Mod4-4 up := $OPACITY_UP-Mod4-5 up := $OPACITY_DOWN--[FullTitleBar]-1 := MouseMove-1 := FocusRaise ":mouse:"-3 := MouseResize "Infer"-Mod4-4 up := $OPACITY_UP-Mod4-5 up := $OPACITY_DOWN--[FullClose]-1 up := Close ":mouse:"-Mod4-4 up := $OPACITY_UP-Mod4-5 up := $OPACITY_DOWN--[FullMaximize]-1 up := ToggleMaximize ":mouse:"-Mod4-4 up := $OPACITY_UP-Mod4-5 up := $OPACITY_DOWN--[FullMinimize]-1 up := ToggleIconify ":mouse:"-Mod4-4 up := $OPACITY_UP-Mod4-5 up := $OPACITY_DOWN--[FullTop]-1 := MouseResize "Top"-1 down := FocusRaise ":mouse:"--[FullTitleBottom]-1 down := FocusRaise ":mouse:"--[FullBottom]-1 := MouseResize "Bottom"-1 down := FocusRaise ":mouse:"--[FullLeft]-1 := MouseResize "Left"-1 down := FocusRaise ":mouse:"--[FullRight]-1 := MouseResize "Right"-1 down := FocusRaise ":mouse:"--[FullTopLeft]-1 := MouseResize "TopLeft"-1 down := FocusRaise ":mouse:"--[FullTopRight]-1 := MouseResize "TopRight"-1 down := FocusRaise ":mouse:"--[FullBottomLeft]-1 := MouseResize "BottomLeft"-1 down := FocusRaise ":mouse:"--[FullBottomRight]-1 := MouseResize "BottomRight"-1 down := FocusRaise ":mouse:"--[BordersTop]-1 := MouseResize "Top"-1 down := FocusRaise ":mouse:"--[BordersBottom]-1 := MouseResize "Bottom"-1 down := FocusRaise ":mouse:"--[BordersLeft]-1 := MouseResize "Left"-1 down := FocusRaise ":mouse:"--[BordersRight]-1 := MouseResize "Right"-1 down := FocusRaise ":mouse:"--[BordersTopLeft]-1 := MouseResize "TopLeft"-1 down := FocusRaise ":mouse:"--[BordersTopRight]-1 := MouseResize "TopRight"-1 down := FocusRaise ":mouse:"--[BordersBottomLeft]-1 := MouseResize "BottomLeft"-1 down := FocusRaise ":mouse:"--[BordersBottomRight]-1 := MouseResize "BottomRight"-1 down := FocusRaise ":mouse:"-

.config/ag/wingo/krusty/options.wini

deleted file mode 100644@@ -1,57 +0,0 @@-[Options]-# The list of workspaces to set upon startup. Workspaces can be added or-# removed while Wingo is running.-workspaces := 1 2 3 4 mail browser text s1 s2 s3 doc--# The default layout that is used in a particular workspace. Currently, the-# only available layouts are: Floating, Vertical or Horizontal.-# Setting this to something other than a Floating layout effectively turns-# Wingo into a tiling window manager.-default_layout := Floating--# When enabled, windows will be focused when the mouse enters the window.-# N.B. I don't use focus follows mouse, so I'm not sure precisely how it-# should work. If I've messed up, file a bug report.-focus_follows_mouse := no--# If enabled, head focus will follow the mouse. That is, moving the mouse to-# another monitor will move the focus to the workspace on that monitor.-# Note that this does not require that "focus_follows_mouse" be enabled;-# however this only works when the mouse is directly over the root window.-# (So enabling this option might be weight if "focus_follows_mouse" is-# disabled.)-#-# N.B. It is possible that this could have an effect on performance, since-# all pointer motion events on the root window must be inspected.-focus_follows_mouse_head := no--# Whether error messages should be shown or not. Error messages typically-# show up when you've tried to do something illegal with one of Wingo's-# commands.-# Error messages acquire focus and do not disappear until they lose focus, or-# if the "confirm" or "cancel" keys have been pressed.-show_popup_errors := yes--# Whether FYI messages should be shown or not. These are typically used to-# indicate state changes, like when a the current workspace is changed.-# Note that FYI messages only appear for a set amount of time (see "popup_time"-# below) and then disappear. They never acquire focus.-show_popup_fyi := yes--# The time that an "FYI" message window stays visible in milliseconds.-# After time expires, the message disappears.-popup_time := 500--# The key that acts as the "confirm" key. This is mostly used in prompts. When-# the confirm key is pressed, the prompt will execute an action corresponding-# to the inputted text or the selected item.-confirm := Return--# The key that acts as the "cancel" key. This is mostly used in prompts. When-# the cancel key is pressed, the prompt disappears and no action occurs.-cancel := Escape--# The program to use to play a wav file. This is only used with the "Dale"-# command, which is an easter egg.-audio_play_cmd := aplay-

.config/ag/wingo/krusty/scripts/dzen-workspaces/README.md

deleted file mode 100644@@ -1,23 +0,0 @@-Description-===========-dzen-workspaces listens to events from Wingo and emits a dzen formatted string -whenever there is a change. The formatting is configurable and is based on the -kind of workspace: current, visible, hidden or empty.---Example-=======-In your `Autostart` hook:--    startup := Shell "dzen2 -dock | ~/.config/wingo/scripts/dzen-workspaces/dzen-workspaces"--The formatting options can be changed in--    ~/.config/wingo/scripts/dzen-workspaces/dzen-workspaces.cfg---Dependencies-============-* pywingo-* dzen2-

.config/ag/wingo/krusty/scripts/dzen-workspaces/dzen-workspaces

deleted file mode 100755@@ -1,44 +0,0 @@-#!/home/andrew/.pyx11/bin/python--import sys--import pywingo--W = pywingo.Wingo()--cfg = W.LoadConfig()-markup = {}-for k in ('current', 'visible', 'hidden', 'empty'):-    markup[k] = cfg.get('fmt', k)---@W.bind('AddedWorkspace')-@W.bind('RemovedWorkspace')-@W.bind('ChangedWorkspace')-@W.bind('ChangedVisibleWorkspace')-@W.bind('ChangedWorkspaceNames')-@W.bind('ManagedClient')-@W.bind('UnmanagedClient')-@W.bind('Subscribed')-def show(_):-    current = W.GetWorkspace()-    visible = W.GetVisibleWorkspaceList()-    hidden = W.GetHiddenWorkspaceList()--    vtagged = []-    for space in visible:-        if space == current:-            vtagged.append(markup['current'] % space)-        else:-            vtagged.append(markup['visible'] % space)-    htagged = []-    for space in hidden:-        if W.IsEmpty(space):-            htagged.append(markup['empty'] % space)-        else:-            htagged.append(markup['hidden'] % space)--    print '[%s] %s' % (' '.join(vtagged), ' '.join(htagged))-    sys.stdout.flush()--W.loop()

.config/ag/wingo/krusty/scripts/dzen-workspaces/dzen-workspaces.cfg

deleted file mode 100644@@ -1,5 +0,0 @@-[fmt]-current = ^fg(#18B218)%s^fg()-visible = ^fg(#FF0000)%s^fg()-hidden = ^fg(#FFA500)%s^fg()-empty = ^fg(#000)%s^fg()

.config/ag/wingo/krusty/scripts/growto

deleted file mode 100755@@ -1,105 +0,0 @@-#!/usr/bin/env python2--import sys--import pywingo--if len(sys.argv) != 2 or sys.argv[1] not in ('top', 'bot', 'left', 'right'):-    print >> sys.stderr, 'Usage: growto (top | bot | left | right)'-    sys.exit(1)--def edges(client):-    '''-    Returns a dictionary of edges for the given client.-    '''-    eleft, etop = W.GetClientX(client), W.GetClientY(client)-    w, h = W.GetClientWidth(client), W.GetClientHeight(client)-    eright, ebot = eleft + w, etop + h-    return {-        'left': eleft, 'top': etop,-        'right': eright, 'bot': ebot,-    }--def flatten(lst):-    '''-    Flattens a list: [[a]] -> [a].-    '''-    flattened = []-    for sublst in lst:-        for x in sublst:-            flattened.append(x)-    return flattened--def newpos(vertical, order, default, include):-    '''-    Finds a new edge for the client from a list of edges corresponding-    to all relevant surfaces.--    `vertical` should be True if the client is moving/growing/shrinking in-    a vertical direction (top/bot). Should be False otherwise.--    `order` should either be `min` or `max`, and is used to retrieve the-    next edge to move/grow/shrink to from a list of candidate edges.--    `default` is the edge of last resort if no other edges were found.-    It is also used as a min/max depending on `order`.-    (e.g., the head boundary.)--    `include` is the comparison criterion for edges. It should return-    True if the given edge is a possible choice.-    (e.g., all edges less than the active client's left edge when-           growing in the left direction.)-    '''-    def extract(edges):-        if vertical:-            return [edges['top'], edges['bot']]-        else:-            return [edges['left'], edges['right']]-    candidates = filter(include, flatten(map(extract, alledges)))-    return order(default, order(candidates) if candidates else default)--# Initialization. Connect and grab the edges/geometry of the active client.-direction = sys.argv[1]-W = pywingo.Wingo()--win = W.GetActive()-if not W.MatchClientMapped(win):-    print >> sys.stderr, 'Window %d is not visible' % win-    sys.exit(1)-wine = edges(win)-wine_width = wine['right'] - wine['left']-wine_height = wine['bot'] - wine['top']--# Find the geometry of the active head and compute the edges for all-# clients on the head.-wrk = W.GetClientWorkspace(win)-head = W.WorkspaceHead(wrk)-headw, headh = W.GetHeadWidth(head), W.GetHeadHeight(head)-clients = filter(lambda c: W.MatchClientMapped(c), W.GetClientList(wrk))-alledges = []-for c in clients:-    if c == win:-        continue-    alledges.append(edges(c))--if direction == 'top':-    newtop = newpos(True, max, 0, lambda e: e < wine['top'])--    W.MoveRelative(win, wine['left'], newtop)-    W.Resize(win, wine_width, wine_height + wine['top'] - newtop)-elif direction == 'left':-    newleft = newpos(False, max, 0, lambda e: e < wine['left'])--    W.MoveRelative(win, newleft, wine['top'])-    W.Resize(win, wine_width + wine['left'] - newleft, wine_height)-elif direction == 'bot':-    newbot = newpos(True, min, headh, lambda e: e > wine['bot'])--    W.Resize(win, wine_width, newbot - wine['top'])-elif direction == 'right':-    newright = newpos(False, min, headw, lambda e: e > wine['right'])--    W.Resize(win, newright - wine['left'], wine_height)-else:-    assert False, 'bug'-

.config/ag/wingo/krusty/scripts/newproject/README.md

deleted file mode 100644@@ -1,20 +0,0 @@-Description-===========-newproject prompts the user for a project name, and creates N workspaces with -the names {name}1, {name}2, ..., {name}N where N is the number of monitors -active on your system.---Example-=======-In your `key.wini`:--  Mod4-p := Script "newproject"--Then type in the desired project name.---Dependencies-============-* pywingo-

.config/ag/wingo/krusty/scripts/newproject/newproject

deleted file mode 100755@@ -1,16 +0,0 @@-#!/home/andrew/.pyx11/bin/python--import pywingo--W = pywingo.Wingo()--prefix = W.Input('Project name: ')-if len(prefix) == 0:-    exit(0)--for i in xrange(W.GetNumHeads()):-    name = '%s%d' % (prefix, i + 1)-    W.HeadFocus(i)-    W.AddWorkspace(name)-    W.Workspace(name)-

.config/ag/wingo/krusty/scripts/nexthead

deleted file mode 100755@@ -1,13 +0,0 @@-#!/home/andrew/.pyx11/bin/python--import pywingo--W = pywingo.Wingo()--cur_head = W.GetHead()-cur_client = W.GetActive()--next_head = (cur_head + 1) % W.GetNumHeads()--W.HeadFocusWithClient(next_head, cur_client)-

.config/ag/wingo/krusty/scripts/transparency

deleted file mode 100755@@ -1,47 +0,0 @@-#!/home/andrew/.pyx11/bin/python--import atexit--import pywingo--# The transparency to use for unfocused and focused clients.-# 1 is completely opaque and 0 is completely transparent.-alpha = {-    'unfocused': 0.85,-    'focused': 1.0,-}--# Does the initial connection with Wingo. `W` can now be used to run commands.-W = pywingo.Wingo()--# Use Python decorators to bind functions to specific events.-@W.bind('FocusedClient')-def focused(ev):-    W.SetOpacity(ev.Id, alpha['focused'])--@W.bind('UnfocusedClient')-def focused(ev):-    W.SetOpacity(ev.Id, alpha['unfocused'])--# Set the transparency of all clients upon subscription.-@W.bind('Subscribed')-def startup(ev):-    active = W.GetActive()-    for cid in W.GetAllNormalClients():-        if cid == active:-            W.SetOpacity(cid, alpha['focused'])-        else:-            W.SetOpacity(cid, alpha['unfocused'])--# Use the special `atexit.register` decoration in the Python standard-# library to do any clean up if your program quits.-@atexit.register-def shutdown():-    # If the program quits unexpectedly, return opacity-    # to normal levels.-    for cid in W.GetAllNormalClients():-        W.SetOpacity(cid, 1.0)--# Start the main event loop. This should be the last thing in your program.-W.loop()-

.config/ag/wingo/krusty/theme.wini

deleted file mode 100644@@ -1,65 +0,0 @@-$THIN_COLOR := 0x585a5d-$BLUE := 0x3366ff-$ORANGE := 0xff7f00-$GREY := 0xdfdcdf-$PURPLE := 0xff00ff--[Prompt]-bg_color := 0x8e8e8e-border_color := 0x585a5d-border_size := 10-padding := 15-font := /usr/share/fonts/TTF/DejaVuSansMono.ttf-font_size := 17-font_color := 0xffffff-select_active_color := 0x4c4c4c-select_active_bg_color := 0xffffff-select_group_bg_color := 0x8e8e8e-select_group_font := /usr/share/fonts/TTF/DejaVuSansMono-Bold.ttf-select_group_font_size := 25-select_group_font_color := 0xffffff-cycle_icon_size := 100-cycle_icon_border_size := 10-cycle_icon_transparency := 30--[Misc]-default_icon := ./data/wingo.png--[Full]-font := /usr/share/fonts/TTF/DejaVuSansMono-Bold.ttf-font_size := 17-a_font_color := 0xffffff-i_font_color := 0x000000--title_size := 30-a_title_color := 0xd66b00 0xff9123-i_title_color := 0xffffff--close := ./data/close.png-a_close_color := 0xffffff-i_close_color := 0x000000--maximize := ./data/maximize.png-a_maximize_color := 0xffffff-i_maximize_color := 0x000000--minimize := ./data/minimize.png-a_minimize_color := 0xffffff-i_minimize_color := 0x000000--border_size := 4-a_border_color := $THIN_COLOR-i_border_color := $THIN_COLOR--[Borders]-border_size := 4-a_thin_color := $THIN_COLOR-i_thin_color := $THIN_COLOR-a_border_color := $ORANGE-i_border_color := $GREY--[Slim]-border_size := 1-a_border_color := 0x000000-i_border_color := 0x000000-

.config/ag/wingo/nas2/hooks.wini

new file mode 100644@@ -0,0 +1,39 @@+# [NoDecor] +# match := MatchClientClass ":client:" "google-chrome" +#  +# managed := FrameNada ":client:" ++[ForceFloating]+match := MatchClientClass ":client:" "gimp"++managed := ToggleFloating ":client:"++[Resize]+match := MatchClientClass ":client:" "konsole"++managed := Resize ":client:" 0.6 0.6+managed := Move (GetActive) 0.2 0.2++[FocusTransparency]+# If you have a compositing manager running, this will use transparency+# to indicate focus.+match := True++focused := SetOpacity ":client:" 1.0+unfocused := SetOpacity ":client:" 0.85++[Autostart]+match := True++# You can add startup programs here if you like.+#startup := Shell "xterm"++# You can add more by just adding another definition of "startup".+#startup := Shell "gkrellm"++[Dale]+# Dale is an easter egg.+# Use "match := False" to disable. Or delete it. Whatever.+match := False++startup := Dale

.config/ag/wingo/nas2/key.wini

new file mode 100644@@ -0,0 +1,143 @@+[Global]+Mod4-Shift-r := WingoExec (Input "Wingo command:")+Mod4-Shift-h := WingoHelp (Input "Wingo command name:")+Mod4-Shift-s := Script (Input "Script command:")++Mod4-c := Close (GetActive)+Mod4-x := ToggleMaximize (GetActive)+Mod4-i := ToggleIconify (GetActive)+# Mod1-up := ToggleStackAbove (GetActive)+# Mod1-down := ToggleStackBelow (GetActive)+Mod1-f := ToggleFloating (GetActive)++Mod1-Shift-t := Move (GetActive) 0.2 0.2+Mod1-Shift-t := Resize (GetActive) 0.6 0.6++Mod4-left := Move (GetActive) 0.00001 0+Mod4-left := Resize (GetActive) 0.5 1.0+Mod4-Shift-left := Move (GetActive) 0.00001 0+Mod4-Shift-left := Resize (GetActive) 0.25 1.0+Mod4-right := Move (GetActive) 0.5 0+Mod4-right := Resize (GetActive) 0.5 1.0+Mod4-Shift-right := Move (GetActive) 0.75 0+Mod4-Shift-right := Resize (GetActive) 0.25 1.0+Mod4-up := Move (GetActive) 0.00001 0+Mod4-up := Resize (GetActive) 1.0 0.5+Mod4-Shift-up := Move (GetActive) 0.00001 0+Mod4-Shift-up := Resize (GetActive) 1.0 0.25+Mod4-down := Move (GetActive) 0.00001 0.5+Mod4-down := Resize (GetActive) 1.0 0.5+Mod4-Shift-down := Move (GetActive) 0.00001 0.75+Mod4-Shift-down := Resize (GetActive) 1.0 0.25++Mod1-a := AutoTile (GetWorkspace)+Mod1-u := AutoUntile (GetWorkspace)+Mod1-z := SetLayout (GetWorkspace) "Horizontal"+Mod1-Shift-z := SetLayout (GetWorkspace) "Vertical"+Mod1-h := AutoResizeMaster (GetWorkspace) -0.02+Mod1-l := AutoResizeMaster (GetWorkspace) 0.02+Mod1-b := AutoResizeWindow (GetWorkspace) -0.02+Mod1-n := AutoResizeWindow (GetWorkspace) 0.02+Mod1-k := AutoNext (GetWorkspace)+Mod1-j := AutoPrev (GetWorkspace)+Mod1-Shift-k := AutoSwitchNext (GetWorkspace)+Mod1-Shift-j := AutoSwitchPrev (GetWorkspace)+Mod1-m := AutoMaster (GetWorkspace)+Mod1-Shift-return := AutoMakeMaster (GetWorkspace)+Mod1-comma := AutoMastersFewer (GetWorkspace)+Mod1-period := AutoMastersMore (GetWorkspace)++Mod4-Shift-l := SetLayout (GetWorkspace) (Input "Layout name:")++Mod1-w := MovePointerRelative 0 0+Mod1-w := HeadFocus 0++Mod1-e := MovePointerRelative 0 0+Mod1-e := HeadFocus 1++Mod1-r := MovePointerRelative 0 0+Mod1-r := HeadFocus 2++Mod1-Shift-w := MovePointerRelative 0 0+Mod1-Shift-w := MovePointerRelative 0 0+Mod1-Shift-w := MovePointerRelative 0 0+Mod1-Shift-w := MovePointerRelative 0 0+Mod1-Shift-w := MovePointerRelative 0 0+Mod1-Shift-w := MovePointerRelative 0 0+Mod1-Shift-w := MovePointerRelative 0 0+Mod1-Shift-w := MovePointerRelative 0 0+Mod1-Shift-w := MovePointerRelative 0 0+Mod1-Shift-w := MovePointerRelative 0 0+Mod1-Shift-w := HeadFocusWithClient 0 (GetActive)++Mod1-Shift-e := MovePointerRelative 0 0+Mod1-Shift-e := MovePointerRelative 0 0+Mod1-Shift-e := MovePointerRelative 0 0+Mod1-Shift-e := MovePointerRelative 0 0+Mod1-Shift-e := MovePointerRelative 0 0+Mod1-Shift-e := MovePointerRelative 0 0+Mod1-Shift-e := MovePointerRelative 0 0+Mod1-Shift-e := MovePointerRelative 0 0+Mod1-Shift-e := MovePointerRelative 0 0+Mod1-Shift-e := MovePointerRelative 0 0+Mod1-Shift-e := HeadFocusWithClient 1 (GetActive)++Mod1-Shift-r := MovePointerRelative 0 0+Mod1-Shift-r := MovePointerRelative 0 0+Mod1-Shift-r := MovePointerRelative 0 0+Mod1-Shift-r := MovePointerRelative 0 0+Mod1-Shift-r := MovePointerRelative 0 0+Mod1-Shift-r := MovePointerRelative 0 0+Mod1-Shift-r := MovePointerRelative 0 0+Mod1-Shift-r := MovePointerRelative 0 0+Mod1-Shift-r := MovePointerRelative 0 0+Mod1-Shift-r := MovePointerRelative 0 0+Mod1-Shift-r := HeadFocusWithClient 2 (GetActive)++Mod1-1 := WorkspaceGreedy "1"+Mod1-2 := WorkspaceGreedy "2"+Mod1-3 := WorkspaceGreedy "3"+Mod1-4 := WorkspaceGreedy "4"+Mod1-5 := WorkspaceGreedy "5"+Mod1-6 := WorkspaceGreedy "6"++Mod4-Shift-a := Workspace (AddWorkspace (Input "New workspace name:"))+Mod4-shift-d := RemoveWorkspace (SelectWorkspace "Prefix")+Mod4-BackSpace := RemoveWorkspace (GetWorkspace)++Mod1-Tab := CycleClientNext "yes" "no" "yes"+Mod1-Shift-Tab := CycleClientPrev "yes" "no" "yes"++Mod4-space := FocusRaise (SelectClient "Any" "no" "no" "yes")+Mod4-return := WorkspaceGreedy (SelectWorkspace "Prefix")+Mod4-Shift-return := WorkspaceGreedyWithClient \+                       (SelectWorkspace "Prefix") \+                       (GetActive)++Control-Mod1-a := Workspace (GetWorkspacePrefix "a")+Control-Mod1-b := Workspace (GetWorkspacePrefix "b")+Control-Mod1-c := Workspace (GetWorkspacePrefix "c")+Control-Mod1-d := Workspace (GetWorkspacePrefix "d")+Control-Mod1-e := Workspace (GetWorkspacePrefix "e")+Control-Mod1-f := Workspace (GetWorkspacePrefix "f")+Control-Mod1-g := Workspace (GetWorkspacePrefix "g")+Control-Mod1-h := Workspace (GetWorkspacePrefix "h")+Control-Mod1-i := Workspace (GetWorkspacePrefix "i")+Control-Mod1-j := Workspace (GetWorkspacePrefix "j")+Control-Mod1-k := Workspace (GetWorkspacePrefix "k")+Control-Mod1-l := Workspace (GetWorkspacePrefix "l")+Control-Mod1-m := Workspace (GetWorkspacePrefix "m")+Control-Mod1-n := Workspace (GetWorkspacePrefix "n")+Control-Mod1-o := Workspace (GetWorkspacePrefix "o")+Control-Mod1-p := Workspace (GetWorkspacePrefix "p")+Control-Mod1-q := Workspace (GetWorkspacePrefix "q")+Control-Mod1-r := Workspace (GetWorkspacePrefix "r")+Control-Mod1-s := Workspace (GetWorkspacePrefix "s")+Control-Mod1-t := Workspace (GetWorkspacePrefix "t")+Control-Mod1-u := Workspace (GetWorkspacePrefix "u")+Control-Mod1-v := Workspace (GetWorkspacePrefix "v")+Control-Mod1-w := Workspace (GetWorkspacePrefix "w")+Control-Mod1-x := Workspace (GetWorkspacePrefix "x")+Control-Mod1-y := Workspace (GetWorkspacePrefix "y")+Control-Mod1-z := Workspace (GetWorkspacePrefix "z")+

.config/ag/wingo/nas2/mouse.wini

new file mode 100644@@ -0,0 +1,118 @@+$OPACITY_UP := Shell "transset-df -p --max 1.0 --inc 0.05"+$OPACITY_DOWN := Shell "transset-df -p --min 0.1 --dec 0.05"++[Root]+1 := Focus ":mouse:"++[Client]+1 := FocusRaise ":mouse:"++[Frame]+Mod4-1 := MouseMove+Mod4-3 := MouseResize "Infer"+Mod4-4 up := $OPACITY_UP+Mod4-5 up := $OPACITY_DOWN++[FullIcon]+1 := MouseMove+1 := FocusRaise ":mouse:"+3 := MouseResize "Infer"+Mod4-4 up := $OPACITY_UP+Mod4-5 up := $OPACITY_DOWN++[FullTitleText]+1 := MouseMove+1 := FocusRaise ":mouse:"+3 := MouseResize "Infer"+Mod4-4 up := $OPACITY_UP+Mod4-5 up := $OPACITY_DOWN++[FullTitleBar]+1 := MouseMove+1 := FocusRaise ":mouse:"+3 := MouseResize "Infer"+Mod4-4 up := $OPACITY_UP+Mod4-5 up := $OPACITY_DOWN++[FullClose]+1 up := Close ":mouse:"+Mod4-4 up := $OPACITY_UP+Mod4-5 up := $OPACITY_DOWN++[FullMaximize]+1 up := ToggleMaximize ":mouse:"+Mod4-4 up := $OPACITY_UP+Mod4-5 up := $OPACITY_DOWN++[FullMinimize]+1 up := ToggleIconify ":mouse:"+Mod4-4 up := $OPACITY_UP+Mod4-5 up := $OPACITY_DOWN++[FullTop]+1 := MouseResize "Top"+1 down := FocusRaise ":mouse:"++[FullTitleBottom]+1 down := FocusRaise ":mouse:"++[FullBottom]+1 := MouseResize "Bottom"+1 down := FocusRaise ":mouse:"++[FullLeft]+1 := MouseResize "Left"+1 down := FocusRaise ":mouse:"++[FullRight]+1 := MouseResize "Right"+1 down := FocusRaise ":mouse:"++[FullTopLeft]+1 := MouseResize "TopLeft"+1 down := FocusRaise ":mouse:"++[FullTopRight]+1 := MouseResize "TopRight"+1 down := FocusRaise ":mouse:"++[FullBottomLeft]+1 := MouseResize "BottomLeft"+1 down := FocusRaise ":mouse:"++[FullBottomRight]+1 := MouseResize "BottomRight"+1 down := FocusRaise ":mouse:"++[BordersTop]+1 := MouseResize "Top"+1 down := FocusRaise ":mouse:"++[BordersBottom]+1 := MouseResize "Bottom"+1 down := FocusRaise ":mouse:"++[BordersLeft]+1 := MouseResize "Left"+1 down := FocusRaise ":mouse:"++[BordersRight]+1 := MouseResize "Right"+1 down := FocusRaise ":mouse:"++[BordersTopLeft]+1 := MouseResize "TopLeft"+1 down := FocusRaise ":mouse:"++[BordersTopRight]+1 := MouseResize "TopRight"+1 down := FocusRaise ":mouse:"++[BordersBottomLeft]+1 := MouseResize "BottomLeft"+1 down := FocusRaise ":mouse:"++[BordersBottomRight]+1 := MouseResize "BottomRight"+1 down := FocusRaise ":mouse:"+

.config/ag/wingo/nas2/options.wini

new file mode 100644@@ -0,0 +1,57 @@+[Options]+# The list of workspaces to set upon startup. Workspaces can be added or+# removed while Wingo is running.+workspaces := 1 2 3 4 mail browser irc text s1 s2 s3 doc++# The default layout that is used in a particular workspace. Currently, the+# only available layouts are: Floating, Vertical or Horizontal.+# Setting this to something other than a Floating layout effectively turns+# Wingo into a tiling window manager.+default_layout := Floating++# When enabled, windows will be focused when the mouse enters the window.+# N.B. I don't use focus follows mouse, so I'm not sure precisely how it+# should work. If I've messed up, file a bug report.+focus_follows_mouse := no++# If enabled, head focus will follow the mouse. That is, moving the mouse to+# another monitor will move the focus to the workspace on that monitor.+# Note that this does not require that "focus_follows_mouse" be enabled;+# however this only works when the mouse is directly over the root window.+# (So enabling this option might be weight if "focus_follows_mouse" is+# disabled.)+#+# N.B. It is possible that this could have an effect on performance, since+# all pointer motion events on the root window must be inspected.+focus_follows_mouse_head := no++# Whether error messages should be shown or not. Error messages typically+# show up when you've tried to do something illegal with one of Wingo's+# commands.+# Error messages acquire focus and do not disappear until they lose focus, or+# if the "confirm" or "cancel" keys have been pressed.+show_popup_errors := yes++# Whether FYI messages should be shown or not. These are typically used to+# indicate state changes, like when a the current workspace is changed.+# Note that FYI messages only appear for a set amount of time (see "popup_time"+# below) and then disappear. They never acquire focus.+show_popup_fyi := yes++# The time that an "FYI" message window stays visible in milliseconds.+# After time expires, the message disappears.+popup_time := 500++# The key that acts as the "confirm" key. This is mostly used in prompts. When+# the confirm key is pressed, the prompt will execute an action corresponding+# to the inputted text or the selected item.+confirm := Return++# The key that acts as the "cancel" key. This is mostly used in prompts. When+# the cancel key is pressed, the prompt disappears and no action occurs.+cancel := Escape++# The program to use to play a wav file. This is only used with the "Dale"+# command, which is an easter egg.+audio_play_cmd := aplay+

.config/ag/wingo/nas2/scripts/dzen-workspaces/README.md

new file mode 100644@@ -0,0 +1,23 @@+Description+===========+dzen-workspaces listens to events from Wingo and emits a dzen formatted string +whenever there is a change. The formatting is configurable and is based on the +kind of workspace: current, visible, hidden or empty.+++Example+=======+In your `Autostart` hook:++    startup := Shell "dzen2 -dock | ~/.config/wingo/scripts/dzen-workspaces/dzen-workspaces"++The formatting options can be changed in++    ~/.config/wingo/scripts/dzen-workspaces/dzen-workspaces.cfg+++Dependencies+============+* pywingo+* dzen2+

.config/ag/wingo/nas2/scripts/dzen-workspaces/dzen-workspaces

new file mode 100755@@ -0,0 +1,45 @@+#!/home/andrew/.pyx11/bin/python++import sys++import pywingo++W = pywingo.Wingo()++cfg = W.LoadConfig()+markup = {}+for k in ('current', 'visible', 'hidden', 'empty'):+    markup[k] = cfg.get('fmt', k, raw=True)+++@W.bind('AddedWorkspace')+@W.bind('RemovedWorkspace')+@W.bind('ChangedWorkspace')+@W.bind('ChangedVisibleWorkspace')+@W.bind('ChangedWorkspaceNames')+@W.bind('ManagedClient')+@W.bind('UnmanagedClient')+@W.bind('Subscribed')+def show(_):+    current = W.GetWorkspace()+    visible = W.GetVisibleWorkspaceList()+    hidden = W.GetHiddenWorkspaceList()++    vtagged = []+    for space in visible:+        if space == current:+            vtagged.append(markup['current'] % space)+        else:+            vtagged.append(markup['visible'] % space)+    htagged = []+    for space in hidden:+        if W.IsEmpty(space):+            htagged.append(markup['empty'] % space)+        else:+            htagged.append(markup['hidden'] % space)++    print('[%s] %s' % (' '.join(vtagged), ' '.join(htagged)))+    sys.stdout.flush()+++W.loop()

.config/ag/wingo/nas2/scripts/dzen-workspaces/dzen-workspaces.cfg

new file mode 100644@@ -0,0 +1,5 @@+[fmt]+current = ^fg(#18B218)%s^fg()+visible = ^fg(#FF0000)%s^fg()+hidden = ^fg(#FFA500)%s^fg()+empty = ^fg(#000)%s^fg()

.config/ag/wingo/nas2/scripts/growto

new file mode 100755@@ -0,0 +1,105 @@+#!/usr/bin/env python2++import sys++import pywingo++if len(sys.argv) != 2 or sys.argv[1] not in ('top', 'bot', 'left', 'right'):+    print >> sys.stderr, 'Usage: growto (top | bot | left | right)'+    sys.exit(1)++def edges(client):+    '''+    Returns a dictionary of edges for the given client.+    '''+    eleft, etop = W.GetClientX(client), W.GetClientY(client)+    w, h = W.GetClientWidth(client), W.GetClientHeight(client)+    eright, ebot = eleft + w, etop + h+    return {+        'left': eleft, 'top': etop,+        'right': eright, 'bot': ebot,+    }++def flatten(lst):+    '''+    Flattens a list: [[a]] -> [a].+    '''+    flattened = []+    for sublst in lst:+        for x in sublst:+            flattened.append(x)+    return flattened++def newpos(vertical, order, default, include):+    '''+    Finds a new edge for the client from a list of edges corresponding+    to all relevant surfaces.++    `vertical` should be True if the client is moving/growing/shrinking in+    a vertical direction (top/bot). Should be False otherwise.++    `order` should either be `min` or `max`, and is used to retrieve the+    next edge to move/grow/shrink to from a list of candidate edges.++    `default` is the edge of last resort if no other edges were found.+    It is also used as a min/max depending on `order`.+    (e.g., the head boundary.)++    `include` is the comparison criterion for edges. It should return+    True if the given edge is a possible choice.+    (e.g., all edges less than the active client's left edge when+           growing in the left direction.)+    '''+    def extract(edges):+        if vertical:+            return [edges['top'], edges['bot']]+        else:+            return [edges['left'], edges['right']]+    candidates = filter(include, flatten(map(extract, alledges)))+    return order(default, order(candidates) if candidates else default)++# Initialization. Connect and grab the edges/geometry of the active client.+direction = sys.argv[1]+W = pywingo.Wingo()++win = W.GetActive()+if not W.MatchClientMapped(win):+    print >> sys.stderr, 'Window %d is not visible' % win+    sys.exit(1)+wine = edges(win)+wine_width = wine['right'] - wine['left']+wine_height = wine['bot'] - wine['top']++# Find the geometry of the active head and compute the edges for all+# clients on the head.+wrk = W.GetClientWorkspace(win)+head = W.WorkspaceHead(wrk)+headw, headh = W.GetHeadWidth(head), W.GetHeadHeight(head)+clients = filter(lambda c: W.MatchClientMapped(c), W.GetClientList(wrk))+alledges = []+for c in clients:+    if c == win:+        continue+    alledges.append(edges(c))++if direction == 'top':+    newtop = newpos(True, max, 0, lambda e: e < wine['top'])++    W.MoveRelative(win, wine['left'], newtop)+    W.Resize(win, wine_width, wine_height + wine['top'] - newtop)+elif direction == 'left':+    newleft = newpos(False, max, 0, lambda e: e < wine['left'])++    W.MoveRelative(win, newleft, wine['top'])+    W.Resize(win, wine_width + wine['left'] - newleft, wine_height)+elif direction == 'bot':+    newbot = newpos(True, min, headh, lambda e: e > wine['bot'])++    W.Resize(win, wine_width, newbot - wine['top'])+elif direction == 'right':+    newright = newpos(False, min, headw, lambda e: e > wine['right'])++    W.Resize(win, newright - wine['left'], wine_height)+else:+    assert False, 'bug'+

.config/ag/wingo/nas2/scripts/newproject/README.md

new file mode 100644@@ -0,0 +1,20 @@+Description+===========+newproject prompts the user for a project name, and creates N workspaces with +the names {name}1, {name}2, ..., {name}N where N is the number of monitors +active on your system.+++Example+=======+In your `key.wini`:++  Mod4-p := Script "newproject"++Then type in the desired project name.+++Dependencies+============+* pywingo+

.config/ag/wingo/nas2/scripts/newproject/newproject

new file mode 100755@@ -0,0 +1,16 @@+#!/home/andrew/.pyx11/bin/python++import pywingo++W = pywingo.Wingo()++prefix = W.Input('Project name: ')+if len(prefix) == 0:+    exit(0)++for i in xrange(W.GetNumHeads()):+    name = '%s%d' % (prefix, i + 1)+    W.HeadFocus(i)+    W.AddWorkspace(name)+    W.Workspace(name)+

.config/ag/wingo/nas2/scripts/nexthead

new file mode 100755@@ -0,0 +1,13 @@+#!/home/andrew/.pyx11/bin/python++import pywingo++W = pywingo.Wingo()++cur_head = W.GetHead()+cur_client = W.GetActive()++next_head = (cur_head + 1) % W.GetNumHeads()++W.HeadFocusWithClient(next_head, cur_client)+

.config/ag/wingo/nas2/scripts/transparency

new file mode 100755@@ -0,0 +1,47 @@+#!/home/andrew/.pyx11/bin/python++import atexit++import pywingo++# The transparency to use for unfocused and focused clients.+# 1 is completely opaque and 0 is completely transparent.+alpha = {+    'unfocused': 0.85,+    'focused': 1.0,+}++# Does the initial connection with Wingo. `W` can now be used to run commands.+W = pywingo.Wingo()++# Use Python decorators to bind functions to specific events.+@W.bind('FocusedClient')+def focused(ev):+    W.SetOpacity(ev.Id, alpha['focused'])++@W.bind('UnfocusedClient')+def focused(ev):+    W.SetOpacity(ev.Id, alpha['unfocused'])++# Set the transparency of all clients upon subscription.+@W.bind('Subscribed')+def startup(ev):+    active = W.GetActive()+    for cid in W.GetAllNormalClients():+        if cid == active:+            W.SetOpacity(cid, alpha['focused'])+        else:+            W.SetOpacity(cid, alpha['unfocused'])++# Use the special `atexit.register` decoration in the Python standard+# library to do any clean up if your program quits.+@atexit.register+def shutdown():+    # If the program quits unexpectedly, return opacity+    # to normal levels.+    for cid in W.GetAllNormalClients():+        W.SetOpacity(cid, 1.0)++# Start the main event loop. This should be the last thing in your program.+W.loop()+

.config/ag/wingo/nas2/theme.wini

new file mode 100644@@ -0,0 +1,65 @@+$THIN_COLOR := 0x585a5d+$BLUE := 0x3366ff+$ORANGE := 0xff7f00+$GREY := 0xdfdcdf+$PURPLE := 0xff00ff++[Prompt]+bg_color := 0x8e8e8e+border_color := 0x585a5d+border_size := 10+padding := 15+font := /usr/share/fonts/TTF/DejaVuSansMono.ttf+font_size := 17+font_color := 0xffffff+select_active_color := 0x4c4c4c+select_active_bg_color := 0xffffff+select_group_bg_color := 0x8e8e8e+select_group_font := /usr/share/fonts/TTF/DejaVuSansMono-Bold.ttf+select_group_font_size := 25+select_group_font_color := 0xffffff+cycle_icon_size := 100+cycle_icon_border_size := 10+cycle_icon_transparency := 30++[Misc]+default_icon := ./data/wingo.png++[Full]+font := /usr/share/fonts/TTF/DejaVuSansMono-Bold.ttf+font_size := 17+a_font_color := 0xffffff+i_font_color := 0x000000++title_size := 30+a_title_color := 0xd66b00 0xff9123+i_title_color := 0xffffff++close := ./data/close.png+a_close_color := 0xffffff+i_close_color := 0x000000++maximize := ./data/maximize.png+a_maximize_color := 0xffffff+i_maximize_color := 0x000000++minimize := ./data/minimize.png+a_minimize_color := 0xffffff+i_minimize_color := 0x000000++border_size := 4+a_border_color := $THIN_COLOR+i_border_color := $THIN_COLOR++[Borders]+border_size := 4+a_thin_color := $THIN_COLOR+i_thin_color := $THIN_COLOR+a_border_color := $ORANGE+i_border_color := $GREY++[Slim]+border_size := 1+a_border_color := 0x000000+i_border_color := 0x000000+

.config/ag/wingo/skinner

deleted file mode 120000@@ -1 +0,0 @@-tv\ No newline at end of file

.config/ag/xbindkeysrc/Turtle

deleted file mode 100644@@ -1,62 +0,0 @@-"video laptop"-  mod1 + mod4 + shift + v--"gmrun"-  mod4 + r--"lock"-  mod4 + l--"dolphin"-  mod4 + e--"edit_textbuf"-  mod4 + shift + e--"qpdfview /home/andrew/tmp/exercises.pdf"-  mod4 + n--"zathura /home/andrew/data/misc/documents/latexsheet.pdf"-  control + mod1 + mod4 + l--"konsole -e bash"-  mod4 + t--"konsole -e 'ssh nas -t screen -RD'"-  mod4 + s--"konsole -e 'ssh -Y gopher -t screen -RD'"-  mod4 + d--"konsole -e 'bash -c bpython2'"-  mod4 + p--"konsole -e 'bash -c pynfldb'"-  mod4 + shift + n--"konsole -e alsamixer"-  mod4 + a--"google-chrome"-  mod4 + b--"google-chrome --incognito"-  mod4 + shift + b--"google-chrome --new-window http://gmail.com"-  mod4 + g--"pmsleep"-  XF86Launch1--"sh /home/andrew/.config/ag/startup/common.xinitrc"-  mod1 + mod4 + shift + s--"volume mute"-  XF86AudioMute--"volume up"-  XF86AudioRaiseVolume--"volume down"-  XF86AudioLowerVolume

.config/ag/xbindkeysrc/chalmers

deleted file mode 120000@@ -1 +0,0 @@-/home/andrew/.config/ag/xbindkeysrc/default\ No newline at end of file

.config/ag/xbindkeysrc/default

@@ -19,6 +19,9 @@ "tt nas"   mod4 + s +"tt nas2"+  mod4 + shift + s+ "tt duff"   mod4 + h 

.config/ag/xbindkeysrc/frink

deleted file mode 120000@@ -1 +0,0 @@-/home/andrew/.config/ag/xbindkeysrc/default\ No newline at end of file

.config/ag/xbindkeysrc/kodos

deleted file mode 120000@@ -1 +0,0 @@-default\ No newline at end of file

.config/ag/xbindkeysrc/krusty

deleted file mode 120000@@ -1 +0,0 @@-/home/andrew/.config/ag/xbindkeysrc/default\ No newline at end of file

.config/ag/xbindkeysrc/monty

deleted file mode 120000@@ -1 +0,0 @@-/home/andrew/.config/ag/xbindkeysrc/default\ No newline at end of file

.config/ag/xbindkeysrc/nas2

new file mode 120000@@ -0,0 +1 @@+default\ No newline at end of file

.config/ag/xbindkeysrc/skinner

deleted file mode 120000@@ -1 +0,0 @@-/home/andrew/.config/ag/xbindkeysrc/default\ No newline at end of file

.config/ag/xbindkeysrc/wiggum

@@ -1 +1 @@-/home/andrew/.config/ag/xbindkeysrc/default\ No newline at end of file+default\ No newline at end of file

.gitignore

@@ -4,6 +4,9 @@  # We start by un-ignoring all hidden files and directories. This way, hidden # directories like `.config` will show up in ripgrep searches.+#+# This does mean that `.git` gets whitelisted, which isn't what we want. So we+# ignore it in `~/.ignore`. !.*  # top-level hidden files/directories that we specifically ignore and skip over.

.ignore

new file mode 100644@@ -0,0 +1 @@+/.git

bin/all-list

@@ -1,6 +1,7 @@ #!/bin/sh  echo "nas+nas2 duff flanders wiggum

bin/media

@@ -1,7 +1,7 @@ #!/bin/sh  case "$(myhostname)" in-  nas)+  nas|nas2)     echo "cannot mount media on nas; the nas IS the media!" >&2     exit 1     ;;

bin/restart-compositor

@@ -1,4 +1,4 @@ #!/bin/sh  killall picom --wait-exec picom --backend xrender --vsync --fade-in-step=0.08 --fade-out-step=0.08+exec picom --backend xrender --vsync --fade-in-step 0.08 --fade-out-step 0.08 --shadow-opacity 0

bin/sr-port

@@ -20,6 +20,9 @@ case "$host" in   bart)     port=3003     ;;+  nas2)+    port=3004+    ;;   *)     echo "sr-port: unrecognized hostname $host" >&2     exit 1

bin/ssh-add-keys

Binary file changed

bin/video

@@ -49,73 +49,61 @@ fi sleep 1  case $(myhostname) in-duff|frink)-  ps aux | grep -v grep | grep dzen-workspaces | awk '{print $2}' | xargs -r kill-  killall trayer-  (sleep 1 && \-    trayer \-    --widthtype pixel --width 150 \-    --heighttype pixel --height 40 \-    --edge bottom --align right --monitor 1 \-    --SetDockType true) &-  (sleep 1 && \-    $HOME/.config/wingo/scripts/dzen-workspaces/dzen-workspaces \-    | dzen2 -dock -xs 3 -h 40 -fn 'Cousine-18' -ta l -bg '#ffffff' -y 1170) &-  ;;-Tiger)-  if array_exists laptop "$*"; then-    placeHead laptop-  else-    placeHead "$1"-  fi-  ;;-monty)-  if array_exists laptop "$*"; then-    placeHead laptop-  else-    placeHead "$1"-  fi-  ;;-krusty|kang|kodos|bart)-  if array_exists laptop "$*"; then-    placeHead laptop-  else-    placeHead "$1"-  fi-  ;;-Turtle)-  if array_exists laptop "$*"; then-    placeHead laptop-  else+  duff|frink)+    ps aux | grep -v grep | grep dzen-workspaces | awk '{print $2}' | xargs -r kill+    killall trayer+    (sleep 1 && \+      trayer \+      --widthtype pixel --width 150 \+      --heighttype pixel --height 40 \+      --edge bottom --align right --monitor 1 \+      --SetDockType true) &+    (sleep 1 && \+      $HOME/.config/wingo/scripts/dzen-workspaces/dzen-workspaces \+      | dzen2 -dock -xs 3 -h 40 -fn 'Cousine-18' -ta l -bg '#ffffff' -y 1170) &+    ;;+  nas2)+    ps aux | grep -v grep | grep dzen-workspaces | awk '{print $2}' | xargs -r kill+    killall stalonetray+    (+      stalonetray \+        --background '#ffffff' \+        --icon-size 40 --geometry 1x1-0-0 --grow-gravity SE --icon-gravity SE+    ) &+    (+      $HOME/.config/wingo/scripts/dzen-workspaces/dzen-workspaces \+        | dzen2 -dock -xs 3 -h 40 -fn 'Cousine-18' -ta l -bg '#ffffff' -y 1170+    ) &+    ;;+  bart|kang)+    if array_exists laptop "$*"; then+      placeHead laptop+    else+      placeHead "$1"+    fi+    ;;+  flanders|milhouse|wiggum)     placeHead "$1"-  fi-  ;;-skinner)-  ;;-chalmers)-  ;;-flanders|milhouse|wiggum)-  placeHead "$1"-  ;;-otto)-  pgrep dzen-workspaces | xargs -r kill-  killall trayer-  (sleep 1 && \-    trayer \-    --widthtype pixel --width 150 \-    --heighttype pixel --height 40 \-    --edge bottom --align right \-    --SetDockType true) &+    ;;+  otto)+    pgrep dzen-workspaces | xargs -r kill+    killall trayer+    (sleep 1 && \+      trayer \+      --widthtype pixel --width 150 \+      --heighttype pixel --height 40 \+      --edge bottom --align right \+      --SetDockType true) & -  headHeight="$(gohead query tv | cut -f4)"-  y="$((headHeight - 40))"-  (sleep 1 && \-    $HOME/.config/wingo/scripts/dzen-workspaces/dzen-workspaces \-    | dzen2 -dock -xs 2 -h 40 -fn 'Cousine-18' -ta l -bg '#ffffff' -y "$y") &-  ;;-*)-  echo "Unrecognized machine '$(hostname)'." >&2-  exit 1-  ;;+    headHeight="$(gohead query tv | cut -f4)"+    y="$((headHeight - 40))"+    (sleep 1 && \+      $HOME/.config/wingo/scripts/dzen-workspaces/dzen-workspaces \+      | dzen2 -dock -xs 2 -h 40 -fn 'Cousine-18' -ta l -bg '#ffffff' -y "$y") &+    ;;+  *)+    echo "Unrecognized machine '$(hostname)'." >&2+    exit 1+    ;; esac exit 0

bin/volume

@@ -52,7 +52,7 @@ get_volume_icon() { }  case "$(myhostname)" in-  duff|frink|krusty|kang|kodos|bart|flanders|milhouse|otto|wiggum)+  nas2|duff|kang|bart|flanders|milhouse|otto|wiggum)     case $1 in       up)         pamixer --increase 5

bin/xconfig-self-healing

@@ -20,11 +20,11 @@ apply() {     bart|kang)       framework-configure-touchpad       ;;-    wiggum|otto|flanders|milhouse)+    nas2|wiggum|otto|flanders|milhouse)       no-blanking       xset m 3 1       ;;-    duff|frink)+    duff)       xset m 1 1       xinput --set-prop 'Logitech Anywhere MX' 'libinput Accel Speed' -0.75       xinput --set-prop 'pointer:Logitech MX Anywhere 2' 'libinput Accel Speed' -0.75

system/etc/default/grub/nas2

new file mode 100644@@ -0,0 +1,63 @@+# GRUB boot loader configuration++GRUB_DEFAULT=0+GRUB_TIMEOUT=1+GRUB_DISTRIBUTOR="Arch"+GRUB_CMDLINE_LINUX_DEFAULT="loglevel=3 quiet"+GRUB_CMDLINE_LINUX=""++# Preload both GPT and MBR modules so that they are not missed+GRUB_PRELOAD_MODULES="part_gpt part_msdos"++# Uncomment to enable booting from LUKS encrypted devices+#GRUB_ENABLE_CRYPTODISK=y++# Set to 'countdown' or 'hidden' to change timeout behavior,+# press ESC key to display menu.+GRUB_TIMEOUT_STYLE=menu++# Uncomment to use basic console+GRUB_TERMINAL_INPUT=console++# Uncomment to disable graphical terminal+#GRUB_TERMINAL_OUTPUT=console++# The resolution used on graphical terminal+# note that you can use only modes which your graphic card supports via VBE+# you can see them in real GRUB with the command `videoinfo'+GRUB_GFXMODE=auto++# Uncomment to allow the kernel use the same resolution used by grub+GRUB_GFXPAYLOAD_LINUX=keep++# Uncomment if you want GRUB to pass to the Linux kernel the old parameter+# format "root=/dev/xxx" instead of "root=/dev/disk/by-uuid/xxx"+#GRUB_DISABLE_LINUX_UUID=true++# Uncomment to disable generation of recovery mode menu entries+GRUB_DISABLE_RECOVERY=true++# Uncomment and set to the desired menu colors.  Used by normal and wallpaper+# modes only.  Entries specified as foreground/background.+#GRUB_COLOR_NORMAL="light-blue/black"+#GRUB_COLOR_HIGHLIGHT="light-cyan/blue"++# Uncomment one of them for the gfx desired, a image background or a gfxtheme+#GRUB_BACKGROUND="/path/to/wallpaper"+#GRUB_THEME="/path/to/gfxtheme"++# Uncomment to get a beep at GRUB start+#GRUB_INIT_TUNE="480 440 1"++# Uncomment to make GRUB remember the last selection. This requires+# setting 'GRUB_DEFAULT=saved' above.+#GRUB_SAVEDEFAULT=true++# Uncomment to disable submenus in boot menu+#GRUB_DISABLE_SUBMENU=y++# Probing for other operating systems is disabled for security reasons. Read+# documentation on GRUB_DISABLE_OS_PROBER, if still want to enable this+# functionality install os-prober and uncomment to detect and include other+# operating systems.+#GRUB_DISABLE_OS_PROBER=false

system/etc/ssh/sshd_config/default

new file mode 100644@@ -0,0 +1,119 @@+# Include drop-in configurations+Include /etc/ssh/sshd_config.d/*.conf++# This is the sshd server system-wide configuration file.  See+# sshd_config(5) for more information.++# This sshd was compiled with PATH=/usr/local/sbin:/usr/local/bin:/usr/bin++# The strategy used for options in the default sshd_config shipped with+# OpenSSH is to specify options with their default value where+# possible, but leave them commented.  Uncommented options override the+# default value.++#Port 22+#AddressFamily any+#ListenAddress 0.0.0.0+#ListenAddress ::++#HostKey /etc/ssh/ssh_host_rsa_key+#HostKey /etc/ssh/ssh_host_ecdsa_key+#HostKey /etc/ssh/ssh_host_ed25519_key++# Ciphers and keying+#RekeyLimit default none++# Logging+#SyslogFacility AUTH+#LogLevel INFO++# Authentication:++#LoginGraceTime 2m+#PermitRootLogin prohibit-password+#StrictModes yes+MaxAuthTries 20+MaxSessions 1000++#PubkeyAuthentication yes++# The default is to check both .ssh/authorized_keys and .ssh/authorized_keys2+# but this is overridden so installations will only check .ssh/authorized_keys+AuthorizedKeysFile	.ssh/authorized_keys++#AuthorizedPrincipalsFile none++#AuthorizedKeysCommand none+#AuthorizedKeysCommandUser nobody++# For this to work you will also need host keys in /etc/ssh/ssh_known_hosts+#HostbasedAuthentication no+# Change to yes if you don't trust ~/.ssh/known_hosts for+# HostbasedAuthentication+#IgnoreUserKnownHosts no+# Don't read the user's ~/.rhosts and ~/.shosts files+#IgnoreRhosts yes++# To disable tunneled clear text passwords, change to "no" here!+#PasswordAuthentication yes+#PermitEmptyPasswords no++# Change to "no" to disable keyboard-interactive authentication.  Depending on+# the system's configuration, this may involve passwords, challenge-response,+# one-time passwords or some combination of these and other methods.+#KbdInteractiveAuthentication yes++# Kerberos options+#KerberosAuthentication no+#KerberosOrLocalPasswd yes+#KerberosTicketCleanup yes+#KerberosGetAFSToken no++# GSSAPI options+#GSSAPIAuthentication no+#GSSAPICleanupCredentials yes++# Set this to 'yes' to enable PAM authentication, account processing,+# and session processing. If this is enabled, PAM authentication will+# be allowed through the KbdInteractiveAuthentication and+# PasswordAuthentication.  Depending on your PAM configuration,+# PAM authentication via KbdInteractiveAuthentication may bypass+# the setting of "PermitRootLogin prohibit-password".+# If you just want the PAM account and session checks to run without+# PAM authentication, then enable this but set PasswordAuthentication+# and KbdInteractiveAuthentication to 'no'.+#UsePAM no++#AllowAgentForwarding yes+#AllowTcpForwarding yes+#GatewayPorts no+X11Forwarding yes+#X11DisplayOffset 10+#X11UseLocalhost yes+#PermitTTY yes+#PrintMotd yes+#PrintLastLog yes+#TCPKeepAlive yes+#PermitUserEnvironment no+#Compression delayed+#ClientAliveInterval 0+#ClientAliveCountMax 3+#UseDNS no+#PidFile /run/sshd.pid+#MaxStartups 10:30:100+#PermitTunnel no+#ChrootDirectory none+#VersionAddendum none++# no default banner path+#Banner none++# override default of no subsystems+Subsystem	sftp	/usr/lib/ssh/sftp-server++# Example of overriding settings on a per-user basis+#Match User anoncvs+#	X11Forwarding no+#	AllowTcpForwarding no+#	PermitTTY no+#	ForceCommand cvs server

system/etc/wireplumber/wireplumber.conf.d/bluetooth.conf/default

deleted file mode 100644@@ -1,6 +0,0 @@-# See /usr/share/doc/wireplumber/examples/wireplumber.conf.d/bluetooth.conf--wireplumber.settings = {-  # Whether to use headset profile in the presence of an input stream.-  bluetooth.autoswitch-to-headset-profile = false-}