Compare commits
760 commits
Author | SHA1 | Date | |
---|---|---|---|
2db8023e8a | |||
033a5fb2a0 | |||
9398c8e872 | |||
cc3163bf03 | |||
ac00e02c14 | |||
8a9cb2c991 | |||
3b55381ed6 | |||
aedb8632ba | |||
4419b93f80 | |||
2123187afa | |||
ec21b78114 | |||
9a094e3eaf | |||
158dee8be2 | |||
d860ba44db | |||
27c2242c52 | |||
390d8b2cc8 | |||
cb337a15d1 | |||
fddfa5114e | |||
5e1db34151 | |||
8385c94fe8 | |||
8555351598 | |||
a89c7128ce | |||
69d68f772e | |||
02fab2aa75 | |||
4d27b95746 | |||
f234c05559 | |||
c4f3f39ca9 | |||
4f4fa43dbd | |||
2260dde68d | |||
62a267f633 | |||
e2d662cf64 | |||
e1f2c22344 | |||
3a586dd03f | |||
1957ad0c44 | |||
4f2ae398cd | |||
8ae958f2f6 | |||
c721929078 | |||
7c5344d179 | |||
f4245d59af | |||
b243926a43 | |||
9f0fea5138 | |||
5d78874a92 | |||
5ff58b1092 | |||
93f498b528 | |||
d58a326ee5 | |||
3224f0021e | |||
a65d332001 | |||
6c3a9794ed | |||
57d5a8363d | |||
26a6830956 | |||
04d02624b6 | |||
853f902d6c | |||
ec1a9aa30c | |||
94aad9cdb4 | |||
6c7958f1f2 | |||
a53dec0664 | |||
fe8a770097 | |||
6742cab104 | |||
0427658756 | |||
ea5263a852 | |||
4d8b3559bb | |||
4d213914f2 | |||
c78de4158e | |||
062e299071 | |||
1eb2864451 | |||
6c37b01bcb | |||
48c765d8aa | |||
23d5e7ba6a | |||
6c073d19b0 | |||
7ee6fd8ae5 | |||
1e10799313 | |||
357d0cb5af | |||
4a2e7b2d6d | |||
66889f1a96 | |||
e03ca9b25f | |||
5d42e4f0ac | |||
e6a0ffc8d0 | |||
30206cf80d | |||
2d95e082f9 | |||
31809b70e7 | |||
e44cd12861 | |||
2a2255787c | |||
db19187726 | |||
ae51a8c1bc | |||
f5121275b5 | |||
83bb90540a | |||
13e88c967c | |||
e9f01d0755 | |||
5edcccd611 | |||
013778f74a | |||
20624e9171 | |||
840d1f06a3 | |||
dc12ea13f6 | |||
90b0f4e509 | |||
a7d9aa0191 | |||
8d90ed3444 | |||
ded4bfadc8 | |||
2ed2206983 | |||
3e8fbbaf90 | |||
6697d5af83 | |||
ca219e2293 | |||
8d41a391d1 | |||
61d000130a | |||
f28e74b77b | |||
e6ba03c1c0 | |||
f1f0ce2126 | |||
d20c20fa5e | |||
1e35c5bca9 | |||
b69fd8cbf8 | |||
b2e45a35ee | |||
9cdb165d40 | |||
d81f84faf9 | |||
4067ac11a3 | |||
9245b117e6 | |||
16133f11f0 | |||
23458e9515 | |||
534bf76e28 | |||
fdaa9af8ad | |||
639e7c8e37 | |||
585fcf65f6 | |||
e4637aa9f9 | |||
d28f5117b0 | |||
0992773f49 | |||
e80eb40091 | |||
2b6bb95df5 | |||
330a303289 | |||
3e082add99 | |||
5cc8fb03ab | |||
d3b3c33753 | |||
1eb19ac1ad | |||
7442449659 | |||
9f3b09b5b1 | |||
f0a28b3580 | |||
ea0343f069 | |||
ee784fee36 | |||
3dd258810e | |||
6671b88279 | |||
91f5c1e0f7 | |||
36c7cec4d4 | |||
0258e9aa5a | |||
5a9ed59195 | |||
c75739c406 | |||
aff5b83554 | |||
b64aaf4011 | |||
7f35ee8c71 | |||
ea6a2cea54 | |||
e2680b51cf | |||
8dcf6df105 | |||
1b942fbcf1 | |||
636c985bdd | |||
bcf5e2150d | |||
a5ee08bef3 | |||
61d65e27c8 | |||
86e8b03592 | |||
9a626be7a4 | |||
d745aa5b37 | |||
4558772743 | |||
9d1b5e4849 | |||
4a8201fc9a | |||
ab94c9ab96 | |||
36eeed7e1c | |||
a20808a596 | |||
fa0b9c87eb | |||
355b452a4c | |||
cb56a7f260 | |||
4a247afc22 | |||
ec6557cbd5 | |||
999e50bb11 | |||
fc977b29f0 | |||
bdf984607e | |||
83b0c62b49 | |||
8420af7190 | |||
59743ffe50 | |||
4d00b7c7c3 | |||
44a8d0139d | |||
bc6c5394ac | |||
ea35825e1d | |||
40b26e86cf | |||
7fde32a3c5 | |||
9393cae50d | |||
bc52f75609 | |||
cc4b99f7fc | |||
b3a0345c7c | |||
168bcf9c58 | |||
f65c03208b | |||
bb83279842 | |||
4919464b23 | |||
ba5f16be66 | |||
61e526ff34 | |||
ab130bef51 | |||
a9b583bac0 | |||
a9f0f63a43 | |||
3c71390a26 | |||
7888c07c0a | |||
3f90dcdd7d | |||
00019a1e90 | |||
82a7d84572 | |||
7bb2d1f065 | |||
40d78b985d | |||
2729adda1d | |||
c96a147d8e | |||
692b58d031 | |||
2186b26e8a | |||
06acbed5a4 | |||
e9865398f7 | |||
8d4e5b3c89 | |||
e48fdb676d | |||
3614c4581b | |||
e45a66b6ff | |||
e31cd3e064 | |||
2dbacd8ff5 | |||
5f82d1e5dc | |||
311bbce4bf | |||
86f8212896 | |||
b9489f3159 | |||
216f9da807 | |||
d311cffd16 | |||
d41afa89fd | |||
f5ab56de77 | |||
3c69b707a6 | |||
d5d58ca19e | |||
cd286eb7ee | |||
7dbde2b56d | |||
b980af6a77 | |||
0f5e07d009 | |||
80edf526d3 | |||
03baab2134 | |||
342bb78246 | |||
d1bafaca61 | |||
f65c7ae64e | |||
e4fcc932e8 | |||
b06bc7628c | |||
acb703bfc0 | |||
af735619df | |||
7a1418dd64 | |||
71751ca88d | |||
168807b974 | |||
a75647fd4f | |||
7bbed85972 | |||
39e3977cea | |||
ab88d0336d | |||
9456e865c7 | |||
d2621b43ca | |||
2ac78884b0 | |||
5f94872d37 | |||
2488743abd | |||
cb49188ed7 | |||
242b8e8e2b | |||
780bd0f3c4 | |||
a25de0f817 | |||
bf66ba20e3 | |||
c72168099b | |||
85fe9b1ab3 | |||
dea9949d4b | |||
bd95338b9d | |||
46bda5a885 | |||
e28a4eb2b0 | |||
d64d0e84dc | |||
bd62f24d8a | |||
1d766b5fb0 | |||
efe56412a6 | |||
5095638f2f | |||
9160e39372 | |||
b491df4af6 | |||
1a2a7141ae | |||
08b76487c6 | |||
4729f66526 | |||
c644282478 | |||
e6c92ddb92 | |||
28961df04b | |||
148423527a | |||
1fca0b9fa4 | |||
e6107a6aa8 | |||
a867ea38e2 | |||
261659cb0f | |||
7fa022cde6 | |||
4d71be20ae | |||
7909c2a170 | |||
3311bcd8e0 | |||
184ec5d2fc | |||
6e0e3ee819 | |||
d9b12dc272 | |||
191c4714f5 | |||
eda6e24036 | |||
805b2a8e92 | |||
443bada7b1 | |||
11601a8c9e | |||
ed8485591c | |||
593ce4be23 | |||
30a43cb421 | |||
facd97ef8e | |||
69fc35bec5 | |||
3062fcae60 | |||
f4f7f4fa3b | |||
4236a07922 | |||
8a0a2886c8 | |||
dfb85ce38b | |||
acd8559406 | |||
757cfa5b97 | |||
8337bd8d44 | |||
3cf3448434 | |||
474961355d | |||
4884fe70e6 | |||
77af1ea358 | |||
b0dcc251b6 | |||
1ae23363d6 | |||
4affb84793 | |||
2e44872d59 | |||
cc20fc38d8 | |||
8adbbed6c5 | |||
a31e989a28 | |||
4130e90044 | |||
c9cacdf23c | |||
08e079d384 | |||
ceff401cc8 | |||
38c9454e2b | |||
0976c73b7d | |||
668c80ccc7 | |||
dd58c6cf66 | |||
f54d8a5930 | |||
e390a5dae4 | |||
3d1d07f7f7 | |||
eca7f33d36 | |||
f9b4e7b407 | |||
d06e12d70d | |||
99dcade3b7 | |||
280beaba2b | |||
0fa2c21ec8 | |||
d8a6c9640c | |||
40d9a1b3fe | |||
0f8c30d16e | |||
a0519f51c9 | |||
cab9a4bcf3 | |||
eb0dd10126 | |||
61976703e7 | |||
c83c9fb28d | |||
c46b1097d4 | |||
56123da22c | |||
80b13a5786 | |||
4e74660f46 | |||
caf5b50e0e | |||
143f86da3f | |||
e23ff50a29 | |||
c7ee21a46e | |||
2ffb29b718 | |||
56c22f90ef | |||
e9f4e1297a | |||
472fc43adb | |||
c057b45cbd | |||
ca31d59176 | |||
6d7bd71f13 | |||
af7abe2db3 | |||
2a705832f5 | |||
7696ac3d7c | |||
353fe31aad | |||
04f867ce39 | |||
609a0e2ddb | |||
a12a5ed261 | |||
6cb0641a18 | |||
811b1720d3 | |||
7762e3892d | |||
e42c235cce | |||
27eea21566 | |||
999be753bd | |||
227eab333e | |||
1d3aae3d05 | |||
f06e2fb832 | |||
3933f42b39 | |||
db423b3ce2 | |||
860962626b | |||
5c05caf196 | |||
739f89bace | |||
26689b0eec | |||
32c9f20364 | |||
34aeb28dda | |||
b0016760fe | |||
2d9f023d14 | |||
b3bd639206 | |||
1e46767718 | |||
ec922b7be4 | |||
aabcb90780 | |||
30952ab6a5 | |||
3eb9eb45f3 | |||
d25cc62263 | |||
caf261a4cd | |||
cfe36adc2e | |||
5baead61e3 | |||
16c5309394 | |||
7cc7cb3eae | |||
4d36ff9551 | |||
96e30cf2a0 | |||
1bda53e97d | |||
bfcb68d21f | |||
a13ee49d90 | |||
a2ff0c0a78 | |||
5f55667a80 | |||
9ebfbdd662 | |||
cc2baa023e | |||
c5847bc02a | |||
3947734df1 | |||
e8bce6760b | |||
0388b9eeaa | |||
22b7162988 | |||
2aed414a95 | |||
779787d56c | |||
6980dd5c32 | |||
733985953f | |||
c278fb2684 | |||
c6d4ada60f | |||
1df8832757 | |||
7619a1b0d2 | |||
8ea891aeb5 | |||
2fdc0fbf87 | |||
22084f3d92 | |||
d49ecc62a7 | |||
4e6871d7ca | |||
b28d3ff3f2 | |||
6f46220968 | |||
bf669027f7 | |||
fea67ad3ee | |||
9921e99df2 | |||
6e1dace32b | |||
fd5b2c2cdf | |||
8015a380be | |||
9dbf7bedb2 | |||
7ec0b50211 | |||
9537370590 | |||
1b74abb05c | |||
b771f25f65 | |||
5b37bf8efb | |||
677f124c94 | |||
3903832b34 | |||
3ccd481d04 | |||
689036a6b9 | |||
319a3a85d2 | |||
01ab1c57bd | |||
9783c7a6c6 | |||
692389bf6b | |||
5284bf07ef | |||
9dcc9e0ca5 | |||
fb1066f5e0 | |||
41968ee029 | |||
3440624c99 | |||
8d67f0af8e | |||
e4b9421f79 | |||
a43b50504e | |||
062a4d7743 | |||
582d1cea19 | |||
742577668a | |||
5d9ad8a032 | |||
cd55a123e0 | |||
882ca4b99d | |||
cd7bdc03cf | |||
9a4c2b5ea8 | |||
72bba12f10 | |||
7091c6ec43 | |||
7926b846a7 | |||
d52a012c15 | |||
0f3c1ec155 | |||
61f4611942 | |||
532caa4c29 | |||
1eee0de460 | |||
6b25025611 | |||
7de3d74dfa | |||
d061d492a7 | |||
a6481f8a6b | |||
58bc48d227 | |||
b6fefcb3a5 | |||
9e31f7989a | |||
792dfe908d | |||
c778fb7a69 | |||
38f0edbfb1 | |||
4a1f8b915c | |||
fac5beab6b | |||
ecca1dcb62 | |||
db1eea8e7a | |||
f1dc2d9b94 | |||
74a8eadaba | |||
c5844963d2 | |||
9600b70377 | |||
00ba72f907 | |||
28d15764f3 | |||
28360d0a00 | |||
7b7ebbbc7c | |||
cebd95b07a | |||
f227653717 | |||
6a8d1ea37b | |||
84b65d4e3b | |||
49af8ba479 | |||
9a4067a8c6 | |||
28aae66e28 | |||
617e4a1c54 | |||
529044dd00 | |||
437292c927 | |||
ac8b03776b | |||
1b8244aac4 | |||
567e133cf3 | |||
bea07604f2 | |||
240b9534df | |||
4edb26c381 | |||
f5fbe7ed7e | |||
0dc3fe0410 | |||
d8eb322ca7 | |||
cbb7761b2a | |||
fe2f5bd66a | |||
1164c1b297 | |||
abd841042d | |||
34c361cc66 | |||
99ea6160f1 | |||
dcf69d2e3f | |||
4ff72bdc0a | |||
cf47f738fa | |||
5a92369dc1 | |||
c0984eea1e | |||
dd53dd1a11 | |||
10a1a0782e | |||
269ad348ac | |||
8e4cf56280 | |||
4926ca5f08 | |||
b0a9184283 | |||
305e838383 | |||
2a899dddc2 | |||
118e9c4b99 | |||
ce5d11ec37 | |||
229db6fc65 | |||
ac0084625a | |||
8215a31186 | |||
51e8f161e7 | |||
11ed78d83a | |||
67ca189890 | |||
7b2566e57b | |||
ddaf995a35 | |||
368a0bc422 | |||
aa7889378b | |||
7089660933 | |||
e72f3c5810 | |||
22c9168668 | |||
24306fc290 | |||
3ac18ef802 | |||
2c54c1b443 | |||
068bae02ba | |||
be9a3107d2 | |||
00f5f3ed9d | |||
df9f1f278b | |||
3d1dfb5f40 | |||
567b4c9cf4 | |||
7296051d56 | |||
ca2ce63ae0 | |||
f170652c77 | |||
bf05b1b11f | |||
c67d9dbec1 | |||
8320ecc9ab | |||
44704e67ec | |||
cceea74f86 | |||
3d8d38501f | |||
187e1d7174 | |||
039e445452 | |||
4baea6bdac | |||
05c68a9e2e | |||
dff0536e09 | |||
11449ca6eb | |||
b8a9d602bd | |||
02871ce988 | |||
dafda8a9c4 | |||
fbf921ecb2 | |||
2b1913c65f | |||
6825f7ed69 | |||
6a19fa9ce6 | |||
11862a9c80 | |||
9879c4ab5f | |||
98f38a25b8 | |||
d73129105b | |||
26469170bf | |||
182f3514e6 | |||
a7a4c1dd35 | |||
8ac24fb0eb | |||
18018a7c16 | |||
75e148b29c | |||
0ed50b7edf | |||
931979b5c6 | |||
9ccb99ee15 | |||
440c0cc3ca | |||
f2dd6bbec2 | |||
d7b2e88fdd | |||
95607444a0 | |||
c25684314b | |||
028582d634 | |||
86f495e117 | |||
3dad71a9b7 | |||
ae72dd0343 | |||
c02f09816d | |||
bf0d58ef40 | |||
c487024e26 | |||
35b9c059eb | |||
9cb6fa5093 | |||
b03312fa44 | |||
48238686d9 | |||
b9f699ad07 | |||
742b30a806 | |||
7d994c389a | |||
4281a357f4 | |||
c278f6edb4 | |||
b5ea7e05ea | |||
f719e35fbf | |||
b3861837b0 | |||
bd6c4b409f | |||
16d15b2b21 | |||
62d9ac00b3 | |||
521f28dc36 | |||
7db1ce9b0a | |||
a3ecc8fd97 | |||
3446c32bdb | |||
ed09461ee7 | |||
b4c2657120 | |||
69daef5baa | |||
6c7f9ff34d | |||
c2778f0f71 | |||
05415b9b2c | |||
c7eef6ebcf | |||
a817e7d55c | |||
1774bb445d | |||
e53667c7ee | |||
98b55322b4 | |||
a53e94848c | |||
17f54b2193 | |||
54d16f7f4a | |||
bf25df1d46 | |||
66e6ded86f | |||
46ba5c7a01 | |||
8f7dd4a883 | |||
c4302483d2 | |||
b833a5ce69 | |||
f2fd5b1db1 | |||
9116ea1bb4 | |||
88997bfd63 | |||
7dd4d7ac23 | |||
0d70f1dc57 | |||
d494d318ce | |||
ff1b2cb762 | |||
046de04b6e | |||
909786b421 | |||
ee2e701408 | |||
b99b063219 | |||
8e12944b02 | |||
09f4c329af | |||
a18052dc9c | |||
9b2b9b6305 | |||
e6d82a5552 | |||
40e4a1706c | |||
f4574d968b | |||
0d5831fa09 | |||
564cdf1c84 | |||
4a88081668 | |||
c88f001c3a | |||
03d42ef44f | |||
d03583eaba | |||
f0c6e5e481 | |||
5dd5810f43 | |||
1a924d9190 | |||
3558131bc9 | |||
c1623b38c2 | |||
48833ba0ac | |||
071d5a9a68 | |||
5c6cd059e8 | |||
cca8771d85 | |||
e718731f66 | |||
2d9e5bd1f0 | |||
7e1a58c7a0 | |||
c81c7cae19 | |||
8a488356b3 | |||
5d72a0905e | |||
eb06ac12c4 | |||
916095eb4c | |||
8fa2ae804b | |||
8e59c9d772 | |||
e616e0a2d7 | |||
a134eef988 | |||
28fcab6516 | |||
0b1080da69 | |||
48387787cf | |||
57cd16666b | |||
f41af450ab | |||
b4f4dbc9be | |||
c11ca7d966 | |||
e3a7efa79f | |||
a758a94f36 | |||
62eb85ccc0 | |||
63c5d499ed | |||
0341b79023 | |||
e039765be1 | |||
0c91588eab | |||
c2bff71b96 | |||
6fba1713f8 | |||
17d6f9622b | |||
7e2091503b | |||
e68f45b48b | |||
856660ebda | |||
607cc269c5 | |||
8921d40bf6 | |||
11f7eadc9f | |||
4ed347264e | |||
6e61c024e1 | |||
ce6fa3c876 | |||
d24bcb590a | |||
aad709c4b4 | |||
7d94202351 | |||
a3ee1cf373 | |||
99b4ee7cd9 | |||
df4fa39ef3 | |||
d86ee42c09 | |||
9e78bdae06 | |||
eead1109c4 | |||
14adb384f1 | |||
ab4fee09d3 | |||
e6ad9e20bb | |||
83adacdd58 | |||
28a7dcdeb2 | |||
d68673f992 | |||
cbfaf91265 | |||
2ab08bd830 | |||
0530c9ad54 | |||
93d996f94c | |||
08e5782f64 | |||
cc4bdd72d7 | |||
ea4b5f561f | |||
68cad4e971 | |||
eaee297bd3 | |||
4a2315fb3a | |||
4c2f293ba7 | |||
5824f11717 | |||
88c1cf7415 | |||
e53bd5e888 | |||
9d1b8d2619 | |||
b330329c72 | |||
ca90f4623b | |||
a5cea3ece7 | |||
e75266aad4 | |||
3e63768e7b | |||
ba09f37955 | |||
1311fab884 | |||
5f173b0d5e | |||
4a5b5a31a6 | |||
b7c74aded0 | |||
d5dcfc5300 | |||
370726e0cc | |||
d9323f0c01 | |||
6b5f3062e2 | |||
8384ba49a0 | |||
0de90a0228 | |||
a271d7d0fe | |||
0e6eddf666 | |||
d0de62ba20 | |||
4e184a5d51 | |||
881a2bb3e5 | |||
2f9e38cab2 | |||
d4c6742dc6 | |||
fd184f196e | |||
ea413a5023 | |||
50c3f9ade9 | |||
d8aa1d0ed1 |
97
.Xdefaults
|
@ -1,97 +0,0 @@
|
|||
urxvt.internalBorder: 0
|
||||
|
||||
urxvt.loginShell: true
|
||||
urxvt.scrollBar: false
|
||||
urxvt.secondaryScroll: true
|
||||
urxvt.saveLines: 65535
|
||||
urxvt.cursorBlink: false
|
||||
urxvt.cursorUnderline: true
|
||||
urxvt.urgentOnBell: true
|
||||
urxvt.termName: rxvt-256color
|
||||
urxvt.visualBell: false
|
||||
|
||||
urxvt.perl-lib: /usr/lib/urxvt/perl/
|
||||
urxvt.perl-ext-common: default,url-select,keyboard-select
|
||||
urxvt.urlLauncher: conkeror
|
||||
urxvt.url-select.launcher: conkeror
|
||||
urxvt.matcher.button: 1
|
||||
urxvt.keysym.M-Escape: perl:keyboard-select:activate
|
||||
urxvt.keysym.M-s: perl:keyboard-select:search
|
||||
|
||||
urxvt.keysym.M-u: perl:url-select:select_next
|
||||
|
||||
urxvt.font: xft:Envy Code R:weight=medium:pixelsize=18
|
||||
urxvt.boldFont: xft:Envy Code R:weight=bold:pixelsize=18
|
||||
urxvt.italicFont: xft:Envy Code R:slant=italic:pixelsize=18
|
||||
|
||||
urxvt.depth: 32
|
||||
urxvt.background: #111113
|
||||
urxvt.foreground: #eeeeec
|
||||
|
||||
urxvt.color0: #111113
|
||||
urxvt.color8: #eeeeec
|
||||
|
||||
urxvt.color1: #734a4a
|
||||
urxvt.color9: #bf7d7d
|
||||
|
||||
urxvt.color2: #52734a
|
||||
urxvt.color10: #8abf6d
|
||||
|
||||
urxvt.color3: #6b734a
|
||||
urxvt.color11: #b2bf6d
|
||||
|
||||
urxvt.color4: #4a5b73
|
||||
urxvt.color12: #6d97bf
|
||||
|
||||
urxvt.color5: #6b4a73
|
||||
urxvt.color13: #b27dbf
|
||||
|
||||
urxvt.color6: #4a7373
|
||||
urxvt.color14: #7dbfbf
|
||||
|
||||
urxvt.color7: #222224
|
||||
urxvt.color15: #a5a5a4
|
||||
|
||||
Xft.antialias: true
|
||||
Xft.rgba: rgb
|
||||
Xft.hinting: true
|
||||
Xft.hintstyle: hintslight
|
||||
|
||||
! Emacs.font: DejaVu Sans Mono:weight=medium:pixelsize=18
|
||||
Emacs.menuBar: off
|
||||
Emacs.toolbar: off
|
||||
Emacs.useXIM: off
|
||||
Emacs.background: #111113
|
||||
Emacs.borderWidth: 0
|
||||
Emacs.font: Envy Code R-13
|
||||
Emacs.foreground: #eeeeec
|
||||
Emacs.internalBorder: 0
|
||||
Emacs.paneFont: Envy Code R-13
|
||||
Emacs.pointerColor: #eeeeec
|
||||
Emacs*menu*font: Envy Code R-13
|
||||
Emacs*menu*foreground: #eeeeec
|
||||
Emacs*menu*background: #222224
|
||||
Emacs*menu*buttonForeground: #a5a5a4
|
||||
Emacs*menu*verticalSpacing: 0
|
||||
Emacs*menu*shadowThickness: 1
|
||||
Emacs*menu*margin: 0
|
||||
Emacs.pane.menubar.translations: #override\
|
||||
Ctrl <Key> n: down()\n\
|
||||
Ctrl <Key> p: up()\n\
|
||||
Ctrl <Key> f: right()\n\
|
||||
Ctrl <Key> b: left()\n\
|
||||
|
||||
xfontsel.sampleText: \
|
||||
static void print_sample_message(XWindow *win) {\n\
|
||||
win.label->text = "Sample text 0123456789"\n\
|
||||
}
|
||||
|
||||
xfontsel.sampleText16: \
|
||||
static void print_sample_message(XWindow *win) {\n\
|
||||
win.label->text = "Sample text 0123456789"\n\
|
||||
}
|
||||
|
||||
xfontsel.sampleTextUCS: \
|
||||
static void print_sample_message(XWindow *win) {\n\
|
||||
win.label->text = "Sample text 0123456789"\n\
|
||||
}
|
14
.beetsconfig
|
@ -1,14 +0,0 @@
|
|||
|
||||
[beets]
|
||||
library: ~/.local/share/beets/library.blb
|
||||
directory: /mnt/music/lib/
|
||||
plugins: mpdupdate embedart
|
||||
|
||||
[paths]
|
||||
default: $albumartist/$year - $album/$track - $title
|
||||
singleton: Non-Album/$artist - $title
|
||||
comp: Compilations/$year - $album/$track - $artist - $title
|
||||
|
||||
[mpdupdate]
|
||||
host: localhost
|
||||
port: 6600
|
|
@ -1,5 +0,0 @@
|
|||
DESTDIR:=$(DESTDIR)/.config
|
||||
modules=awesome clfswm cower dunst fehlstart fish herbstluftwm \
|
||||
newsbeuter zathura
|
||||
|
||||
include ../dotfiles.mk
|
|
@ -1,5 +0,0 @@
|
|||
DESTDIR:=$(DESTDIR)/awesome
|
||||
modules=themes
|
||||
objects=bowl.lua ext.lua infoline.lua keychain.lua oni.lua rc.lua
|
||||
|
||||
include ../../dotfiles.mk
|
|
@ -1,205 +0,0 @@
|
|||
-- -*- coding: utf-8 -*-
|
||||
--------------------------------------------------------------------------------
|
||||
-- @author Nicolas Berthier <nberthier@gmail.com>
|
||||
-- @copyright 2010 Nicolas Berthier
|
||||
--------------------------------------------------------------------------------
|
||||
--
|
||||
-- Bowls are kind of helpers that can be drawn (at the bottom --- for now) of an
|
||||
-- area, and displaying the current key prefix. It is inspired by emacs'
|
||||
-- behavior, that prints prefix keys in the minibuffer after a certain time.
|
||||
--
|
||||
-- I call it `bowl' as a reference to the bowl that one might have at home,
|
||||
-- where one puts its actual keys... A more serious name would be `hint' or
|
||||
-- `tooltip' (but they do not fit well for this usage).
|
||||
--
|
||||
-- Example usage: see `rc.lua' file.
|
||||
--
|
||||
--------------------------------------------------------------------------------
|
||||
|
||||
--{{{ Grab environment (mostly aliases)
|
||||
local setmetatable = setmetatable
|
||||
local ipairs = ipairs
|
||||
local type = type
|
||||
local pairs = pairs
|
||||
local string = string
|
||||
local print = print
|
||||
local error = error
|
||||
|
||||
local capi = capi
|
||||
local client = client
|
||||
local awesome = awesome
|
||||
local root = root
|
||||
local timer = timer
|
||||
|
||||
local infoline = require ("infoline")
|
||||
--}}}
|
||||
|
||||
module ("bowl")
|
||||
|
||||
-- Privata data: we use weak keys in order to allow collection of private data
|
||||
-- if keys (clients) are collected (i.e., no longer used, after having been
|
||||
-- killed for instance)
|
||||
local data = setmetatable ({}, { __mode = 'k' })
|
||||
|
||||
--{{{ Default values
|
||||
|
||||
--- Default modifier filter
|
||||
local modfilter = {
|
||||
["Mod1"] = "M",
|
||||
["Mod4"] = "S",
|
||||
["Control"] = "C",
|
||||
["Shift"] = string.upper,
|
||||
}
|
||||
|
||||
-- Timers configuration
|
||||
local use_timers = true
|
||||
local timeout = 2.0
|
||||
|
||||
--}}}
|
||||
|
||||
--{{{ Keychain pretty-printing
|
||||
|
||||
function mod_to_string (mods, k)
|
||||
local ret, k = "", k
|
||||
for _, mod in ipairs (mods) do
|
||||
if modfilter[mod] then
|
||||
local t = type (modfilter[mod])
|
||||
if t == "function" then
|
||||
k = modfilter[mod](k)
|
||||
elseif t == "string" then
|
||||
ret = ret .. modfilter[mod] .. "-"
|
||||
else
|
||||
error ("Invalid modifier key filter: got a " .. t)
|
||||
end
|
||||
else
|
||||
ret = ret .. mod .. "-"
|
||||
end
|
||||
end
|
||||
return ret, k
|
||||
end
|
||||
|
||||
function ks_to_string (m, k)
|
||||
local m, k = mod_to_string (m, k)
|
||||
return m .. k
|
||||
end
|
||||
|
||||
--}}}
|
||||
|
||||
--{{{ Timer management
|
||||
|
||||
local function delete_timer_maybe (d)
|
||||
if d.timer then -- stop and remove the timer
|
||||
d.timer:remove_signal ("timeout", d.timer_function)
|
||||
d.timer:stop ()
|
||||
d.timer = nil
|
||||
d.timer_expired = true
|
||||
end
|
||||
end
|
||||
|
||||
local function delayed_call_maybe (d, f)
|
||||
if use_timers then
|
||||
if not d.timer_expired and not d.timer then
|
||||
-- create and start the timer
|
||||
d.timer = timer ({ timeout = timeout })
|
||||
d.timer_function = function () f (); delete_timer_maybe (d) end
|
||||
d.timer:add_signal ("timeout", d.timer_function)
|
||||
d.timer:start ()
|
||||
d.timer_expired = false
|
||||
elseif not d.timer_expired then
|
||||
-- restart the timer...
|
||||
|
||||
-- XXX: What is the actual semantics of the call to `start' (ie,
|
||||
-- does it restart the timer with the initial timeout)?
|
||||
d.timer:stop ()
|
||||
d.timer.timeout = timeout -- reset timeout
|
||||
d.timer:start ()
|
||||
end
|
||||
else -- timers disabled
|
||||
f () -- call the given function directly
|
||||
end
|
||||
end
|
||||
|
||||
--}}}
|
||||
|
||||
--{{{ Infoline management
|
||||
|
||||
function dispose (w)
|
||||
local d = data[w]
|
||||
if d.bowl then -- if bowl was enabled... (should always be true...)
|
||||
infoline.dispose (d.bowl)
|
||||
d.bowl = nil
|
||||
end
|
||||
delete_timer_maybe (d)
|
||||
data[w] = nil
|
||||
end
|
||||
|
||||
function append (w, m, k)
|
||||
local d = data[w]
|
||||
local pretty_ks = ks_to_string (m, k) .. " "
|
||||
infoline.set_text (d.bowl, infoline.get_text (d.bowl) .. pretty_ks)
|
||||
|
||||
local function enable_bowl ()
|
||||
-- XXX: is there a possible bad interleaving that could make
|
||||
-- this function execute while the bowl has already been
|
||||
-- disposed of? in which case the condition should be checked
|
||||
-- first...
|
||||
|
||||
-- if d.bowl then
|
||||
infoline.attach (d.bowl, w)
|
||||
-- end
|
||||
end
|
||||
|
||||
delayed_call_maybe (d, enable_bowl)
|
||||
end
|
||||
|
||||
function create (w)
|
||||
-- XXX: Note the prefix text could be customizable...
|
||||
data[w] = { bowl = infoline.new (" ") }
|
||||
end
|
||||
|
||||
--}}}
|
||||
|
||||
|
||||
--- Initializes the bowl module, with given properties; should be called before
|
||||
--- ANY other function of this module.
|
||||
-- Configurations fields include:
|
||||
--
|
||||
-- `use_timers', `timeout': A boolean defining whether bowls drawing should be
|
||||
-- delayed, along with a number being this time shift, in seconds (Default
|
||||
-- values are `true' and `2').
|
||||
--
|
||||
-- `modfilter': A table associating modifiers (Mod1, Mod4, Control, Shift, etc.)
|
||||
-- with either a string (in this case it will replace the modifier when printed
|
||||
-- in heplers) or functions (in this case the key string will be repaced by a
|
||||
-- call to this function with the key string as parameter). Default value is:
|
||||
-- { ["Mod1"] = "M", ["Mod4"] = "S", ["Control"] = "C", ["Shift"] =
|
||||
-- string.upper }
|
||||
--
|
||||
-- @param c The table of properties.
|
||||
function init (c)
|
||||
local c = c or { }
|
||||
modfilter = c.modfilter and c.modfilter or modfilter
|
||||
if c.use_timers ~= nil then use_timers = c.use_timers end
|
||||
if use_timers then
|
||||
timeout = c.timeout ~= nil and c.timeout or timeout
|
||||
end
|
||||
end
|
||||
|
||||
--- Setup signal listeners, that trigger appropriate functions for a default
|
||||
--- behavior.
|
||||
function default_setup ()
|
||||
local function to_root (f) return function (...) f (root, ...) end end
|
||||
client.add_signal ("keychain::enter", create)
|
||||
client.add_signal ("keychain::append", append)
|
||||
client.add_signal ("keychain::leave", dispose)
|
||||
awesome.add_signal ("keychain::enter", to_root (create))
|
||||
awesome.add_signal ("keychain::append", to_root (append))
|
||||
awesome.add_signal ("keychain::leave", to_root (dispose))
|
||||
end
|
||||
|
||||
-- Local variables:
|
||||
-- indent-tabs-mode: nil
|
||||
-- fill-column: 80
|
||||
-- lua-indent-level: 4
|
||||
-- End:
|
||||
-- vim: filetype=lua:expandtab:shiftwidth=4:tabstop=8:softtabstop=4:encoding=utf-8:textwidth=80
|
|
@ -1,81 +0,0 @@
|
|||
local client=client
|
||||
local awful=awful
|
||||
local pairs=pairs
|
||||
local table=table
|
||||
|
||||
module("ext")
|
||||
|
||||
-- Returns true if all pairs in table1 are present in table2
|
||||
function match(table1, table2)
|
||||
for k, v in pairs(table1) do
|
||||
if table[k] ~= v and not table2[k]:find(v) then
|
||||
return false
|
||||
end
|
||||
end
|
||||
|
||||
return true
|
||||
end
|
||||
|
||||
--- Spawns cmd if no client can be found matching properties
|
||||
-- If such a client can be found, pop to first tag where it is
|
||||
-- visible, and give it focus
|
||||
function run_or_raise(cmd, properties)
|
||||
local clients = client.get()
|
||||
local focused = awful.client.next(0)
|
||||
local findex = 0
|
||||
local matched_clients = { }
|
||||
local n = 0
|
||||
|
||||
for i, c in pairs(clients) do
|
||||
-- make an array of matched clients
|
||||
if match(properties, c) then
|
||||
n = n + 1
|
||||
matched_clients[n] = c
|
||||
|
||||
if n == focused then
|
||||
findex = n
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
if n > 0 then
|
||||
local c = matched_clients[1]
|
||||
|
||||
-- if the focused window matched switch focus to next in list
|
||||
if 0 < findex and findex < n then
|
||||
c = matched_clients[findex + 1]
|
||||
end
|
||||
|
||||
local ctags = c:tags()
|
||||
|
||||
if table.getn(ctags) == 0 then
|
||||
-- ctags is empty, show client on current tag
|
||||
local curtag = awful.tag.selected()
|
||||
awful.client.movetotag(curtag, c)
|
||||
else
|
||||
-- Otherwise, pop to first tag client is visible on
|
||||
awful.tag.viewonly(ctags[1])
|
||||
end
|
||||
|
||||
-- And then focus the client
|
||||
client.focus = c
|
||||
c:raise()
|
||||
awful.screen.focus(c.screen)
|
||||
return
|
||||
end
|
||||
awful.util.spawn(cmd)
|
||||
end
|
||||
|
||||
function prev_client()
|
||||
awful.client.focus.history.previous()
|
||||
if client.focus then
|
||||
client.focus:raise()
|
||||
end
|
||||
end
|
||||
|
||||
function next_client()
|
||||
awful.client.focus.byidx(1)
|
||||
if client.focus then
|
||||
client.focus:raise()
|
||||
end
|
||||
end
|
|
@ -1,183 +0,0 @@
|
|||
-- -*- coding: utf-8 -*-
|
||||
--------------------------------------------------------------------------------
|
||||
-- @author Nicolas Berthier <nberthier@gmail.com>
|
||||
-- @copyright 2010 Nicolas Berthier
|
||||
--------------------------------------------------------------------------------
|
||||
--
|
||||
-- This is a module for defining infolines in awesome. An infoline is a wibox
|
||||
-- attached to a region (typically, a client or the root window).
|
||||
--
|
||||
-- Remarks:
|
||||
--
|
||||
-- - It has not been tested with multiple screens yet.
|
||||
--
|
||||
-- Example usage: (TODO --- read the comments for now, there are not many
|
||||
-- functions)
|
||||
--
|
||||
--------------------------------------------------------------------------------
|
||||
|
||||
--{{{ Grab environment (mostly aliases)
|
||||
local setmetatable = setmetatable
|
||||
local ipairs = ipairs
|
||||
local type = type
|
||||
local pairs = pairs
|
||||
local string = string
|
||||
local print = print
|
||||
local error = error
|
||||
local io = io
|
||||
|
||||
local client = client
|
||||
local awesome = awesome
|
||||
local wibox = wibox
|
||||
local widget = widget
|
||||
local root = root
|
||||
local screen = screen
|
||||
local mouse = mouse
|
||||
--}}}
|
||||
|
||||
module ("infoline")
|
||||
|
||||
-- Privata data: we use weak keys in order to allow collection of private data
|
||||
-- if keys (clients) are collected (i.e., no longer used, after having been
|
||||
-- killed for instance).
|
||||
--
|
||||
-- XXX: For now, we have at most one infoline per client, but it could be
|
||||
-- interesting to create several types of infolines (identified by indexes to be
|
||||
-- allocated by this module), and associated to, e.g., different configuration
|
||||
-- flags and positioning routine...
|
||||
local data = setmetatable ({}, { __mode = 'k' })
|
||||
|
||||
--{{{ Infoline positioning
|
||||
|
||||
-- XXX: this is a hack that positions an infoline at the bottom of a given area.
|
||||
local function setup_position (wb, geom)
|
||||
local b = wb:geometry ()
|
||||
b.x = geom.x
|
||||
b.width = geom.width
|
||||
b.y = geom.y + geom.height - awesome.font_height
|
||||
b.height = awesome.font_height
|
||||
wb:geometry (b)
|
||||
end
|
||||
|
||||
--}}}
|
||||
|
||||
--{{{ Configurations:
|
||||
|
||||
-- When true, this flag indicates that an infoline is hidden if its attached
|
||||
-- client loses its focus. Otherwise, it remains always visible.
|
||||
follow_focus = true
|
||||
|
||||
--}}}
|
||||
|
||||
--{{{ Infoline updates
|
||||
|
||||
function get_text (il) return il.wb.widgets[1].text end
|
||||
function set_text (il, text) il.wb.widgets[1].text = text end
|
||||
|
||||
-- Forces a refresh of the given infoline.
|
||||
function update (il)
|
||||
local wb = il.wb
|
||||
local c = il.cli
|
||||
|
||||
if il.enabled then
|
||||
-- XXX: Note this could be much better if we had some sort of root and
|
||||
-- client interface unification: the following involves a priori useless
|
||||
-- code duplication...
|
||||
if c == root then
|
||||
wb.screen = mouse.screen -- XXX: is this the behavior we need?
|
||||
wb.visible = true
|
||||
setup_position (wb, screen[mouse.screen].workarea)
|
||||
else
|
||||
if c:isvisible () and (not follow_focus or client.focus == c) then
|
||||
wb.screen = c.screen
|
||||
wb.visible = true
|
||||
setup_position (wb, c:geometry ())
|
||||
else -- do we have to hide it?
|
||||
wb.visible = false
|
||||
end
|
||||
end
|
||||
elseif wb.visible then --otherwise we need to hide it.
|
||||
wb.visible = false
|
||||
end
|
||||
end
|
||||
|
||||
local function update_from_client (c)
|
||||
-- Note that we may not have an infoline for this client, hence the
|
||||
-- conditional...
|
||||
if data[c] then update (data[c]) end
|
||||
end
|
||||
|
||||
-- Force execution of the above function on client state modification.
|
||||
client.add_signal ("focus", update_from_client)
|
||||
client.add_signal ("unfocus", update_from_client)
|
||||
client.add_signal ("unmanage", update_from_client)
|
||||
|
||||
--}}}
|
||||
|
||||
--{{{ Infoline management
|
||||
|
||||
--- Creates a new infoline, with the given initial text. Note it is not visible
|
||||
--- by default, and not attached to any client.
|
||||
function new (text)
|
||||
local il = {
|
||||
wb = wibox ({
|
||||
ontop = true, -- XXX: setting a depth when attaching to
|
||||
--a client would be much better
|
||||
widgets = {
|
||||
widget ({ type = "textbox", align="left" })
|
||||
},
|
||||
})
|
||||
}
|
||||
-- these will remain false until the infoline is attached to a client.
|
||||
il.wb.visible = false
|
||||
il.enabled = false
|
||||
set_text (il, text or "")
|
||||
return il
|
||||
end
|
||||
|
||||
-- Attached infolines will react to the following client-related signals, and
|
||||
-- automatically setup their position according to the client's geometry.
|
||||
local csignals = { "property::geometry", "property::minimized",
|
||||
"property::visible", "property::focus", "property::screen", }
|
||||
|
||||
-- Attaches an infoline to a client. Note the infoline becomes visible at that
|
||||
-- time, if the client is currently visible (and if it has focus, when
|
||||
-- `follow_focus' holds).
|
||||
function attach (il, c)
|
||||
data[c] = il
|
||||
il.cli = c
|
||||
il.enabled = true
|
||||
update (il)
|
||||
if c ~= root then
|
||||
-- subscribe to client-related signals
|
||||
for _, s in ipairs (csignals) do
|
||||
c:add_signal (s, update_from_client)
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
--- Detach the given infoline from its client, if any.
|
||||
function dispose (il)
|
||||
local c = il.cli
|
||||
if c then -- note c can be nil here, if the given infoline has not been
|
||||
--attached to any client...
|
||||
il.enabled = false
|
||||
update (il) -- a shortcut here would be: `il.wb.visible = false'
|
||||
data[c] = nil
|
||||
if c ~= root then
|
||||
-- unsubscribe from client-related signals
|
||||
for _, s in ipairs (csignals) do
|
||||
c:remove_signal (s, update_from_client)
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
--}}}
|
||||
|
||||
-- Local variables:
|
||||
-- indent-tabs-mode: nil
|
||||
-- fill-column: 80
|
||||
-- lua-indent-level: 4
|
||||
-- End:
|
||||
-- vim: filetype=lua:expandtab:shiftwidth=4:tabstop=8:softtabstop=4:encoding=utf-8:textwidth=80
|
|
@ -1,334 +0,0 @@
|
|||
-- -*- coding: utf-8 -*-
|
||||
--------------------------------------------------------------------------------
|
||||
-- @author Nicolas Berthier <nberthier@gmail.com>
|
||||
-- @copyright 2010 Nicolas Berthier
|
||||
--------------------------------------------------------------------------------
|
||||
--
|
||||
-- This is a module for defining keychains à la emacs in awesome. I was also
|
||||
-- inspired by ion3 behavior when designing it.
|
||||
--
|
||||
-- Remarks:
|
||||
--
|
||||
-- - This module does not handle `release' key bindings, but is it useful for
|
||||
-- keychains?
|
||||
--
|
||||
-- - It has not been tested with multiple screens yet.
|
||||
--
|
||||
-- - There might (... must) be incompatibilities with the shifty module. Also,
|
||||
-- defining global and per-client keychains with the same prefix is not
|
||||
-- allowed (or leads to unspecified behaviors... --- in practice: the
|
||||
-- per-client ones are ignored). However, I do think separation of per-client
|
||||
-- and global keys is a bad idea if client keys do not have a higher priority
|
||||
-- than the global ones...
|
||||
--
|
||||
-- Example usage: see `rc.lua' file.
|
||||
--
|
||||
--------------------------------------------------------------------------------
|
||||
|
||||
--{{{ Grab environment (mostly aliases)
|
||||
local setmetatable = setmetatable
|
||||
local ipairs = ipairs
|
||||
local type = type
|
||||
local pairs = pairs
|
||||
local string = string
|
||||
local print = print
|
||||
local error = error
|
||||
local io = io
|
||||
|
||||
local capi = capi
|
||||
local client = client
|
||||
local awesome = awesome
|
||||
local root = root
|
||||
|
||||
local akey = require ("awful.key")
|
||||
local join = awful.util.table.join
|
||||
local clone = awful.util.table.clone
|
||||
--}}}
|
||||
|
||||
module ("keychain")
|
||||
|
||||
-- Privata data: we use weak keys in order to allow collection of private data
|
||||
-- if keys (clients) are collected (i.e., no longer used, after having been
|
||||
-- killed for instance)
|
||||
local data = setmetatable ({}, { __mode = 'k' })
|
||||
|
||||
--{{{ Functional Tuples
|
||||
-- see http://lua-users.org/wiki/FunctionalTuples for details
|
||||
|
||||
--- Creates a keystroke representation to fill the `escape' table configuration
|
||||
--- property.
|
||||
-- @param m Modifiers table.
|
||||
-- @param k The key itself.
|
||||
-- @return A keystroke representation (only for the escape sequence, for now?).
|
||||
function keystroke (m, k)
|
||||
if type (m) ~= "table" then
|
||||
error ("Keystroke modifiers must be given a table (got a "..
|
||||
type (m)..")")
|
||||
end
|
||||
if type (k) ~= "string" then
|
||||
error ("Keystroke key must be given a string (got a "..
|
||||
type (m)..")")
|
||||
end
|
||||
return function (fn) return fn (m, k) end
|
||||
end
|
||||
|
||||
-- keystroke accessors
|
||||
local function ks_mod (_m, _k) return _m end
|
||||
local function ks_key (_m, _k) return _k end
|
||||
|
||||
-- ---
|
||||
|
||||
--- Creates a final keychain binding to fill the keychain binding tables,
|
||||
--- meaning that the given function will be executed at the end of the keychain.
|
||||
-- @param m Modifiers table.
|
||||
-- @param k The key.
|
||||
-- @param cont The function to be bound to the given keys.
|
||||
-- @return A "final" key binding.
|
||||
function key (m, k, cont)
|
||||
if type (cont) ~= "function" then
|
||||
error ("Final binding must be given a function (got a "..
|
||||
type (cont)..")")
|
||||
end
|
||||
return function (fn) return fn (keystroke (m, k), cont, true) end
|
||||
end
|
||||
|
||||
--- Creates an intermediate (prefix) keychain binding.
|
||||
-- @param m Modifiers table.
|
||||
-- @param k The key.
|
||||
-- @param sub The subchain description table to be bound to the given keys.
|
||||
-- @return An "intermediate" key binding.
|
||||
function subchain (m, k, sub)
|
||||
if type (sub) ~= "table" then
|
||||
error ("Subchain binding must be given a table (got a "..
|
||||
type (sub)..")")
|
||||
end
|
||||
return function (fn) return fn (keystroke (m, k), sub, false) end
|
||||
end
|
||||
|
||||
-- key/subchain binding accessors
|
||||
local function binding_ks (ks, cont, leaf) return ks end
|
||||
local function binding_cont (ks, cont, leaf) return cont end
|
||||
local function binding_leaf (ks, cont, leaf) return leaf end
|
||||
|
||||
--- Creates an intermediate keychain if sub is a table, or a final key binding
|
||||
--- otherwise (and then sub must be a function).
|
||||
-- @param m Modifiers table.
|
||||
-- @param k The key.
|
||||
-- @param sub Either the subchain description table, or the function, to be
|
||||
-- bound to the given keys.
|
||||
function sub (m, k, sub)
|
||||
if type (sub) == "table" then
|
||||
return subchain (m, k, sub)
|
||||
else
|
||||
return key (m, k, sub)
|
||||
end
|
||||
end
|
||||
|
||||
--}}}
|
||||
|
||||
--{{{ Default values
|
||||
|
||||
--- Default escape sequences (S-g is inspired by emacs...)
|
||||
local escape_keystrokes = {
|
||||
keystroke ( { }, "Escape" ),
|
||||
keystroke ( { "Mod4" }, "g" ),
|
||||
}
|
||||
|
||||
--}}}
|
||||
|
||||
--{{{ Key table management facilities
|
||||
|
||||
local function set_keys (c, k)
|
||||
if c == root then root.keys (k) else c:keys (k) end
|
||||
end
|
||||
|
||||
local function keys_of (c)
|
||||
if c == root then return root.keys () else return c:keys () end
|
||||
end
|
||||
|
||||
--}}}
|
||||
|
||||
--{{{ Signal emission helper
|
||||
|
||||
local function notif (sig, w, ...)
|
||||
if w ~= root then
|
||||
client.emit_signal (sig, w, ...)
|
||||
else -- we use global signals otherwise
|
||||
awesome.emit_signal (sig, ...)
|
||||
end
|
||||
end
|
||||
|
||||
--}}}
|
||||
|
||||
--{{{ Client/Root-related state management
|
||||
|
||||
local function init_client_state_maybe (w)
|
||||
if data[w] == nil then
|
||||
local d = { }
|
||||
d.keys = keys_of (w) -- save client keys
|
||||
data[w] = d -- register client
|
||||
notif ("keychain::enter", w)
|
||||
end
|
||||
end
|
||||
|
||||
local function restore_client_state (c)
|
||||
local w = c or root
|
||||
local d = data[w]
|
||||
-- XXX: Turns out that `d' can be nil already here, in case the keyboard has
|
||||
-- been grabbed since the previous call to this funtion... (that also seems
|
||||
-- to be called again upon release…)
|
||||
if d then
|
||||
set_keys (w, d.keys) -- restore client keys
|
||||
data[w] = nil -- unregister client
|
||||
end
|
||||
end
|
||||
|
||||
local function leave (c)
|
||||
local w = c or root
|
||||
|
||||
-- Destroy notifier structures if needed
|
||||
if data[w] then -- XXX: necessary test?
|
||||
notif ("keychain::leave", w)
|
||||
end
|
||||
end
|
||||
|
||||
-- force disposal of resources when clients are killed
|
||||
client.add_signal ("unmanage", leave)
|
||||
|
||||
--}}}
|
||||
|
||||
--{{{ Key binding tree access helpers
|
||||
|
||||
local function make_on_entering (m, k, subchain) return
|
||||
function (c)
|
||||
local w = c or root
|
||||
|
||||
-- Register and initialize client state, if not already in a keychain
|
||||
init_client_state_maybe (w)
|
||||
|
||||
-- Update notifier text, and trigger its drawing if necessary
|
||||
notif ("keychain::append", w, m, k)
|
||||
|
||||
-- Setup subchain
|
||||
set_keys (w, subchain)
|
||||
end
|
||||
end
|
||||
|
||||
local function on_leaving (c)
|
||||
-- Trigger disposal routine
|
||||
leave (c)
|
||||
|
||||
-- Restore initial key mapping of client
|
||||
restore_client_state (c)
|
||||
end
|
||||
|
||||
--}}}
|
||||
|
||||
--{{{ Configuration
|
||||
|
||||
-- Flag to detect late initialization error
|
||||
local already_used = false
|
||||
|
||||
-- Escape binding table built once upon initialization
|
||||
local escape_bindings = { }
|
||||
|
||||
--- Fills the escape bindings table with actual `awful.key' elements triggering
|
||||
--- execution of `on_leaving'.
|
||||
local function init_escape_bindings ()
|
||||
escape_bindings = { }
|
||||
for _, e in ipairs (escape_keystrokes) do
|
||||
escape_bindings = join (escape_bindings,
|
||||
akey (e (ks_mod), e (ks_key), on_leaving))
|
||||
end
|
||||
end
|
||||
|
||||
-- Call it once upon module loading to initialize escape_bindings (in case
|
||||
-- `init' is not called).
|
||||
init_escape_bindings ()
|
||||
|
||||
|
||||
--- Initializes the keychain module, with given properties; to be called before
|
||||
--- ANY other function of this module.
|
||||
-- Configurations fields include:
|
||||
--
|
||||
-- `escapes': A table of keystrokes (@see keychain.keystroke) escaping keychains
|
||||
-- (defaults are `Mod4-g' and `Escape').
|
||||
--
|
||||
-- @param c The table of properties.
|
||||
function init (c)
|
||||
local c = c or { }
|
||||
|
||||
if already_used then
|
||||
-- heum... just signal the error: "print" or "error"?
|
||||
return print ("E: keychain: Call to `init' AFTER having bound keys!")
|
||||
end
|
||||
|
||||
escape_keystrokes = c.escapes and c.escapes or escape_keystrokes
|
||||
|
||||
-- Now, fill the escape bindings table again with actual `awful.key'
|
||||
-- elements triggering `on_leaving' executions, in case escape keys has
|
||||
-- changed.
|
||||
init_escape_bindings ()
|
||||
end
|
||||
|
||||
--}}}
|
||||
|
||||
--{{{ Keychain creation
|
||||
|
||||
--- Creates a new keychain binding.
|
||||
-- @param m Modifiers table.
|
||||
-- @param k The key.
|
||||
-- @param chains A table of keychains, describing either final bindings (see
|
||||
-- key constructor) or subchains (see subchain constructor). If arg is not a
|
||||
-- table, then `awful.key' is called directly with the arguments.
|
||||
-- @return A key binding for the `awful.key' module.
|
||||
-- @see awful.key
|
||||
function new (m, k, chains)
|
||||
|
||||
-- If the argument is a function, then we need to return an actual awful.key
|
||||
-- directly.
|
||||
if type (chains) ~= "table" then
|
||||
return akey (m, k, chains)
|
||||
end
|
||||
|
||||
-- This table will contain the keys to be mapped upon <m, k> keystroke. It
|
||||
-- initially contains the escape bindings, so that one can still rebind them
|
||||
-- differently in `chains'.
|
||||
local subchain = clone (escape_bindings)
|
||||
|
||||
already_used = true -- subsequent init avoidance flag...
|
||||
|
||||
-- For each entry of the given chains, add a corresponding `awful.key'
|
||||
-- element in the subchain
|
||||
for _, e in ipairs (chains) do
|
||||
local ks = e (binding_ks)
|
||||
if e (binding_leaf) then
|
||||
-- We encountered a leaf in the chains.
|
||||
local function on_leaf (c) on_leaving (c); e (binding_cont) (c) end
|
||||
subchain = join (subchain, akey (ks (ks_mod), ks (ks_key), on_leaf))
|
||||
else
|
||||
-- Recursively call subchain creation. "Funny" detail: I think there
|
||||
-- is no way of creating ill-structured keychain descriptors that
|
||||
-- would produce infinite recursive calls here, since we control
|
||||
-- their creation with functional tuples, that cannot lead to cyclic
|
||||
-- structures...
|
||||
local subch = new (ks (ks_mod), ks (ks_key), e (binding_cont))
|
||||
subchain = join (subchain, subch)
|
||||
end
|
||||
end
|
||||
|
||||
-- Then return an actual `awful.key', triggering the `on_entering' routine
|
||||
return akey (m, k, make_on_entering (m, k, subchain))
|
||||
end
|
||||
--}}}
|
||||
|
||||
-- Setup `__call' entry in module's metatable so that we can create new prefix
|
||||
-- binding using `keychain (m, k, ...)' directly.
|
||||
setmetatable (_M, { __call = function (_, ...) return new (...) end })
|
||||
|
||||
-- Local variables:
|
||||
-- indent-tabs-mode: nil
|
||||
-- fill-column: 80
|
||||
-- lua-indent-level: 4
|
||||
-- End:
|
||||
-- vim: filetype=lua:expandtab:shiftwidth=4:tabstop=8:softtabstop=4:encoding=utf-8:textwidth=80
|
|
@ -1,73 +0,0 @@
|
|||
local awful = awful
|
||||
local beautiful = beautiful
|
||||
local client = client
|
||||
local ext = require("ext")
|
||||
local lfs = require("lfs")
|
||||
local pairs = pairs
|
||||
local string = string
|
||||
local table = table
|
||||
local widget = widget
|
||||
|
||||
module("oni")
|
||||
|
||||
local maildirfmt = "/home/slash/documents/mail/%s/inbox/new/"
|
||||
|
||||
function mailcount(account)
|
||||
local i = 0
|
||||
local dir = string.format(maildirfmt, account)
|
||||
|
||||
for file in lfs.dir(dir) do
|
||||
if file ~= "." and file ~= ".." then
|
||||
i = i + 1
|
||||
end
|
||||
end
|
||||
|
||||
return i
|
||||
end
|
||||
|
||||
local function showmail(name)
|
||||
awful.util.spawn("emacsclient -e '(oni:view-mail \"" .. name .. "\")'")
|
||||
end
|
||||
|
||||
function mailcount_widgets(label, account, name)
|
||||
widgets = {}
|
||||
widgets.label = widget({ type = "textbox" })
|
||||
widgets.label.text = string.format(" %s: ", label)
|
||||
widgets.count = widget({ type = "textbox" })
|
||||
widgets.count.text = string.format(" %d ", mailcount(account))
|
||||
widgets.count.bg = beautiful.bg_focus
|
||||
widgets.count:buttons(
|
||||
awful.util.table.join(
|
||||
awful.button({ }, 1, function (c) showmail(name) end)))
|
||||
|
||||
return widgets
|
||||
end
|
||||
|
||||
function focus_raise(direction)
|
||||
awful.client.focus.bydirection(direction)
|
||||
if client.focus then client.focus:raise() end
|
||||
end
|
||||
|
||||
function ror_browser()
|
||||
ext.run_or_raise("conkeror", { class = "Conkeror" })
|
||||
end
|
||||
|
||||
function ror_editor()
|
||||
ext.run_or_raise("emacsclient -c -a emacs", { class = "Emacs" })
|
||||
end
|
||||
|
||||
function ror_term()
|
||||
ext.run_or_raise("urxvt", { class = "URxvt" })
|
||||
end
|
||||
|
||||
function run_browser()
|
||||
awful.util.spawn("conkeror")
|
||||
end
|
||||
|
||||
function run_editor()
|
||||
awful.util.spawn("emacsclient -c -a emacs")
|
||||
end
|
||||
|
||||
function run_term()
|
||||
awful.util.spawn("urxvt")
|
||||
end
|
|
@ -1,424 +0,0 @@
|
|||
-- Standard awesome library
|
||||
local gears = require("gears")
|
||||
local awful = require("awful")
|
||||
-- Widget and layout library
|
||||
local wibox = require("wibox")
|
||||
-- Theme handling library
|
||||
local beautiful = require("beautiful")
|
||||
-- Notification library
|
||||
local naughty = require("naughty")
|
||||
local menubar = require("menubar")
|
||||
local lfs = require("lfs")
|
||||
|
||||
awful.rules = require("awful.rules")
|
||||
require("awful.autofocus")
|
||||
|
||||
local maildir_base = os.getenv("HOME") .. "/documents/mail/"
|
||||
|
||||
function ror(program, cls)
|
||||
local rorfunc = function ()
|
||||
local matcher = function (c)
|
||||
return awful.rules.match(c, { class = cls })
|
||||
end
|
||||
|
||||
awful.client.run_or_raise(program, matcher)
|
||||
end
|
||||
|
||||
return rorfunc
|
||||
end
|
||||
|
||||
function ror_combo(mod, key, program, class)
|
||||
return awful.util.table.join(
|
||||
awful.key(mod, key, ror(program, class)),
|
||||
awful.key(awful.util.table.join(mod, { "Shift" }), key,
|
||||
function () awful.util.spawn(program) end))
|
||||
end
|
||||
|
||||
function new_mail(maildir)
|
||||
local count = 0
|
||||
|
||||
for file in lfs.dir(maildir_base .. maildir .. "/new") do
|
||||
if file ~= "." and file ~= ".." then
|
||||
count = count + 1
|
||||
end
|
||||
end
|
||||
|
||||
for file in lfs.dir(maildir_base .. maildir .. "/cur") do
|
||||
if string.sub(file, -1) ~= "S" and file ~= "."
|
||||
and file ~= ".." then
|
||||
count = count + 1
|
||||
end
|
||||
end
|
||||
|
||||
return count
|
||||
end
|
||||
|
||||
----- Error handling
|
||||
-- Check if awesome encountered an error during startup and fell back
|
||||
-- to another config (This code will only ever execute for the
|
||||
-- fallback config)
|
||||
if awesome.startup_errors then
|
||||
naughty.notify({ preset = naughty.config.presets.critical,
|
||||
title = "Oops, there were errors during startup!",
|
||||
text = awesome.startup_errors })
|
||||
end
|
||||
|
||||
-- Handle runtime errors after startup
|
||||
do
|
||||
local in_error = false
|
||||
awesome.connect_signal("debug::error", function (err)
|
||||
-- Make sure we don't go into an endless error loop
|
||||
if in_error then return end
|
||||
in_error = true
|
||||
|
||||
naughty.notify({ preset = naughty.config.presets.critical,
|
||||
title = "Oops, an error happened!",
|
||||
text = err })
|
||||
in_error = false
|
||||
end)
|
||||
end
|
||||
|
||||
----- Variable definitions
|
||||
-- Themes define colours, icons, and wallpapers
|
||||
beautiful.init("/usr/share/awesome/themes/default/theme.lua")
|
||||
|
||||
-- This is used later as the default terminal and editor to run.
|
||||
terminal = "urxvt"
|
||||
editor = os.getenv("EDITOR") or "nano"
|
||||
editor_cmd = terminal .. " -e " .. editor
|
||||
|
||||
----- Default modkey.
|
||||
-- Usually, Mod4 is the key with a logo between Control and Alt. If
|
||||
-- you do not like this or do not have such a key, I suggest you to
|
||||
-- remap Mod4 to another key using xmodmap or other tools. However,
|
||||
-- you can use another modifier like Mod1, but it may interact with
|
||||
-- others.
|
||||
modkey = "Mod4"
|
||||
|
||||
-- Table of layouts to cover with awful.layout.inc, order matters.
|
||||
local layouts =
|
||||
{
|
||||
awful.layout.suit.tile,
|
||||
awful.layout.suit.tile.left,
|
||||
awful.layout.suit.tile.bottom,
|
||||
awful.layout.suit.tile.top,
|
||||
awful.layout.suit.fair,
|
||||
awful.layout.suit.fair.horizontal,
|
||||
awful.layout.suit.spiral,
|
||||
awful.layout.suit.spiral.dwindle,
|
||||
awful.layout.suit.max,
|
||||
awful.layout.suit.max.fullscreen,
|
||||
awful.layout.suit.magnifier,
|
||||
awful.layout.suit.floating
|
||||
}
|
||||
|
||||
----- Wallpaper
|
||||
if beautiful.wallpaper then
|
||||
for s = 1, screen.count() do
|
||||
gears.wallpaper.maximized(beautiful.wallpaper, s, true)
|
||||
end
|
||||
end
|
||||
|
||||
----- Tags
|
||||
-- Define a tag table which hold all screen tags.
|
||||
tags = {}
|
||||
for s = 1, screen.count() do
|
||||
-- Each screen has its own tag table.
|
||||
tags[s] = awful.tag({ 1, 2, 3, 4, 5, 6, 7, 8, 9 }, s, layouts[1])
|
||||
end
|
||||
|
||||
----- Menu
|
||||
-- Create a laucher widget and a main menu
|
||||
myawesomemenu = {
|
||||
{ "manual", terminal .. " -e man awesome" },
|
||||
{ "edit config", editor_cmd .. " " .. awesome.conffile },
|
||||
{ "restart", awesome.restart },
|
||||
{ "quit", awesome.quit }
|
||||
}
|
||||
|
||||
mymainmenu = awful.menu(
|
||||
{ items = { { "awesome", myawesomemenu, beautiful.awesome_icon },
|
||||
{ "open terminal", terminal } } })
|
||||
|
||||
mylauncher = awful.widget.launcher({ image = beautiful.awesome_icon,
|
||||
menu = mymainmenu })
|
||||
|
||||
-- Menubar configuration
|
||||
menubar.utils.terminal = terminal -- Set the terminal for applications
|
||||
-- that require it
|
||||
|
||||
----- Wibox
|
||||
-- Create a textclock widget
|
||||
mytextclock = awful.widget.textclock()
|
||||
|
||||
-- Create a wibox for each screen and add it
|
||||
mywibox = {}
|
||||
mypromptbox = {}
|
||||
mylayoutbox = {}
|
||||
mytaglist = {}
|
||||
mytasklist = {}
|
||||
|
||||
mymaillist = wibox.widget.textbox()
|
||||
mymaillist:set_text(
|
||||
string.format(" ryu: %d gmail: %d aethon: %d 9f: %d",
|
||||
new_mail('ryuslash.org/inbox'),
|
||||
new_mail('gmail/inbox'),
|
||||
new_mail('aethon/inbox'),
|
||||
new_mail('ninthfloor/inbox')))
|
||||
mymaillisttimer = timer({ timeout = 60 })
|
||||
mymaillisttimer:connect_signal(
|
||||
"timeout",
|
||||
function ()
|
||||
mymaillist:set_text(
|
||||
string.format(" ryu: %d gmail: %d aethon: %d 9f: %d",
|
||||
new_mail('ryuslash.org/inbox'),
|
||||
new_mail('gmail/inbox'),
|
||||
new_mail('aethon/inbox'),
|
||||
new_mail('ninthfloor/inbox')))
|
||||
end)
|
||||
mymaillisttimer:start()
|
||||
|
||||
mytodolist = wibox.widget.textbox()
|
||||
mytodolist:set_text(
|
||||
string.format(" ptodo: %d wtodo: %d",
|
||||
awful.util.pread("todo-count t"),
|
||||
awful.util.pread("todo-count w")))
|
||||
mytodolisttimer = timer({ timeout = 60 * 60 })
|
||||
mytodolisttimer:connect_signal(
|
||||
"timeout",
|
||||
function ()
|
||||
mytodolist:set_text(
|
||||
string.format(" pers: %d work: %d",
|
||||
awful.util.pread("todo-count t"),
|
||||
awful.util.pread("todo-count w")))
|
||||
end)
|
||||
mytodolisttimer:start()
|
||||
|
||||
for s = 1, screen.count() do
|
||||
-- Create a promptbox for each screen
|
||||
mypromptbox[s] = awful.widget.prompt()
|
||||
-- Create an imagebox widget which will contains an icon
|
||||
-- indicating which layout we're using. We need one layoutbox per
|
||||
-- screen.
|
||||
mylayoutbox[s] = awful.widget.layoutbox(s)
|
||||
-- Create a taglist widget
|
||||
mytaglist[s] = awful.widget.taglist(
|
||||
s, awful.widget.taglist.filter.all, mytaglist.buttons)
|
||||
|
||||
-- Create a tasklist widget
|
||||
mytasklist[s] = awful.widget.tasklist(
|
||||
s, awful.widget.tasklist.filter.currenttags, mytasklist.buttons)
|
||||
|
||||
-- Create the wibox
|
||||
mywibox[s] = awful.wibox({ position = "top", screen = s })
|
||||
|
||||
-- Widgets that are aligned to the left
|
||||
local left_layout = wibox.layout.fixed.horizontal()
|
||||
left_layout:add(mylauncher)
|
||||
left_layout:add(mytaglist[s])
|
||||
left_layout:add(mypromptbox[s])
|
||||
|
||||
-- Widgets that are aligned to the right
|
||||
local right_layout = wibox.layout.fixed.horizontal()
|
||||
if s == 1 then
|
||||
right_layout:add(mytodolist)
|
||||
right_layout:add(mymaillist)
|
||||
right_layout:add(wibox.widget.systray())
|
||||
end
|
||||
right_layout:add(mytextclock)
|
||||
right_layout:add(mylayoutbox[s])
|
||||
|
||||
-- Now bring it all together (with the tasklist in the middle)
|
||||
local layout = wibox.layout.align.horizontal()
|
||||
layout:set_left(left_layout)
|
||||
layout:set_middle(mytasklist[s])
|
||||
layout:set_right(right_layout)
|
||||
|
||||
mywibox[s]:set_widget(layout)
|
||||
end
|
||||
|
||||
----- Key bindings
|
||||
globalkeys = awful.util.table.join(
|
||||
awful.key({ modkey, }, "Left", awful.tag.viewprev),
|
||||
awful.key({ modkey, }, "Right", awful.tag.viewnext),
|
||||
awful.key({ modkey, }, "Escape", awful.tag.history.restore),
|
||||
|
||||
awful.key({ modkey, }, "n",
|
||||
function ()
|
||||
awful.client.focus.byidx(1)
|
||||
if client.focus then client.focus:raise() end
|
||||
end),
|
||||
awful.key({ modkey, }, "p",
|
||||
function ()
|
||||
awful.client.focus.byidx(-1)
|
||||
if client.focus then client.focus:raise() end
|
||||
end),
|
||||
|
||||
-- Layout manipulation
|
||||
awful.key({ modkey, "Shift" }, "n",
|
||||
function () awful.client.swap.byidx(1) end),
|
||||
awful.key({ modkey, "Shift" }, "p",
|
||||
function () awful.client.swap.byidx(-1) end),
|
||||
awful.key({ modkey, "Control" }, "n",
|
||||
function () awful.screen.focus_relative(1) end),
|
||||
awful.key({ modkey, "Control" }, "p",
|
||||
function () awful.screen.focus_relative(-1) end),
|
||||
awful.key({ modkey, }, "u", awful.client.urgent.jumpto),
|
||||
awful.key({ modkey, }, "Tab",
|
||||
function ()
|
||||
awful.client.focus.history.previous()
|
||||
if client.focus then
|
||||
client.focus:raise()
|
||||
end
|
||||
end),
|
||||
|
||||
-- Standard program
|
||||
awful.key({ modkey, }, "Return",
|
||||
function () awful.util.spawn(terminal) end),
|
||||
awful.key({ modkey, "Control" }, "r", awesome.restart),
|
||||
awful.key({ modkey, "Shift" }, "q", awesome.quit),
|
||||
|
||||
awful.key({ modkey, }, "l",
|
||||
function () awful.tag.incmwfact( 0.05) end),
|
||||
awful.key({ modkey, }, "h",
|
||||
function () awful.tag.incmwfact(-0.05) end),
|
||||
awful.key({ modkey, "Shift" }, "h",
|
||||
function () awful.tag.incnmaster(1) end),
|
||||
awful.key({ modkey, "Shift" }, "l",
|
||||
function () awful.tag.incnmaster(-1) end),
|
||||
awful.key({ modkey, "Control" }, "h",
|
||||
function () awful.tag.incncol(1) end),
|
||||
awful.key({ modkey, "Control" }, "l",
|
||||
function () awful.tag.incncol(-1) end),
|
||||
awful.key({ modkey, }, "space",
|
||||
function () awful.layout.inc(layouts, 1) end),
|
||||
awful.key({ modkey, "Shift" }, "space",
|
||||
function () awful.layout.inc(layouts, -1) end),
|
||||
|
||||
awful.key({ modkey, "Control" }, "j", awful.client.restore),
|
||||
|
||||
-- Prompt
|
||||
awful.key({ modkey }, "r",
|
||||
function () mypromptbox[mouse.screen]:run() end),
|
||||
|
||||
awful.key({ modkey }, "x",
|
||||
function ()
|
||||
awful.prompt.run(
|
||||
{ prompt = "Run Lua code: " },
|
||||
mypromptbox[mouse.screen].widget,
|
||||
awful.util.eval, nil,
|
||||
awful.util.getdir("cache") .. "/history_eval")
|
||||
end),
|
||||
|
||||
ror_combo({ modkey }, "e", 'emacsclient -ca emacs', 'Emacs'),
|
||||
ror_combo({ modkey }, "c", 'urxvt', 'URxvt'),
|
||||
ror_combo({ modkey }, "w", 'conkeror', 'Conkeror'),
|
||||
awful.key({ "Control", "Mod1" }, "l",
|
||||
function () awful.util.spawn('i3lock -c 000000') end))
|
||||
|
||||
clientkeys = awful.util.table.join(
|
||||
awful.key({ modkey, }, "f",
|
||||
function (c) c.fullscreen = not c.fullscreen end),
|
||||
awful.key({ modkey, "Shift" }, "c",
|
||||
function (c) c:kill() end),
|
||||
awful.key({ modkey, "Control" }, "space",
|
||||
awful.client.floating.toggle),
|
||||
awful.key({ modkey, "Control" }, "Return",
|
||||
function (c) c:swap(awful.client.getmaster()) end),
|
||||
awful.key({ modkey, }, "o",
|
||||
function () awful.screen.focus_relative(1) end),
|
||||
awful.key({ modkey, "Shift" }, "o", awful.client.movetoscreen),
|
||||
awful.key({ modkey, }, "t", function (c) c.ontop = not c.ontop end),
|
||||
awful.key({ modkey, }, "m",
|
||||
function (c)
|
||||
c.maximized_horizontal = not c.maximized_horizontal
|
||||
c.maximized_vertical = not c.maximized_vertical
|
||||
end))
|
||||
|
||||
-- Compute the maximum number of digit we need, limited to 9
|
||||
keynumber = 0
|
||||
for s = 1, screen.count() do
|
||||
keynumber = math.min(9, math.max(#tags[s], keynumber))
|
||||
end
|
||||
|
||||
-- Bind all key numbers to tags. Be careful: we use keycodes to make
|
||||
-- it works on any keyboard layout. This should map on the top row of
|
||||
-- your keyboard, usually 1 to 9.
|
||||
for i = 1, keynumber do
|
||||
globalkeys = awful.util.table.join(
|
||||
globalkeys,
|
||||
awful.key({ modkey }, "#" .. i + 9,
|
||||
function ()
|
||||
local screen = mouse.screen
|
||||
if tags[screen][i] then
|
||||
awful.tag.viewonly(tags[screen][i])
|
||||
end
|
||||
end),
|
||||
awful.key({ modkey, "Control" }, "#" .. i + 9,
|
||||
function ()
|
||||
local screen = mouse.screen
|
||||
if tags[screen][i] then
|
||||
awful.tag.viewtoggle(tags[screen][i])
|
||||
end
|
||||
end),
|
||||
awful.key({ modkey, "Shift" }, "#" .. i + 9,
|
||||
function ()
|
||||
if client.focus and tags[client.focus.screen][i] then
|
||||
awful.client.movetotag(tags[client.focus.screen][i])
|
||||
end
|
||||
end),
|
||||
awful.key({ modkey, "Control", "Shift" }, "#" .. i + 9,
|
||||
function ()
|
||||
if client.focus and tags[client.focus.screen][i] then
|
||||
awful.client.toggletag(tags[client.focus.screen][i])
|
||||
end
|
||||
end))
|
||||
end
|
||||
|
||||
-- Set keys
|
||||
root.keys(globalkeys)
|
||||
|
||||
----- Rules
|
||||
awful.rules.rules = {
|
||||
-- All clients will match this rule.
|
||||
{ rule = { },
|
||||
properties = { border_width = beautiful.border_width,
|
||||
border_color = beautiful.border_normal,
|
||||
focus = awful.client.focus.filter,
|
||||
keys = clientkeys } },
|
||||
{ rule = { class = "pinentry" },
|
||||
properties = { floating = true } },
|
||||
{ rule = { class = "gimp" },
|
||||
properties = { floating = true } },
|
||||
{ rule = { class = "Conkeror" },
|
||||
properties = { floating = false,
|
||||
tag = tags[2][1] } },
|
||||
-- Set Firefox to always map on tags number 2 of screen 1.
|
||||
-- { rule = { class = "Firefox" },
|
||||
-- properties = { tag = tags[1][2] } },
|
||||
}
|
||||
|
||||
----- Signals
|
||||
-- Signal function to execute when a new client appears.
|
||||
client.connect_signal(
|
||||
"manage",
|
||||
function (c, startup)
|
||||
if not startup then
|
||||
-- Set the windows at the slave, i.e. put it at the end of
|
||||
-- others instead of setting it master.
|
||||
-- awful.client.setslave(c)
|
||||
|
||||
-- Put windows in a smart way, only if they does not set an
|
||||
-- initial position.
|
||||
if not c.size_hints.user_position
|
||||
and not c.size_hints.program_position then
|
||||
awful.placement.no_overlap(c)
|
||||
awful.placement.no_offscreen(c)
|
||||
end
|
||||
end
|
||||
end)
|
||||
|
||||
client.connect_signal(
|
||||
"focus", function(c) c.border_color = beautiful.border_focus end)
|
||||
client.connect_signal(
|
||||
"unfocus", function(c) c.border_color = beautiful.border_normal end)
|
|
@ -1,4 +0,0 @@
|
|||
DESTDIR:=$(DESTDIR)/themes
|
||||
modules=custom
|
||||
|
||||
include ../../../dotfiles.mk
|
|
@ -1,4 +0,0 @@
|
|||
DESTDIR:=$(DESTDIR)/custom
|
||||
objects=theme.lua
|
||||
|
||||
include ../../../../dotfiles.mk
|
|
@ -1,96 +0,0 @@
|
|||
---------------------------
|
||||
-- Default awesome theme --
|
||||
---------------------------
|
||||
|
||||
theme = {}
|
||||
|
||||
theme.font = "osaka_unicode 10"
|
||||
|
||||
theme.bg_normal = "#222222"
|
||||
theme.bg_focus = "#535d6c"
|
||||
theme.bg_urgent = "#ff0000"
|
||||
theme.bg_minimize = "#444444"
|
||||
|
||||
theme.fg_normal = "#aaaaaa"
|
||||
theme.fg_focus = "#ffffff"
|
||||
theme.fg_urgent = "#ffffff"
|
||||
theme.fg_minimize = "#ffffff"
|
||||
|
||||
theme.border_width = "1"
|
||||
theme.border_normal = "#000000"
|
||||
theme.border_focus = "#535d6c"
|
||||
theme.border_marked = "#91231c"
|
||||
|
||||
-- There are other variable sets
|
||||
-- overriding the default one when
|
||||
-- defined, the sets are:
|
||||
-- [taglist|tasklist]_[bg|fg]_[focus|urgent]
|
||||
-- titlebar_[bg|fg]_[normal|focus]
|
||||
-- tooltip_[font|opacity|fg_color|bg_color|border_width|border_color]
|
||||
-- mouse_finder_[color|timeout|animate_timeout|radius|factor]
|
||||
-- Example:
|
||||
--theme.taglist_bg_focus = "#ff0000"
|
||||
|
||||
-- Display the taglist squares
|
||||
theme.taglist_squares_sel = "/home/slash/.config/awesome/themes/custom/taglist/squarefw.png"
|
||||
theme.taglist_squares_unsel = "/home/slash/.config/awesome/themes/custom/taglist/squarew.png"
|
||||
|
||||
theme.tasklist_floating_icon = "/home/slash/.config/awesome/themes/custom/tasklist/floatingw.png"
|
||||
|
||||
-- Variables set for theming the menu:
|
||||
-- menu_[bg|fg]_[normal|focus]
|
||||
-- menu_[border_color|border_width]
|
||||
theme.menu_submenu_icon = "/home/slash/.config/awesome/themes/custom/submenu.png"
|
||||
theme.menu_height = "15"
|
||||
theme.menu_width = "100"
|
||||
|
||||
-- You can add as many variables as
|
||||
-- you wish and access them by using
|
||||
-- beautiful.variable in your rc.lua
|
||||
--theme.bg_widget = "#cc0000"
|
||||
|
||||
-- Define the image to load
|
||||
theme.titlebar_close_button_normal = "/home/slash/.config/awesome/themes/custom/titlebar/close_normal.png"
|
||||
theme.titlebar_close_button_focus = "/home/slash/.config/awesome/themes/custom/titlebar/close_focus.png"
|
||||
|
||||
theme.titlebar_ontop_button_normal_inactive = "/home/slash/.config/awesome/themes/custom/titlebar/ontop_normal_inactive.png"
|
||||
theme.titlebar_ontop_button_focus_inactive = "/home/slash/.config/awesome/themes/custom/titlebar/ontop_focus_inactive.png"
|
||||
theme.titlebar_ontop_button_normal_active = "/home/slash/.config/awesome/themes/custom/titlebar/ontop_normal_active.png"
|
||||
theme.titlebar_ontop_button_focus_active = "/home/slash/.config/awesome/themes/custom/titlebar/ontop_focus_active.png"
|
||||
|
||||
theme.titlebar_sticky_button_normal_inactive = "/home/slash/.config/awesome/themes/custom/titlebar/sticky_normal_inactive.png"
|
||||
theme.titlebar_sticky_button_focus_inactive = "/home/slash/.config/awesome/themes/custom/titlebar/sticky_focus_inactive.png"
|
||||
theme.titlebar_sticky_button_normal_active = "/home/slash/.config/awesome/themes/custom/titlebar/sticky_normal_active.png"
|
||||
theme.titlebar_sticky_button_focus_active = "/home/slash/.config/awesome/themes/custom/titlebar/sticky_focus_active.png"
|
||||
|
||||
theme.titlebar_floating_button_normal_inactive = "/home/slash/.config/awesome/themes/custom/titlebar/floating_normal_inactive.png"
|
||||
theme.titlebar_floating_button_focus_inactive = "/home/slash/.config/awesome/themes/custom/titlebar/floating_focus_inactive.png"
|
||||
theme.titlebar_floating_button_normal_active = "/home/slash/.config/awesome/themes/custom/titlebar/floating_normal_active.png"
|
||||
theme.titlebar_floating_button_focus_active = "/home/slash/.config/awesome/themes/custom/titlebar/floating_focus_active.png"
|
||||
|
||||
theme.titlebar_maximized_button_normal_inactive = "/home/slash/.config/awesome/themes/custom/titlebar/maximized_normal_inactive.png"
|
||||
theme.titlebar_maximized_button_focus_inactive = "/home/slash/.config/awesome/themes/custom/titlebar/maximized_focus_inactive.png"
|
||||
theme.titlebar_maximized_button_normal_active = "/home/slash/.config/awesome/themes/custom/titlebar/maximized_normal_active.png"
|
||||
theme.titlebar_maximized_button_focus_active = "/home/slash/.config/awesome/themes/custom/titlebar/maximized_focus_active.png"
|
||||
|
||||
-- You can use your own command to set your wallpaper
|
||||
theme.wallpaper_cmd = { "awsetbg -u feh -c /usr/share/archlinux/wallpaper/archlinux-simplyblack.png" }
|
||||
|
||||
-- You can use your own layout icons like this:
|
||||
theme.layout_fairh = "/home/slash/.config/awesome/themes/custom/layouts/fairhw.png"
|
||||
theme.layout_fairv = "/home/slash/.config/awesome/themes/custom/layouts/fairvw.png"
|
||||
theme.layout_floating = "/home/slash/.config/awesome/themes/custom/layouts/floatingw.png"
|
||||
theme.layout_magnifier = "/home/slash/.config/awesome/themes/custom/layouts/magnifierw.png"
|
||||
theme.layout_max = "/home/slash/.config/awesome/themes/custom/layouts/maxw.png"
|
||||
theme.layout_fullscreen = "/home/slash/.config/awesome/themes/custom/layouts/fullscreenw.png"
|
||||
theme.layout_tilebottom = "/home/slash/.config/awesome/themes/custom/layouts/tilebottomw.png"
|
||||
theme.layout_tileleft = "/home/slash/.config/awesome/themes/custom/layouts/tileleftw.png"
|
||||
theme.layout_tile = "/home/slash/.config/awesome/themes/custom/layouts/tilew.png"
|
||||
theme.layout_tiletop = "/home/slash/.config/awesome/themes/custom/layouts/tiletopw.png"
|
||||
theme.layout_spiral = "/home/slash/.config/awesome/themes/custom/layouts/spiralw.png"
|
||||
theme.layout_dwindle = "/home/slash/.config/awesome/themes/custom/layouts/dwindlew.png"
|
||||
|
||||
theme.awesome_icon = "/usr/share/awesome/icons/awesome16.png"
|
||||
|
||||
return theme
|
||||
-- vim: filetype=lua:expandtab:shiftwidth=4:tabstop=8:softtabstop=4:textwidth=80
|
|
@ -1,4 +0,0 @@
|
|||
DESTDIR:=$(DESTDIR)/clfswm
|
||||
objects=clfswmrc
|
||||
|
||||
include ../../dotfiles.mk
|
|
@ -1,4 +0,0 @@
|
|||
DESTDIR:=$(DESTDIR)/cower
|
||||
objects=config
|
||||
|
||||
include ../../dotfiles.mk
|
|
@ -1,4 +0,0 @@
|
|||
DESTDIR:=$(DESTDIR)/dunst
|
||||
objects=dunstrc
|
||||
|
||||
include ../../dotfiles.mk
|
|
@ -1,4 +0,0 @@
|
|||
DESTDIR:=$(DESTDIR)/fehlstart
|
||||
objects=fehlstart.rc
|
||||
|
||||
include ../../dotfiles.mk
|
|
@ -1,4 +0,0 @@
|
|||
DESTDIR:=$(DESTDIR)/fish
|
||||
objects=config.fish
|
||||
|
||||
include ../../dotfiles.mk
|
|
@ -1,6 +0,0 @@
|
|||
DESTDIR:=$(DESTDIR)/herbstluftwm
|
||||
objects=autostart panel.sh
|
||||
|
||||
include ../../dotfiles.mk
|
||||
|
||||
install-autostart: MODE=744
|
|
@ -1,122 +0,0 @@
|
|||
#!/bin/bash
|
||||
|
||||
# this is a simple config for herbstluftwm
|
||||
|
||||
function hc() {
|
||||
herbstclient "$@"
|
||||
}
|
||||
|
||||
hc emit_hook reload
|
||||
|
||||
# remove all existing keybindings
|
||||
hc keyunbind --all
|
||||
|
||||
# keybindings
|
||||
Mod=Mod4
|
||||
hc keybind $Mod-Shift-q quit
|
||||
hc keybind $Mod-Shift-r reload
|
||||
hc keybind $Mod-Shift-c close
|
||||
|
||||
hc keybind $Mod-c spawn urxvt
|
||||
hc keybind $Mod-e spawn emacsclient -ca emacs
|
||||
hc keybind $Mod-w spawn conkeror
|
||||
|
||||
# tags
|
||||
TAG_NAMES=( {1..9} )
|
||||
TAG_KEYS=( {1..9} 0 )
|
||||
|
||||
hc rename default "${TAG_NAMES[0]}" || true
|
||||
for i in ${!TAG_NAMES[@]} ; do
|
||||
hc add "${TAG_NAMES[$i]}"
|
||||
key="${TAG_KEYS[$i]}"
|
||||
if ! [ -z "$key" ] ; then
|
||||
hc keybind "$Mod-$key" use_index "$i"
|
||||
hc keybind "$Mod-Shift-$key" move_index "$i"
|
||||
fi
|
||||
done
|
||||
|
||||
# cycle through tags
|
||||
hc keybind $Mod-period use_index +1 --skip-visible
|
||||
hc keybind $Mod-comma use_index -1 --skip-visible
|
||||
hc keybind $Mod-Right use_index +1 --skip-visible
|
||||
hc keybind $Mod-Left use_index -1 --skip-visible
|
||||
|
||||
# layouting
|
||||
hc keybind $Mod-r remove
|
||||
hc keybind $Mod-space cycle_layout 1
|
||||
hc keybind $Mod-u split vertical 0.5
|
||||
hc keybind $Mod-o split horizontal 0.5
|
||||
hc keybind $Mod-s floating toggle
|
||||
# hc keybind $Mod-f fullscreen toggle
|
||||
# hc keybind $Mod-p pseudotile toggle
|
||||
|
||||
# resizing
|
||||
RESIZESTEP=0.05
|
||||
hc keybind $Mod-Control-h resize left +$RESIZESTEP
|
||||
hc keybind $Mod-Control-j resize down +$RESIZESTEP
|
||||
hc keybind $Mod-Control-k resize up +$RESIZESTEP
|
||||
hc keybind $Mod-Control-l resize right +$RESIZESTEP
|
||||
|
||||
# mouse
|
||||
hc mouseunbind --all
|
||||
hc mousebind $Mod-Button1 move
|
||||
hc mousebind $Mod-Button2 resize
|
||||
hc mousebind $Mod-Button3 zoom
|
||||
|
||||
# focus
|
||||
hc keybind $Mod-BackSpace cycle_monitor
|
||||
hc keybind $Mod-Tab cycle_all +1
|
||||
hc keybind $Mod-Shift-Tab cycle_all -1
|
||||
# hc keybind $Mod-c cycle
|
||||
hc keybind $Mod-b focus left
|
||||
hc keybind $Mod-n focus down
|
||||
hc keybind $Mod-p focus up
|
||||
hc keybind $Mod-f focus right
|
||||
hc keybind $Mod-i jumpto urgent
|
||||
hc keybind $Mod-Shift-h shift left
|
||||
hc keybind $Mod-Shift-j shift down
|
||||
hc keybind $Mod-Shift-k shift up
|
||||
hc keybind $Mod-Shift-l shift right
|
||||
|
||||
# colors
|
||||
hc set frame_border_active_color '#222222'
|
||||
hc set frame_border_normal_color '#101010'
|
||||
hc set frame_bg_normal_color '#565656'
|
||||
hc set frame_bg_active_color '#345F0C'
|
||||
hc set frame_border_width 1
|
||||
hc set window_border_width 3
|
||||
hc set window_border_inner_width 1
|
||||
hc set window_border_normal_color '#454545'
|
||||
hc set window_border_active_color '#9fbc00'
|
||||
hc set always_show_frame 1
|
||||
hc set frame_gap 4
|
||||
# add overlapping window borders
|
||||
hc set window_gap -2
|
||||
hc set frame_padding 2
|
||||
hc set smart_window_surroundings 0
|
||||
hc set smart_frame_surroundings 1
|
||||
hc set mouse_recenter_gap 0
|
||||
|
||||
|
||||
# rules
|
||||
hc unrule -F
|
||||
#hc rule class=XTerm tag=3 # move all xterms to tag 3
|
||||
hc rule focus=off # normally do not focus new clients
|
||||
# give focus to most common terminals
|
||||
hc rule class~'(.*[Rr]xvt.*|.*[Tt]erm|Konsole)' focus=on
|
||||
hc rule windowtype~'_NET_WM_WINDOW_TYPE_(DIALOG|UTILITY|SPLASH)' pseudotile=on
|
||||
hc rule windowtype='_NET_WM_WINDOW_TYPE_DIALOG' focus=on
|
||||
hc rule windowtype~'_NET_WM_WINDOW_TYPE_(NOTIFICATION|DOCK)' manage=off
|
||||
|
||||
# unlock, just to be sure
|
||||
hc unlock
|
||||
|
||||
herbstclient set tree_style '╾│ ├└╼─┐'
|
||||
|
||||
# do multi monitor setup here, e.g.:
|
||||
# hc set_monitors 1280x1024+0+0 1280x1024+1280+0
|
||||
# or simply:
|
||||
# hc detect_monitors
|
||||
|
||||
hc set_monitors 1920x1080+0+0 1680x1050+1920+0
|
||||
hc pad 0 21
|
|
@ -1,4 +0,0 @@
|
|||
DESTDIR:=$(DESTDIR)/newsbeuter
|
||||
objects=config urls
|
||||
|
||||
include ../../dotfiles.mk
|
|
@ -1,4 +0,0 @@
|
|||
DESTDIR:=$(DESTDIR)/zathura
|
||||
objects=zathurarc
|
||||
|
||||
include ../../dotfiles.mk
|
|
@ -1,5 +0,0 @@
|
|||
DESTDIR:=$(DESTDIR)/.conkerorrc
|
||||
modules=themes styles
|
||||
objects=gtk2rc init.js ext_restore.js
|
||||
|
||||
include ../dotfiles.mk
|
|
@ -1,311 +0,0 @@
|
|||
require("content-policy.js");
|
||||
require("favicon");
|
||||
|
||||
load_paths.push("file:///usr/local/clark/share/conkeror/modules/");
|
||||
theme_load_paths.push("/home/slash/.conkerorrc/themes/");
|
||||
|
||||
require("clark");
|
||||
|
||||
define_browser_object_class(
|
||||
"history-url", null,
|
||||
function (I, prompt) {
|
||||
check_buffer(I.buffer, content_buffer);
|
||||
var result = yield I.buffer.window.minibuffer.read_url(
|
||||
$prompt = prompt, $use_webjumps = false, $use_history = true,
|
||||
$use_bookmarks = false, $sort_order = 'date_descending'
|
||||
);
|
||||
yield co_return(result);
|
||||
}
|
||||
);
|
||||
|
||||
function ext_title_format(window) {
|
||||
return '(' + get_current_profile() +') '
|
||||
+ window.buffers.current.description;
|
||||
}
|
||||
|
||||
function oni_add_sheet(css) {
|
||||
let (sheet = get_home_directory()) {
|
||||
sheet.append(".conkerorrc");
|
||||
sheet.append("styles");
|
||||
sheet.append(css);
|
||||
register_user_stylesheet(make_uri(sheet));
|
||||
};
|
||||
}
|
||||
|
||||
function oni_before_quit_func() {
|
||||
var w = get_recent_conkeror_window();
|
||||
var result = (w == null) ||
|
||||
"y" == (yield w.minibuffer.read_single_character_option(
|
||||
$prompt="Quit Conkeror? (y/n)",
|
||||
$options=["y", "n"]));
|
||||
yield co_return(result);
|
||||
}
|
||||
|
||||
function oni_block_flash(content_type, content_location) {
|
||||
var Y = content_policy_accept, N = content_policy_reject;
|
||||
var action = ({ "youtube.com": Y }
|
||||
[content_location.host] || N);
|
||||
|
||||
if (action == N)
|
||||
dumpln("blocked flash: " + content_location.spec);
|
||||
|
||||
return action;
|
||||
}
|
||||
|
||||
function oni_escape(str) {
|
||||
return str.replace(/(["$`])/g, '\\$1');
|
||||
}
|
||||
|
||||
function oni_org_store_link(I) {
|
||||
var cmd_str = 'emacsclient \"org-protocol://store-link://'
|
||||
+ encodeURIComponent(I.buffer.display_uri_string) + '/'
|
||||
+ encodeURIComponent(I.buffer.document.title) + '\"';
|
||||
|
||||
if (I.window != null) {
|
||||
window.minibuffer.message('Issuing ' + cmd_str);
|
||||
}
|
||||
|
||||
shell_command_blind(cmd_str);
|
||||
}
|
||||
interactive("org-store-link",
|
||||
"Stores [[url][title]] as org link and copies url to emacs "
|
||||
+ "kill ring",
|
||||
oni_org_store_link);
|
||||
|
||||
interactive("find-url-from-history",
|
||||
"Find a page from history in the current buffer",
|
||||
"find-url",
|
||||
$browser_object = browser_object_history_url);
|
||||
interactive("find-url-from-history-new-buffer",
|
||||
"Find a page from history in a new buffer",
|
||||
"find-url-new-buffer",
|
||||
$browser_object = browser_object_history_url);
|
||||
|
||||
define_webjump("emacswiki",
|
||||
"http://www.google.com/cse?cx=004774160799092323420%3A6-ff2s0o6yi&q=%s",
|
||||
$alternative="http://www.emacswiki.org");
|
||||
define_webjump("php",
|
||||
"http://www.php.net/manual-lookup.php?pattern=%s&scope=quickref",
|
||||
$alternative="http://www.php.net");
|
||||
define_webjump("python",
|
||||
"http://docs.python.org/search.html?q=%s&check_keywords=yes&area=default",
|
||||
$alternative="http://www.python.org");
|
||||
define_webjump("ddg",
|
||||
"https://duckduckgo.com/?q=%s",
|
||||
$alternative="https://duckduckgo.com");
|
||||
define_webjump("metal-archives",
|
||||
"http://www.metal-archives.com/search?searchString=%s&type=band_name",
|
||||
$alternative="http://www.metal-archives.com");
|
||||
define_webjump("djangodocs",
|
||||
"https://docs.djangoproject.com/search/?q=%s&release=5",
|
||||
$alternative="https://docs.djangoproject.com/");
|
||||
define_webjump("google",
|
||||
"https://duckduckgo.com?q=!google%%20%s");
|
||||
define_webjump("github",
|
||||
"https://github.com/search?q=%s&type=Everything&repo=&langOverride=&start_value=1",
|
||||
$alternative="https://github.com");
|
||||
define_webjump("mdn",
|
||||
"https://developer.mozilla.org/en-US/search?q=%s",
|
||||
$alternative="https://developer.mozilla.org/");
|
||||
define_webjump("monsterhunter",
|
||||
"http://monsterhunter.wikia.com/wiki/index.php?search=%s&fulltext=Search",
|
||||
$alternative="http://monsterhunter.wikia.com/");
|
||||
// Archlinux
|
||||
define_webjump("arch/wiki",
|
||||
"https://wiki.archlinux.org/index.php?search=%s",
|
||||
$alternative="https://wiki.archlinux.org");
|
||||
define_webjump("arch/aur",
|
||||
"https://aur.archlinux.org/packages.php?O=0&K=%s&do_Search=Go",
|
||||
$alternative="https://aur.archlinux.org");
|
||||
define_webjump("arch/packages",
|
||||
"https://www.archlinux.org/packages/?sort=&q=%s&limit=50",
|
||||
$alternative="https://packages.archlinux.org");
|
||||
|
||||
/// Chickadee
|
||||
// From http://conkeror.org/Webjumps
|
||||
function chickadee_completer (input, cursor_position, conservative) {
|
||||
var completions = [];
|
||||
var content = yield send_http_request(
|
||||
load_spec({uri: "http://api.call-cc.org/cdoc/ajax/prefix?q="+
|
||||
encodeURIComponent(input)}));
|
||||
if (content.responseText) {
|
||||
var parser = Cc["@mozilla.org/xmlextras/domparser;1"]
|
||||
.createInstance(Ci.nsIDOMParser);
|
||||
var doc = parser.parseFromString(content.responseText, "text/xml");
|
||||
var res = doc.getElementsByTagName("li");
|
||||
for (let i = 0, n = res.length; i < n; ++i) {
|
||||
completions.push(res[i].textContent);
|
||||
}
|
||||
}
|
||||
yield co_return(prefix_completer($completions = completions)
|
||||
(input, cursor_position, conservative));
|
||||
}
|
||||
define_webjump("chickadee",
|
||||
"http://api.call-cc.org/cdoc?q=%s&query-name=Lookup",
|
||||
$alternative = "http://api.call-cc.org/doc/",
|
||||
$completer = chickadee_completer);
|
||||
/// /Chickadee
|
||||
|
||||
// content_policy_bytype_table.object = oni_block_flash;
|
||||
cwd = make_file("/home/slash/downloads/");
|
||||
hint_digits = "arstdhneio";
|
||||
read_buffer_show_icons = true;
|
||||
title_format_fn = ext_title_format;
|
||||
url_remoting_fn = load_url_in_new_buffer;
|
||||
markam_program = "/home/slash/projects/markam/src/markam";
|
||||
|
||||
define_key(content_buffer_normal_keymap, "C-x C-b", "switch-to-buffer");
|
||||
define_key(content_buffer_normal_keymap, "C-y", "paste-url-new-buffer");
|
||||
define_key(content_buffer_normal_keymap, "H", "find-url-from-history");
|
||||
define_key(content_buffer_normal_keymap, "h", "find-url-from-history-new-buffer");
|
||||
define_key(default_base_keymap, "C-x f", "follow-new-buffer");
|
||||
define_key(content_buffer_normal_keymap, "b", clark_keymap);
|
||||
|
||||
add_hook("before_quit_hook", oni_before_quit_func);
|
||||
add_hook("content_policy_hook", content_policy_bytype);
|
||||
add_hook("mode_line_hook", mode_line_adder(buffer_count_widget));
|
||||
add_hook("mode_line_hook", mode_line_adder(buffer_icon_widget), true);
|
||||
add_hook("mode_line_hook", mode_line_adder(clark_bookmarked_widget), true);
|
||||
add_hook("mode_line_hook", mode_line_adder(downloads_status_widget));
|
||||
|
||||
remove_hook("download_added_hook", open_download_buffer_automatically);
|
||||
|
||||
hints_minibuffer_annotation_mode(true);
|
||||
theme_load("yoshi");
|
||||
|
||||
external_content_handlers.set("application/pdf", "zathura");
|
||||
external_content_handlers.set("application/vnd.ms-excel", "libreoffice");
|
||||
|
||||
var gh_url = "http://github.com/";
|
||||
function read_url_github_ad_command_handler(input)
|
||||
{
|
||||
var m = /^gh\s+@(\S+)(?:\s+((?:un)?follow))?/.exec(input);
|
||||
if (m) {
|
||||
if (m[2])
|
||||
return gh_url + "users/follow?target=";
|
||||
return gh_url + m[1];
|
||||
}
|
||||
|
||||
return null;
|
||||
}
|
||||
|
||||
function read_url_github_my_command_handler(input)
|
||||
{
|
||||
var m = /^gh\s+my\s+(dashboard|issues|notifications|profile|pulls|stars)/.exec(input);
|
||||
|
||||
if (m) {
|
||||
switch (m[1]) {
|
||||
case "dashboard":
|
||||
case "notifications":
|
||||
case "stars":
|
||||
return gh_url + m[1];
|
||||
case "issues":
|
||||
case "pulls":
|
||||
return gh_url + "dashboard/" + m[1];
|
||||
case "profile":
|
||||
return gh_url + "settings/" + m[1];
|
||||
}
|
||||
}
|
||||
|
||||
return null;
|
||||
}
|
||||
|
||||
function read_url_github_repo_command_handler(input)
|
||||
{
|
||||
var m = /^gh\s+(\S+\/\S+)(?:\s+(\#\d+|\@\S+|issues|pulls|wiki|graphs|network|admin)(?:\s+(\#\d+|new))?)?$/.exec(input);
|
||||
|
||||
if (m) {
|
||||
repo_url = gh_url + m[1] + "/";
|
||||
|
||||
switch (m[2]) {
|
||||
case "issues":
|
||||
issues_url = repo_url + m[2] + "/";
|
||||
|
||||
if (m[3]) {
|
||||
if (m[3][0] == '#')
|
||||
return issues_url + m[3].substring(1);
|
||||
else if (m[3] == "new")
|
||||
return issues_url + m[3];
|
||||
else
|
||||
break;
|
||||
}
|
||||
|
||||
return issues_url;
|
||||
case "pulls":
|
||||
case "wiki":
|
||||
case "graphs":
|
||||
case "network":
|
||||
case "admin":
|
||||
return repo_url + m[2];
|
||||
default:
|
||||
// Still need watch and unwatch
|
||||
if (m[2]) {
|
||||
if (m[2][0] == '#')
|
||||
return repo_url + "issues/" + m[2].substring(1);
|
||||
else if (m[2][0] == '@')
|
||||
return repo_url + "tree/" + m[2].substring(1);
|
||||
else
|
||||
break;
|
||||
}
|
||||
|
||||
return repo_url;
|
||||
}
|
||||
}
|
||||
|
||||
return null;
|
||||
}
|
||||
|
||||
function read_url_github_command_handler(input)
|
||||
{
|
||||
return read_url_github_ad_command_handler(input)
|
||||
|| read_url_github_my_command_handler(input)
|
||||
|| read_url_github_repo_command_handler(input);
|
||||
}
|
||||
|
||||
function read_url_local_port_handler(input)
|
||||
{
|
||||
var m = /^lh (\d{1,5})(?:\s+([a-zA-Z0-9%/]+))?$/.exec(input),
|
||||
rv = null;
|
||||
|
||||
if (m) {
|
||||
rv = "http://localhost:" + m[1];
|
||||
|
||||
if (m[2])
|
||||
rv += "/" + m[2];
|
||||
}
|
||||
|
||||
return rv;
|
||||
}
|
||||
|
||||
read_url_handler_list = [read_url_local_port_handler,
|
||||
read_url_github_command_handler];
|
||||
|
||||
// Mozrepl
|
||||
let (mozrepl_init = get_home_directory()) {
|
||||
mozrepl_init.appendRelativePath(".mozrepl-conkeror.js");
|
||||
session_pref('extensions.mozrepl.initUrl', make_uri(mozrepl_init).spec);
|
||||
};
|
||||
|
||||
// if ('@hyperstruct.net/mozlab/mozrepl;1' in Cc) {
|
||||
// let mozrepl = Cc['@hyperstruct.net/mozlab/mozrepl;1']
|
||||
// .getService(Ci.nsIMozRepl);
|
||||
// if (!mozrepl.isActive())
|
||||
// mozrepl.start(4242);
|
||||
// }
|
||||
|
||||
register_user_stylesheet(
|
||||
"data:text/css," +
|
||||
escape(
|
||||
"@namespace url(\"http://www.w3.org/1999/xhtml\");\n" +
|
||||
"span.__conkeror_hint {\n" +
|
||||
" font-family: \"Envy Code R\" !important;\n" +
|
||||
" font-size: 12px !important;\n" +
|
||||
" line-height: 12px !important;\n" +
|
||||
" padding: 0 2px !important;\n" +
|
||||
"}"
|
||||
)
|
||||
);
|
||||
|
||||
oni_add_sheet("github.css");
|
||||
oni_add_sheet("help.css");
|
||||
oni_add_sheet("git-scm.css");
|
1
.conkerorrc/styles/.gitignore
vendored
|
@ -1 +0,0 @@
|
|||
*.css
|
|
@ -1,7 +0,0 @@
|
|||
DESTDIR:=$(DESTDIR)/styles
|
||||
objects=github.css help.css git-scm.css
|
||||
|
||||
include ../../dotfiles.mk
|
||||
|
||||
$(objects): %.css: %.less
|
||||
lessc -x $^ > $@
|
|
@ -1,4 +0,0 @@
|
|||
@import "tango";
|
||||
|
||||
@monospace-font: "Envy Code R";
|
||||
@background: #111113;
|
|
@ -1,18 +0,0 @@
|
|||
@import "base";
|
||||
|
||||
@-moz-document domain(git-scm.com) {
|
||||
.book#main {
|
||||
background: @background !important;
|
||||
color: @aluminium-1 !important;
|
||||
|
||||
code, pre {
|
||||
background: @aluminium-6 !important;
|
||||
color: @aluminium-2 !important;
|
||||
font-family: @monospace-font !important;
|
||||
}
|
||||
|
||||
&, code, pre {
|
||||
border: none !important;
|
||||
}
|
||||
}
|
||||
}
|
|
@ -1,162 +0,0 @@
|
|||
@import "base";
|
||||
|
||||
@-moz-document url("https://github.com/"), url("https://github.com/dashboard") {
|
||||
#dashboard {
|
||||
.filter-bar {
|
||||
background: @aluminium-5 !important;
|
||||
border-bottom: none !important;
|
||||
|
||||
li a.filter_selected {
|
||||
color: @aluminium-1 !important;
|
||||
}
|
||||
}
|
||||
|
||||
.repos {
|
||||
border: none !important;
|
||||
background-color: @aluminium-6 !important;
|
||||
|
||||
.bottom-bar {
|
||||
background-color: @aluminium-5 !important;
|
||||
}
|
||||
|
||||
.top-bar {
|
||||
background: @aluminium-5 !important;
|
||||
border-bottom: none !important;
|
||||
}
|
||||
|
||||
h2 {
|
||||
color: inherit !important;
|
||||
}
|
||||
}
|
||||
|
||||
ul.repo_list li {
|
||||
&.private {
|
||||
background: @aluminium-5 !important;
|
||||
}
|
||||
|
||||
a {
|
||||
border-width: 0 !important;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
#footer {
|
||||
text-shadow: none !important;
|
||||
}
|
||||
|
||||
.button .minibutton {
|
||||
background: @aluminium-6 !important;
|
||||
}
|
||||
|
||||
.header {
|
||||
background: @aluminium-5 !important;
|
||||
color: @aluminium-1 !important;
|
||||
border-bottom: none !important;
|
||||
text-shadow: none !important;
|
||||
|
||||
.divider-vertical {
|
||||
background: @aluminium-5 !important;
|
||||
border-right: none !important;
|
||||
}
|
||||
|
||||
.top-nav a,
|
||||
.topsearch a#advanced_search,
|
||||
#user-links a {
|
||||
color: @aluminium-1 !important;
|
||||
}
|
||||
}
|
||||
|
||||
.markdown-body {
|
||||
code, tt {
|
||||
background-color: @aluminium-5 !important;
|
||||
border: none !important;
|
||||
color: @aluminium-1 !important;
|
||||
font-family: @monospace-font !important;
|
||||
}
|
||||
}
|
||||
|
||||
.minibutton.dark-grey {
|
||||
backgrond: @aluminium-6 !important;
|
||||
}
|
||||
|
||||
.news {
|
||||
.alert {
|
||||
border-top: none !important;
|
||||
|
||||
.branch-info,
|
||||
.pull-info {
|
||||
background: @aluminium-5 !important;
|
||||
color: @aluminium-1 !important;
|
||||
}
|
||||
|
||||
.gravatar {
|
||||
background: none !important;
|
||||
}
|
||||
|
||||
.simple .title {
|
||||
color: @aluminium-1 !important;
|
||||
}
|
||||
}
|
||||
|
||||
.commits li img {
|
||||
background: none !important;
|
||||
}
|
||||
|
||||
blockquote {
|
||||
color: @aluminium-1 !important;
|
||||
}
|
||||
}
|
||||
|
||||
.pagehead .container > ul.tabs {
|
||||
background: @aluminium-6 !important;
|
||||
border: none !important;
|
||||
|
||||
li a {
|
||||
text-shadow: none !important;
|
||||
border: none !important;
|
||||
|
||||
&:hover,
|
||||
&.selected {
|
||||
background: @aluminium-5 !important;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.pagehead-actions a.feed {
|
||||
background: @aluminium-5 !important;
|
||||
border: none !important;
|
||||
}
|
||||
|
||||
.pagination {
|
||||
background: @aluminium-6 !important;
|
||||
border: none !important;
|
||||
|
||||
a {
|
||||
text-shadow: none !important;
|
||||
border-bottom: none !important;
|
||||
|
||||
&:hover {
|
||||
background: @aluminium-5 !important;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
a {
|
||||
color: @orange-1 !important;
|
||||
|
||||
&:visited {
|
||||
color: @plum-1 !important;
|
||||
}
|
||||
|
||||
&.header-logo-blacktocat {
|
||||
&, &:visited {
|
||||
color: @aluminium-1 !important;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
body {
|
||||
background-color: @background !important;
|
||||
color: @aluminium-1 !important;
|
||||
}
|
||||
}
|
|
@ -1,21 +0,0 @@
|
|||
@import "base";
|
||||
|
||||
@-moz-document url("chrome://conkeror-help/content/help.html") {
|
||||
body {
|
||||
background: @background !important;
|
||||
color: @aluminium-1 !important;
|
||||
}
|
||||
|
||||
a {
|
||||
color: @orange-1 !important;
|
||||
|
||||
&:visited {
|
||||
color: @plum-1 !important;
|
||||
}
|
||||
}
|
||||
|
||||
pre, .key {
|
||||
background: @aluminium-5 !important;
|
||||
font-family: @monospace-font !important;
|
||||
}
|
||||
}
|
|
@ -1,27 +0,0 @@
|
|||
@butter-1: #fce94f;
|
||||
@butter-2: #edd400;
|
||||
@butter-3: #c4a000;
|
||||
@orange-1: #fcaf3e;
|
||||
@orange-2: #f57900;
|
||||
@orange-3: #ce5c00;
|
||||
@chocolate-1: #e9b96e;
|
||||
@chocolate-2: #c17d11;
|
||||
@chocolate-3: #8f5902;
|
||||
@chameleon-1: #8ae234;
|
||||
@chameleon-2: #73d216;
|
||||
@chameleon-3: #4e9a06;
|
||||
@sky-blue-1: #729fcf;
|
||||
@sky-blue-2: #3465a4;
|
||||
@sky-blue-3: #204a87;
|
||||
@plum-1: #ad7fa8;
|
||||
@plum-2: #75507b;
|
||||
@plum-3: #5c3566;
|
||||
@scarlet-red-1: #ef2929;
|
||||
@scarlet-red-2: #cc0000;
|
||||
@scarlet-red-3: #a40000;
|
||||
@aluminium-1: #eeeeec;
|
||||
@aluminium-2: #d3d7cf;
|
||||
@aluminium-3: #babdb6;
|
||||
@aluminium-4: #888a85;
|
||||
@aluminium-5: #555753;
|
||||
@aluminium-6: #2e3436;
|
|
@ -1,4 +0,0 @@
|
|||
DESTDIR:=$(DESTDIR)/themes
|
||||
modules=naquadah yoshi
|
||||
|
||||
include ../../dotfiles.mk
|
|
@ -1,5 +0,0 @@
|
|||
DESTDIR:=$(DESTDIR)/naquadah
|
||||
objects=conkeror--scrollbars.css hints--url-panel.css minibuffer.css \
|
||||
mode-line.css new-tabs.css tab-bar.css theme.json
|
||||
|
||||
include ../../../dotfiles.mk
|
|
@ -1,5 +0,0 @@
|
|||
DESTDIR:=$(DESTDIR)/yoshi
|
||||
objects=conkeror--scrollbars.css hints--url-panel.css minibuffer.css \
|
||||
mode-line.css new-tabs.css tab-bar.css theme.json
|
||||
|
||||
include ../../../dotfiles.mk
|
9
.gitignore
vendored
|
@ -0,0 +1,9 @@
|
|||
junk/
|
||||
.src/
|
||||
.cask/
|
||||
_publish/
|
||||
|
||||
.tern-project
|
||||
\#*\#
|
||||
*\#
|
||||
.\#*
|
3
.gitmodules
vendored
|
@ -1,3 +0,0 @@
|
|||
[submodule ".config/zsh/syntax-highlighting"]
|
||||
path = .config/zsh/syntax-highlighting
|
||||
url = git://github.com/zsh-users/zsh-syntax-highlighting
|
|
@ -1,4 +0,0 @@
|
|||
DESTDIR:=$(DESTDIR)/.local
|
||||
modules=share
|
||||
|
||||
include ../dotfiles.mk
|
|
@ -1,4 +0,0 @@
|
|||
DESTDIR:=$(DESTDIR)/share
|
||||
modules=applications
|
||||
|
||||
include ../../dotfiles.mk
|
|
@ -1,4 +0,0 @@
|
|||
DESTDIR:=$(DESTDIR)/applications
|
||||
objects=moc.desktop ncmpcpp.desktop poweroff.desktop reboot.desktop
|
||||
|
||||
include ../../../dotfiles.mk
|
|
@ -1,5 +0,0 @@
|
|||
DESTDIR:=$(DESTDIR)/.moc
|
||||
modules=themes
|
||||
objects=config
|
||||
|
||||
include ../dotfiles.mk
|
|
@ -1,4 +0,0 @@
|
|||
DESTDIR:=$(DESTDIR)/themes
|
||||
objects=custom
|
||||
|
||||
include ../../dotfiles.mk
|
|
@ -1,6 +0,0 @@
|
|||
DESTDIR:=$(DESTDIR)/.mutt
|
||||
objects=aethon.muttrc arch.muttrc colors.muttrc gmail.muttrc \
|
||||
iactor.muttrc macros mailcap muttrc ninthfloor.muttrc \
|
||||
ryuslash.org.muttrc sig
|
||||
|
||||
include ../dotfiles.mk
|
|
@ -1,4 +0,0 @@
|
|||
DESTDIR:=$(DESTDIR)/.ncmpcpp
|
||||
objects=config
|
||||
|
||||
include ../dotfiles.mk
|
|
@ -1,4 +0,0 @@
|
|||
DESTDIR:=$(DESTDIR)/.pentadactyl
|
||||
modules=plugins
|
||||
|
||||
include ../dotfiles.mk
|
|
@ -1,4 +0,0 @@
|
|||
DESTDIR:=$(DESTDIR)/plugins
|
||||
objects=emacs.penta
|
||||
|
||||
include ../../dotfiles.mk
|
|
@ -1,4 +0,0 @@
|
|||
DESTDIR:=$(DESTDIR)/.sawfish
|
||||
objects=rc
|
||||
|
||||
include ../dotfiles.mk
|
|
@ -1,4 +0,0 @@
|
|||
startup_message off
|
||||
vbell off
|
||||
|
||||
hardstatus alwayslastline "%{= d}%{r}screen%{g}%H %{r}>> %{g}${USER}@%H: %L>%1`%? %?%{.g}%u%? %-18=%?%{m} %{g}%-=%{g}%-w%{r}%n %t%{g}%+w %{g}|%C"
|
0
.ssh/.gitignore
vendored
|
@ -1,4 +0,0 @@
|
|||
DESTDIR:=$(DESTDIR)/.ssh
|
||||
objects=config
|
||||
|
||||
include ../dotfiles.mk
|
22
.ssh/config
|
@ -1,22 +0,0 @@
|
|||
ControlMaster auto
|
||||
ControlPath /tmp/ssh_mux_%h_%p_%r
|
||||
ControlPersist 1m
|
||||
|
||||
Host 192.168.0.95
|
||||
Port 4511
|
||||
|
||||
Host pegas
|
||||
Port 4511
|
||||
|
||||
Host 82.170.172.156
|
||||
Port 4511
|
||||
|
||||
Host anapnea.net
|
||||
User ryuslash
|
||||
|
||||
Host my.aethon.nl
|
||||
User tom
|
||||
|
||||
Host ryuslash.org
|
||||
Port 4511
|
||||
ForwardAgent yes
|
1
.stowrc
Normal file
|
@ -0,0 +1 @@
|
|||
--target=/home/slash/
|
201
.stumpwmrc
|
@ -1,201 +0,0 @@
|
|||
;; -*- mode: lisp; -*-
|
||||
(require 'swank)
|
||||
|
||||
(in-package :stumpwm)
|
||||
|
||||
(require 'cl-ppcre)
|
||||
|
||||
(defmacro elisp (&body body)
|
||||
"Run BODY through emacsclient."
|
||||
`(sb-ext:run-program
|
||||
"/usr/bin/emacsclient"
|
||||
'("-e" ,(string-downcase (format nil "~S" (cons 'progn body))))
|
||||
:wait nil))
|
||||
|
||||
;; Naquadah
|
||||
(defun colour (key)
|
||||
(let ((colours (list :lblack #xeeeeec :dblack #x111113
|
||||
:lwhite #xa5a5a4 :dwhite #x222224
|
||||
:lred #xbf6d6d :dred #x744a4a
|
||||
:lorange #xbfa47d :dorange #x73634a
|
||||
:lyellow #xb2bf6d :dyellow #x6b734a
|
||||
:lgreen #x8abf6d :dgreen #x52734a
|
||||
:lturquoise #x7dbf97 :dturquoise #x4a735b
|
||||
:lcyan #x7dbfbf :dcyan #x4a7373
|
||||
:lblue #x6d97bf :dblue #x4a5b73
|
||||
:lpurple #x8a7dbf :dpurple #x524a73
|
||||
:lmagenta #xb27dbf :dmagenta #x6b4a73
|
||||
:lpink #xbf6da4 :dpink #x734a63)))
|
||||
(getf colours key)))
|
||||
|
||||
(defvar *conkeror-program* "conkeror"
|
||||
"The executable to run to start Conkeror.")
|
||||
(defvar *emacs-program* "emacsclient -c -a emacs"
|
||||
"The executable to run to start Emacs.")
|
||||
(defvar *firefox-program* "firefox"
|
||||
"The executable to run to start Firefox.")
|
||||
(defvar *i3lock-program* "i3lock -c 000000"
|
||||
"The executable to run to start i3lock.")
|
||||
(defvar *urxvt-program* "urxvt"
|
||||
"The executable to run to start URxvt.")
|
||||
(defvar *lock-screen-hook* nil
|
||||
"Hook run right before the screen gets locked.")
|
||||
(defvar *screen-unlocked-hook* nil
|
||||
"Hook run right after the screen is unlocked.")
|
||||
(defvar *mpd-was-playing-p* nil
|
||||
"Indicator of whether or not MPD was playing when it was paused.")
|
||||
|
||||
(defun get-mail-count (mailbox &optional (inbox "inbox"))
|
||||
"Check how many new messages there are in MAILBOX."
|
||||
(length
|
||||
(directory
|
||||
(format nil "/home/slash/documents/mail/~A/~A/new/*.*"
|
||||
mailbox inbox))))
|
||||
|
||||
(defun mpd-playing-p ()
|
||||
"Check if MPD is currently in the playing state."
|
||||
(and (cl-ppcre:scan
|
||||
"\\n\\[playing\\]"
|
||||
(with-output-to-string (status)
|
||||
(sb-ext:run-program "/usr/bin/mpc" '() :output status)))
|
||||
t))
|
||||
|
||||
(defun set-jabber-away ()
|
||||
"Tell emacs to set jabber to away presence."
|
||||
(elisp
|
||||
(when (and (fboundp 'jabber-send-away-presence)
|
||||
*jabber-connected*)
|
||||
(jabber-send-away-presence))))
|
||||
|
||||
(defun set-jabber-online ()
|
||||
"Tel emacs to set jabber to online presence."
|
||||
(elisp
|
||||
(when (and (fboundp 'jabber-send-default-presence)
|
||||
*jabber-connected*)
|
||||
(jabber-send-default-presence))))
|
||||
|
||||
(defun mpd-pause ()
|
||||
"Pause MPD playback."
|
||||
(when (setf *mpd-was-playing-p* (mpd-playing-p))
|
||||
(sb-ext:run-program "/usr/bin/mpc" '("pause") :wait nil)))
|
||||
|
||||
(defun mpd-play ()
|
||||
"Resume MPD playback."
|
||||
(when *mpd-was-playing-p*
|
||||
(sb-ext:run-program "/usr/bin/mpc" '("play") :wait nil)))
|
||||
|
||||
(defcommand run-emacs () ()
|
||||
"Open Emacs"
|
||||
(run-shell-command *emacs-program*))
|
||||
|
||||
(defcommand raise-emacs () ()
|
||||
"Open or show Emacs"
|
||||
(run-or-raise *emacs-program* '(:class "Emacs")))
|
||||
|
||||
(defcommand run-firefox () ()
|
||||
"Open Firefox"
|
||||
(run-shell-command *firefox-program*))
|
||||
|
||||
(defcommand raise-firefox () ()
|
||||
"Open or show Firefox"
|
||||
(run-or-raise *firefox-program* '(:class "Firefox")))
|
||||
|
||||
(defcommand run-conkeror () ()
|
||||
"Open Conkeror"
|
||||
(run-shell-command *conkeror-program*))
|
||||
|
||||
(defcommand raise-conkeror () ()
|
||||
"Open or show Conkeror"
|
||||
(run-or-raise *conkeror-program* '(:class "Conkeror")))
|
||||
|
||||
(defcommand run-urxvt () ()
|
||||
"Open URxvt"
|
||||
(run-shell-command *urxvt-program*))
|
||||
|
||||
(defcommand raise-urxvt () ()
|
||||
"Open URxvt"
|
||||
(run-or-raise *urxvt-program* '(:class "URxvt")))
|
||||
|
||||
(defun run-stumpwm-hook-on-exit (process)
|
||||
"Run `*screen-unlocked-hook*' if PROCESS' status is `:exited'."
|
||||
(when (eq (sb-ext:process-status process) :exited)
|
||||
(run-hook *screen-unlocked-hook*)))
|
||||
|
||||
(defcommand lock-screen () ()
|
||||
"Lock the screen using i3lock. Run *lock-screen-hook* before locking
|
||||
it and run *screen-unlocked-hook* after it has been unlocked."
|
||||
(run-hook *lock-screen-hook*)
|
||||
(sb-ext:run-program
|
||||
"/usr/bin/i3lock" '("-n" "-c" "000000") :wait nil
|
||||
:status-hook #'run-stumpwm-hook-on-exit))
|
||||
|
||||
(set-bg-color (colour :dwhite))
|
||||
(set-border-color (colour :lwhite))
|
||||
(set-fg-color (colour :lblack))
|
||||
(set-float-focus-color (colour :dblack))
|
||||
(set-float-unfocus-color (colour :dwhite))
|
||||
(set-focus-color (colour :dblack))
|
||||
(set-font "-*-tamsyn-medium-r-normal-*-17-*-*-*-*-0-iso8859-1")
|
||||
(set-unfocus-color (colour :dwhite))
|
||||
(set-win-bg-color (colour :dwhite))
|
||||
|
||||
(setf *colors* (mapcar #'colour '(:lwhite :lred :lgreen :lyellow :lblue
|
||||
:lmagenta :lcyan :lblack)))
|
||||
(setf *input-window-gravity* :bottom-left)
|
||||
(setf *message-window-gravity* :top-right)
|
||||
(setf *mode-line-background-color* (colour :dwhite))
|
||||
(setf *mode-line-border-color* (colour :dwhite))
|
||||
(setf *mode-line-foreground-color* (colour :lblack))
|
||||
(setf *shell-program* (getenv "SHELL"))
|
||||
(setf *transient-border-width* 1)
|
||||
(setf *window-border-style* :thin)
|
||||
(setf *screen-mode-line-format*
|
||||
(list "[%n]"
|
||||
'(:eval
|
||||
(format nil " | ryu: ~D | gmail: ~D | aethon: ~D | 9f: ~D | "
|
||||
(get-mail-count "ryuslash.org")
|
||||
(get-mail-count "gmail")
|
||||
(get-mail-count "aethon")
|
||||
(get-mail-count "ninthfloor")))))
|
||||
|
||||
(add-hook *lock-screen-hook* 'set-jabber-away)
|
||||
(add-hook *lock-screen-hook* 'mpd-pause)
|
||||
(add-hook *screen-unlocked-hook* 'set-jabber-online)
|
||||
(add-hook *screen-unlocked-hook* 'mpd-play)
|
||||
|
||||
(set-prefix-key (kbd "C-z"))
|
||||
|
||||
(define-key *top-map* (kbd "C-M-l") "lock-screen")
|
||||
|
||||
(define-key *root-map* (kbd "c") "raise-urxvt")
|
||||
(define-key *root-map* (kbd "C") "run-urxvt")
|
||||
(define-key *root-map* (kbd "e") "raise-emacs")
|
||||
(define-key *root-map* (kbd "E") "run-emacs")
|
||||
(define-key *root-map* (kbd "w") "raise-conkeror")
|
||||
(define-key *root-map* (kbd "W") "run-conkeror")
|
||||
|
||||
(define-key *root-map* (kbd "C-b") "windowlist")
|
||||
(define-key *root-map* (kbd "M-b") "move-window left")
|
||||
(define-key *root-map* (kbd "M-f") "move-window right")
|
||||
(define-key *root-map* (kbd "M-n") "move-window down")
|
||||
(define-key *root-map* (kbd "M-p") "move-window up")
|
||||
(define-key *root-map* (kbd "b") "move-focus left")
|
||||
(define-key *root-map* (kbd "f") "move-focus right")
|
||||
(define-key *root-map* (kbd "n") "move-focus down")
|
||||
(define-key *root-map* (kbd "p") "move-focus up")
|
||||
|
||||
(undefine-key *root-map* (kbd "C-a"))
|
||||
(undefine-key *root-map* (kbd "C-c"))
|
||||
(undefine-key *root-map* (kbd "C-e"))
|
||||
(undefine-key *root-map* (kbd "C-m"))
|
||||
|
||||
(define-frame-preference "Default"
|
||||
(0 t nil :class "Emacs")
|
||||
(1 t nil :class "Firefox")
|
||||
(1 t nil :class "URxvt")
|
||||
(1 t nil :class "Conkeror"))
|
||||
|
||||
(if (not (head-mode-line (current-head)))
|
||||
(toggle-mode-line (current-screen) (current-head)))
|
||||
|
||||
(swank:create-server)
|
|
@ -1,4 +0,0 @@
|
|||
DESTDIR:=$(DESTDIR)/.w3m
|
||||
objects=config
|
||||
|
||||
include ../dotfiles.mk
|
|
@ -1,4 +0,0 @@
|
|||
DESTDIR:=$(DESTDIR)/.weechat
|
||||
objects=alias.conf irc.conf weechat.conf
|
||||
|
||||
include ../dotfiles.mk
|
47
.xinitrc
|
@ -1,47 +0,0 @@
|
|||
#!/bin/bash
|
||||
|
||||
function update_mowedline_mpd ()
|
||||
{
|
||||
while read action; do
|
||||
if [ "$action" == "player" ]; then
|
||||
IFS='' read -ra INFO <<< "`mpc status | tr '\n' `"
|
||||
|
||||
if [ "${INFO[1]}" == "" ]; then
|
||||
mowedline-client -update mpd ""
|
||||
else
|
||||
TXT=" ${INFO[0]}"
|
||||
ST="`echo ${INFO[1]} | sed 's/\[\(.*\)\] .*/\1/'`"
|
||||
if [ "$ST" == "paused" ]; then
|
||||
TXT="$TXT (paused)"
|
||||
fi
|
||||
|
||||
mowedline-client -update mpd " $TXT"
|
||||
fi
|
||||
fi
|
||||
done
|
||||
}
|
||||
|
||||
xmodmap ~/.Xmodmap
|
||||
|
||||
# Source scripts in /etc/X11/xinit/xinitrc.d/
|
||||
if [ -d /etc/X11/xinit/xinitrc.d ]; then
|
||||
for f in /etc/X11/xinit/xinitrc.d/*; do
|
||||
[ -x "$f" ] && . "$f"
|
||||
done
|
||||
unset f
|
||||
fi
|
||||
|
||||
emacs --daemon &
|
||||
redshift -l 51.1180:4.0012 &
|
||||
unclutter &
|
||||
mowedline &
|
||||
xcompmgr -n -r 0 &
|
||||
feh --bg-tile ~/pictures/wallpapers/wallpaper-864137.jpg
|
||||
# xbindkeys
|
||||
|
||||
{
|
||||
mpc idleloop | update_mowedline_mpd
|
||||
} &
|
||||
|
||||
test -n "$1" && wm=$1 || wm="stumpwm"
|
||||
exec $wm
|
18
.zprofile
|
@ -1,18 +0,0 @@
|
|||
export BROWSER=conkeror
|
||||
export EDITOR="emacsclient -c -a emacs"
|
||||
|
||||
INFOPATH="$HOME/documents/info"
|
||||
INFOPATH="$INFOPATH:/usr/local/emacs/share/info"
|
||||
INFOPATH="$INFOPATH:/usr/share/info"
|
||||
INFOPATH="$INFOPATH:/usr/local/clark/share/info"
|
||||
export INFOPATH="$INFOPATH:/usr/local/stumpwm/share/info"
|
||||
|
||||
PATH="${HOME}/usr/bin:${PATH}:/usr/local/bin:/usr/local/stumpwm/bin"
|
||||
PATH="/usr/local/scwm/bin:$PATH"
|
||||
PATH="/usr/local/clfswm/bin:$PATH"
|
||||
PATH="/usr/local/clark/bin:$PATH"
|
||||
export PATH="/usr/local/emacs/bin:$PATH"
|
||||
|
||||
if [ -z "$SSH_AGENT_PID" ]; then
|
||||
eval `ssh-agent`
|
||||
fi
|
|
@ -1,4 +0,0 @@
|
|||
DESTDIR:=$(DESTDIR)/.zsh
|
||||
modules=functions
|
||||
|
||||
include ../dotfiles.mk
|
|
@ -1,7 +0,0 @@
|
|||
DESTDIR:=$(DESTDIR)/functions
|
||||
objects=chpwd_show_todo chpwd_update_git_vars env get_cnt line \
|
||||
precmd_maybe_festival precmd_update_git_vars precmd_update_updates \
|
||||
preexec_update_vars prompt prompt_git_info rprompt \
|
||||
update_current_git_vars welcome venv
|
||||
|
||||
include ../../dotfiles.mk
|
|
@ -1,3 +0,0 @@
|
|||
# -*- mode: shell-script -*-
|
||||
|
||||
/usr/bin/env "$@" | grep -v ^LESS_TERMCAP_
|
|
@ -1 +0,0 @@
|
|||
Subproject commit d2715e2cb3294880bbc6a75b91288243054218d0
|
107
.zshrc
|
@ -1,107 +0,0 @@
|
|||
# -*- Mode: shell-script; -*-
|
||||
autoload -Uz add-zsh-hook
|
||||
autoload -Uz compinit
|
||||
autoload -U colors
|
||||
autoload -Uz vcs_info
|
||||
|
||||
# Autoload zsh functions.
|
||||
fpath=($HOME/.zsh/functions $fpath)
|
||||
autoload -U $HOME/.zsh/functions/*(:t)
|
||||
|
||||
# Setup variables
|
||||
HISTFILE=$HOME/.zsh/histfile
|
||||
HISTSIZE=1000
|
||||
SAVEHIST=1000
|
||||
LESSCMD="/usr/bin/less -FXRS"
|
||||
|
||||
export LESS_TERMCAP_mb=$'\e[1;37m'
|
||||
export LESS_TERMCAP_md=$'\e[1;37m'
|
||||
export LESS_TERMCAP_me=$'\e[0m'
|
||||
export LESS_TERMCAP_se=$'\e[0m'
|
||||
export LESS_TERMCAP_so=$'\e[1;47;30m'
|
||||
export LESS_TERMCAP_ue=$'\e[0m'
|
||||
export LESS_TERMCAP_us=$'\e[0;36m'
|
||||
export PAGER=$LESSCMD
|
||||
|
||||
# Aliases
|
||||
alias alpine="alpine -p ""{imap.gmail.com/ssl/user=tom.willemsen@archlinux.us}remote_pinerc"""
|
||||
alias evolus-pencil="/usr/lib/evolus-pencil-svn/evolus-pencil.sh"
|
||||
alias grep="grep --color=always"
|
||||
alias less=$LESSCMD
|
||||
alias ls="ls -F --color=always"
|
||||
alias mysql="mysql --pager"
|
||||
|
||||
# Suffix aliases
|
||||
alias -s pdf="zathura"
|
||||
alias -s xls="libreoffice"
|
||||
|
||||
setopt notify
|
||||
setopt PROMPT_SUBST # Allow for functions in the prompt
|
||||
setopt EXTENDED_GLOB
|
||||
|
||||
zstyle :compinstall filename '$HOME/.zshrc'
|
||||
|
||||
# Enable auto-execution of functions
|
||||
typeset -ga preexec_functions
|
||||
typeset -ga precmd_functions
|
||||
typeset -ga chpwd_functions
|
||||
|
||||
add-zsh-hook preexec preexec_update_vars
|
||||
add-zsh-hook precmd precmd_update_git_vars
|
||||
add-zsh-hook precmd precmd_update_updates
|
||||
add-zsh-hook precmd precmd_maybe_festival
|
||||
add-zsh-hook precmd vcs_info
|
||||
add-zsh-hook chpwd chpwd_update_git_vars
|
||||
|
||||
zstyle ':vcs_info:*' actionformats '%B%F{5}%a%f%%b %s:%r-%b %S'
|
||||
zstyle ':vcs_info:*' enable bzr git hg svn
|
||||
zstyle ':vcs_info:*' formats '%s:%r-%b %S'
|
||||
zstyle ':vcs_info:*' nvcsformats '%~'
|
||||
zstyle ':vcs_info:bzr:*' branchformat '%b'
|
||||
|
||||
# Set the prompt.
|
||||
PROMPT='%B%(?.%F{2}+.%F{1}-) %F{6}%m%b%f ${vcs_info_msg_0_} %# '
|
||||
|
||||
# Set terminal name to current running application
|
||||
case $TERM in
|
||||
rxvt*)
|
||||
precmd () { print -Pn "\e]0;%~\a" }
|
||||
preexec () { print -Pn "\e]0;$1\a" }
|
||||
;;
|
||||
esac
|
||||
|
||||
# Set terminal keys
|
||||
bindkey "\e[1~" beginning-of-line
|
||||
bindkey "\e[4~" end-of-line
|
||||
bindkey "\e[5~" beginning-of-history
|
||||
bindkey "\e[6~" end-of-history
|
||||
bindkey "\e[3~" delete-char
|
||||
bindkey "\e[2~" quoted-insert
|
||||
bindkey "\e[5C" forward-word
|
||||
bindkey "\e0c" emacs-forward-word
|
||||
bindkey "\e[5D" backward-word
|
||||
bindkey "\e0d" emacs-backward-word
|
||||
bindkey "\e\e[C" forward-word
|
||||
bindkey "\e\e[D" backward-word
|
||||
## for rxvt
|
||||
bindkey "\e[8~" end-of-line
|
||||
bindkey "\e[7~" beginning-of-line
|
||||
## for non RH/Debian xterm, can't hurt for RH/Debian xterm
|
||||
bindkey "\e0H" beginning-of-line
|
||||
bindkey "\e0F" end-of-line
|
||||
## for freebsd console
|
||||
bindkey "\e[H" beginning-of-line
|
||||
bindkey "\e[F" end-of-line
|
||||
|
||||
bindkey "^W" backward-delete-char
|
||||
|
||||
# Show syntax highlighting when we're not running in emacs
|
||||
if [ -z $EMACS ]; then
|
||||
source $HOME/.zsh/syntax-highlighting/zsh-syntax-highlighting.zsh
|
||||
|
||||
ZSH_HIGHLIGHT_STYLES[double-hyphen-option]='fg=blue'
|
||||
ZSH_HIGHLIGHT_STYLES[single-hyphen-option]='fg=blue'
|
||||
fi
|
||||
|
||||
compinit
|
||||
colors # Initialize colors.
|
13
Makefile
|
@ -1,13 +0,0 @@
|
|||
export DESTDIR:=$(HOME)
|
||||
modules=emacs .config .conkerorrc .local .moc .mutt .ncmpcpp \
|
||||
.pentadactyl .sawfish .ssh .w3m .weechat .zsh
|
||||
objects=.bash_profile .beetsconfig .conky_box.lua .conkyrc .gitconfig \
|
||||
.guile .hgrc .offlineimap.py .offlineimaprc .screenrc .scwmrc \
|
||||
.slrnrc .stumpwmrc .tmux.conf .urlview .xbindkeysrc.scm .Xdefaults \
|
||||
.xinitrc .Xmodmap .xsession .zprofile .zshrc .zile
|
||||
|
||||
export MAKEROOT=y
|
||||
|
||||
include dotfiles.mk
|
||||
|
||||
install-.xinitrc: MODE=744
|
89
abcde/.abcde.conf
Normal file
|
@ -0,0 +1,89 @@
|
|||
# -----------------$HOME/.abcde.conf----------------- #
|
||||
#
|
||||
# A sample configuration file to convert music cds to
|
||||
# Ogg Vorbis using abcde version 2.7
|
||||
#
|
||||
# http://andrews-corner.org/abcde.html
|
||||
# -------------------------------------------------- #
|
||||
|
||||
# Encode tracks immediately after reading. Saves disk space, gives
|
||||
# better reading of 'scratchy' disks and better troubleshooting of
|
||||
# encoding process but slows the operation of abcde quite a bit:
|
||||
LOWDISK=y
|
||||
|
||||
# Specify the method to use to retrieve the track information,
|
||||
# the alternative is to specify 'cddb':
|
||||
CDDBMETHOD=musicbrainz
|
||||
|
||||
# Make a local cache of cddb entries and then volunteer to use
|
||||
# these entries when and if they match the cd:
|
||||
CDDBCOPYLOCAL="y"
|
||||
CDDBLOCALDIR="$HOME/.cddb"
|
||||
CDDBLOCALRECURSIVE="y"
|
||||
CDDBUSELOCAL="y"
|
||||
|
||||
# Specify the encoder to use for Ogg Vorbis. In this case
|
||||
# vorbize is the other choice.
|
||||
OGGENCODERSYNTAX=oggenc
|
||||
|
||||
# Specify the path to the selected encoder. In most cases the encoder
|
||||
# should be in your $PATH as I illustrate below, otherwise you will
|
||||
# need to specify the full path. For example: /usr/bin/oggenc
|
||||
OGGENC=oggenc
|
||||
|
||||
# Specify your required encoding options here. Multiple options can
|
||||
# be selected as '-q 6 --another-option' etc.
|
||||
# The '-q 6' setting gives VBR encoding between 192-224 kbits/s.
|
||||
OGGENCOPTS='-q 8'
|
||||
|
||||
# Output type for Ogg Vorbis
|
||||
OUTPUTTYPE="ogg"
|
||||
|
||||
# The cd ripping program to use. There are a few choices here: cdda2wav,
|
||||
# dagrab, cddafs (Mac OS X only) and flac. New to abcde 2.7 is 'libcdio'.
|
||||
CDROMREADERSYNTAX=cdparanoia
|
||||
|
||||
# Give the location of the ripping program and pass any extra options,
|
||||
# if using libcdio set 'CD_PARANOIA=cd-paranoia'.
|
||||
CDPARANOIA=cdparanoia
|
||||
CDPARANOIAOPTS="--never-skip=40"
|
||||
|
||||
# Give the location of the CD identification program:
|
||||
CDDISCID=cd-discid
|
||||
|
||||
# Give the base location here for the encoded music files.
|
||||
OUTPUTDIR="$HOME/music"
|
||||
|
||||
# The default actions that abcde will take.
|
||||
ACTIONS=cddb,playlist,read,encode,tag,move,clean
|
||||
|
||||
# Decide here how you want the tracks labelled for a standard 'single-artist',
|
||||
# multi-track encode and also for a multi-track, 'various-artist' encode:
|
||||
OUTPUTFORMAT='${OUTPUT}/${ARTISTFILE}-${ALBUMFILE}/${TRACKNUM}.${TRACKFILE}'
|
||||
VAOUTPUTFORMAT='${OUTPUT}/Various-${ALBUMFILE}/${TRACKNUM}.${ARTISTFILE}-${TRACKFILE}'
|
||||
|
||||
# Decide here how you want the tracks labelled for a standard 'single-artist',
|
||||
# single-track encode and also for a single-track 'various-artist' encode.
|
||||
# (Create a single-track encode with 'abcde -1' from the commandline.)
|
||||
ONETRACKOUTPUTFORMAT='${OUTPUT}/${ARTISTFILE}-${ALBUMFILE}/${ALBUMFILE}'
|
||||
VAONETRACKOUTPUTFORMAT='${OUTPUT}/Various-${ALBUMFILE}/${ALBUMFILE}'
|
||||
|
||||
# Create playlists for single and various-artist encodes. I would suggest
|
||||
# commenting these out for single-track encoding.
|
||||
PLAYLISTFORMAT='${OUTPUT}/${ARTISTFILE}-${ALBUMFILE}/${ALBUMFILE}.m3u'
|
||||
VAPLAYLISTFORMAT='${OUTPUT}/Various-${ALBUMFILE}/${ALBUMFILE}.m3u'
|
||||
|
||||
# This function takes out dots preceding the album name, and removes a grab
|
||||
# bag of illegal characters. It allows spaces, if you do not wish spaces add
|
||||
# in -e 's/ /_/g' after the first sed command.
|
||||
mungefilename ()
|
||||
{
|
||||
echo "$@" | sed -e 's/^\.*//' | tr -d ":><|*/\"'?[:cntrl:]"
|
||||
}
|
||||
|
||||
# What extra options?
|
||||
MAXPROCS=2 # Run a few encoders simultaneously
|
||||
PADTRACKS=y # Makes tracks 01 02 not 1 2
|
||||
EXTRAVERBOSE=0 # Useful for debugging
|
||||
COMMENT='abcde version 2.7' # Place a comment...
|
||||
EJECTCD=y # Please eject cd when finished :-)
|
22
awesome/.config/awesome/awesomerc-1-1.rockspec
Normal file
|
@ -0,0 +1,22 @@
|
|||
package = "AwesomeRC"
|
||||
version = "1-1"
|
||||
|
||||
description = {
|
||||
license = "GPL-3"
|
||||
}
|
||||
|
||||
source = {
|
||||
url = "file://rc.lua"
|
||||
}
|
||||
|
||||
dependencies = {
|
||||
"luafilesystem",
|
||||
"luaposix"
|
||||
}
|
||||
|
||||
build = {
|
||||
type = "builtin",
|
||||
modules = {
|
||||
rc = "rc.lua"
|
||||
}
|
||||
}
|
578
awesome/.config/awesome/rc.lua
Normal file
|
@ -0,0 +1,578 @@
|
|||
-- Standard awesome library
|
||||
local gears = require("gears")
|
||||
local awful = require("awful")
|
||||
awful.rules = require("awful.rules")
|
||||
require("awful.autofocus")
|
||||
-- Widget and layout library
|
||||
local wibox = require("wibox")
|
||||
-- Theme handling library
|
||||
local beautiful = require("beautiful")
|
||||
-- Notification library
|
||||
local naughty = require("naughty")
|
||||
local menubar = require("menubar")
|
||||
local lfs = require("lfs")
|
||||
local posix = require("posix")
|
||||
|
||||
local hostname = posix.uname("%n")
|
||||
|
||||
naughty.config.defaults.bg = "#3d3d3d"
|
||||
naughty.config.defaults.icon_size = 32
|
||||
|
||||
local maildir_base = os.getenv("HOME") .. "/documents/mail/"
|
||||
|
||||
table.insert(menubar.menu_gen.all_menu_dirs,
|
||||
os.getenv("HOME") .. "/.local/share/applications/")
|
||||
|
||||
function new_mail(maildir)
|
||||
local count = 0
|
||||
local newmaildir = maildir_base .. maildir .. "/new"
|
||||
local curmaildir = maildir_base .. maildir .. "/cur"
|
||||
|
||||
if posix.access(newmaildir) then
|
||||
for file in lfs.dir(newmaildir) do
|
||||
if file ~= "." and file ~= ".." then
|
||||
count = count + 1
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
if posix.access(curmaildir) then
|
||||
for file in lfs.dir(curmaildir) do
|
||||
if string.sub(file, -1) ~= "S" and file ~= "."
|
||||
and file ~= ".." then
|
||||
count = count + 1
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
return count
|
||||
end
|
||||
|
||||
function shrink_to_picturefix_width()
|
||||
local g = client.focus:geometry()
|
||||
|
||||
awful.client.floating.set(client.focus, true)
|
||||
client.focus:geometry({x = g.x, y = g.y, width = 1066, height = 1060})
|
||||
end
|
||||
|
||||
function oni_focus_relative(i)
|
||||
return awful.screen.focus(awful.util.cycle(screen.count(), client.focus.screen + i))
|
||||
end
|
||||
|
||||
-- {{{ Error handling
|
||||
-- Check if awesome encountered an error during startup and fell back to
|
||||
-- another config (This code will only ever execute for the fallback config)
|
||||
if awesome.startup_errors then
|
||||
naughty.notify({ preset = naughty.config.presets.critical,
|
||||
title = "Oops, there were errors during startup!",
|
||||
text = awesome.startup_errors })
|
||||
end
|
||||
|
||||
-- Handle runtime errors after startup
|
||||
do
|
||||
local in_error = false
|
||||
awesome.connect_signal("debug::error", function (err)
|
||||
-- Make sure we don't go into an endless error loop
|
||||
if in_error then return end
|
||||
in_error = true
|
||||
|
||||
naughty.notify({ preset = naughty.config.presets.critical,
|
||||
title = "Oops, an error happened!",
|
||||
text = err })
|
||||
in_error = false
|
||||
end)
|
||||
end
|
||||
-- }}}
|
||||
|
||||
-- {{{ Variable definitions
|
||||
-- Themes define colours, icons, font and wallpapers.
|
||||
beautiful.init(os.getenv("HOME") .. "/.config/awesome/themes/default/theme.lua")
|
||||
|
||||
-- This is used later as the default terminal and editor to run.
|
||||
terminal = "urxvtc"
|
||||
editor = "emacsclient"
|
||||
editor_cmd = editor
|
||||
|
||||
-- Default modkey.
|
||||
-- Usually, Mod4 is the key with a logo between Control and Alt.
|
||||
-- If you do not like this or do not have such a key,
|
||||
-- I suggest you to remap Mod4 to another key using xmodmap or other tools.
|
||||
-- However, you can use another modifier like Mod1, but it may interact with others.
|
||||
modkey = "Mod4"
|
||||
|
||||
-- Table of layouts to cover with awful.layout.inc, order matters.
|
||||
local layouts = {}
|
||||
|
||||
if hostname == "phoenix" then layouts = { awful.layout.suit.max }
|
||||
else layouts = { awful.layout.suit.tile, awful.layout.suit.max }
|
||||
end
|
||||
-- }}}
|
||||
|
||||
-- {{{ Wallpaper
|
||||
-- gears.wallpaper.tiled("/home/slash/pictures/wallpaper-962650.jpg")
|
||||
local wallpapers = { "/home/slash/pictures/wallpaper-2311191.jpg",
|
||||
"/home/slash/pictures/wallpaper-1518737-phoenix.png" }
|
||||
|
||||
for idx, wall in ipairs(wallpapers) do
|
||||
if posix.access(wall) then
|
||||
gears.wallpaper.tiled(wall)
|
||||
break
|
||||
end
|
||||
end
|
||||
|
||||
-- }}}
|
||||
|
||||
-- {{{ Tags
|
||||
-- Define a tag table which hold all screen tags.
|
||||
tags = {}
|
||||
tags[1] = awful.tag({" Emacs"}, 1, awful.layout.suit.tile)
|
||||
|
||||
if screen.count() > 1 then
|
||||
tags[2] = awful.tag({" Web"}, 2, awful.layout.suit.max)
|
||||
|
||||
if screen.count() > 2 then
|
||||
for s = 3, screen.count() do
|
||||
-- Each screen has its own tag table.
|
||||
tags[s] = awful.tag({ 1, 2, 3, 4, 5, 6, 7, 8, 9 }, s, layouts[1])
|
||||
end
|
||||
end
|
||||
end
|
||||
-- }}}
|
||||
|
||||
-- {{{ Menu
|
||||
-- Create a laucher widget and a main menu
|
||||
myawesomemenu = {
|
||||
{ "manual", terminal .. " -e man awesome" },
|
||||
{ "edit config", editor_cmd .. " " .. awesome.conffile },
|
||||
{ "restart", awesome.restart },
|
||||
{ "quit", awesome.quit }
|
||||
}
|
||||
|
||||
mymainmenu = awful.menu({ items = { { "awesome", myawesomemenu, beautiful.awesome_icon },
|
||||
{ "open terminal", terminal }
|
||||
}
|
||||
})
|
||||
|
||||
mylauncher = awful.widget.launcher({ image = beautiful.awesome_icon,
|
||||
menu = mymainmenu })
|
||||
|
||||
-- Menubar configuration
|
||||
menubar.utils.terminal = terminal -- Set the terminal for applications that require it
|
||||
-- }}}
|
||||
|
||||
-- {{{ Wibox
|
||||
-- Create a textclock widget
|
||||
mytextclock = awful.widget.textclock()
|
||||
|
||||
-- Create a wibox for each screen and add it
|
||||
mywibox = {}
|
||||
mypromptbox = {}
|
||||
mylayoutbox = {}
|
||||
mytaglist = {}
|
||||
mytaglist.buttons = awful.util.table.join(
|
||||
awful.button({ }, 1, awful.tag.viewonly),
|
||||
awful.button({ modkey }, 1, awful.client.movetotag),
|
||||
awful.button({ }, 3, awful.tag.viewtoggle),
|
||||
awful.button({ modkey }, 3, awful.client.toggletag),
|
||||
awful.button({ }, 4, function(t) awful.tag.viewnext(awful.tag.getscreen(t)) end),
|
||||
awful.button({ }, 5, function(t) awful.tag.viewprev(awful.tag.getscreen(t)) end)
|
||||
)
|
||||
mytasklist = {}
|
||||
mytasklist.buttons = awful.util.table.join(
|
||||
awful.button({ }, 1, function (c)
|
||||
if c ~= client.focus then
|
||||
client.focus = c
|
||||
c:raise()
|
||||
end
|
||||
end),
|
||||
awful.button({ }, 3, function ()
|
||||
if instance then
|
||||
instance:hide()
|
||||
instance = nil
|
||||
else
|
||||
instance = awful.menu.clients({
|
||||
theme = { width = 250 }
|
||||
})
|
||||
end
|
||||
end),
|
||||
awful.button({ }, 4, function ()
|
||||
awful.client.focus.byidx(1)
|
||||
if client.focus then client.focus:raise() end
|
||||
end),
|
||||
awful.button({ }, 5, function ()
|
||||
awful.client.focus.byidx(-1)
|
||||
if client.focus then client.focus:raise() end
|
||||
end))
|
||||
|
||||
function mailwidget(name, lighter)
|
||||
widget = wibox.widget.textbox()
|
||||
widget.set_mailcount = function (self)
|
||||
self:set_text(string.format(" %s: %d", lighter,
|
||||
new_mail(name .. '/inbox')))
|
||||
end
|
||||
widget:set_mailcount()
|
||||
|
||||
return widget
|
||||
end
|
||||
|
||||
mailwidgets = {ryuslash = mailwidget('ryuslash.org', 'ryu'),
|
||||
picturefix = mailwidget('picturefix', 'pfx'),
|
||||
gmail = mailwidget('gmail', 'gmail'),
|
||||
ninthfloor = mailwidget('ninthfloor', '9f')}
|
||||
|
||||
myrsslist = wibox.widget.textbox()
|
||||
myrsslist.set_count = function (self, count)
|
||||
if count then
|
||||
self:set_markup(" " .. count
|
||||
.. " <span face=\"FontAwesome\"></span>")
|
||||
else
|
||||
self:set_text("")
|
||||
end
|
||||
end
|
||||
|
||||
function mailcount()
|
||||
mailboxes = { 'ryuslash.org', 'picturefix', 'gmail', 'ninthfloor' }
|
||||
count = 0
|
||||
|
||||
for i, box in ipairs(mailboxes) do
|
||||
count = count + new_mail(box .. '/inbox')
|
||||
end
|
||||
|
||||
return count
|
||||
end
|
||||
|
||||
mymailwidget = wibox.widget.textbox()
|
||||
mymailwidget.set_count = function (self)
|
||||
count = mailcount()
|
||||
|
||||
if count then
|
||||
self:set_markup(" " .. count
|
||||
.. " <span face=\"FontAwesome\"></span> ")
|
||||
else
|
||||
self:set_text("")
|
||||
end
|
||||
end
|
||||
mymailwidget:set_count()
|
||||
|
||||
function unlocked()
|
||||
if awful.util.pread("keycheck login") == "Unlocked" then
|
||||
return " "
|
||||
else
|
||||
return " "
|
||||
end
|
||||
end
|
||||
|
||||
mykeyringlist = wibox.widget.textbox()
|
||||
mykeyringlist:set_text(unlocked())
|
||||
mykeyringlist:set_font("FontAwesome")
|
||||
mykeyringlist:buttons(
|
||||
awful.util.table.join(
|
||||
awful.button({ }, 2, function ()
|
||||
mykeyringlist:set_text(unlocked())
|
||||
end)
|
||||
)
|
||||
)
|
||||
mykeyringlisttimer = timer({ timeout = 60 })
|
||||
mykeyringlisttimer:connect_signal(
|
||||
"timeout",
|
||||
function ()
|
||||
mykeyringlist:set_text(unlocked())
|
||||
end
|
||||
)
|
||||
mykeyringlisttimer:start()
|
||||
|
||||
for s = 1, screen.count() do
|
||||
-- Create a promptbox for each screen
|
||||
mypromptbox[s] = awful.widget.prompt()
|
||||
|
||||
if #layouts > 1 then
|
||||
-- Create an imagebox widget which will contains an icon indicating which layout we're using.
|
||||
-- We need one layoutbox per screen.
|
||||
mylayoutbox[s] = awful.widget.layoutbox(s)
|
||||
mylayoutbox[s]:buttons(awful.util.table.join(
|
||||
awful.button({ }, 1, function () awful.layout.inc(layouts, 1) end),
|
||||
awful.button({ }, 3, function () awful.layout.inc(layouts, -1) end),
|
||||
awful.button({ }, 4, function () awful.layout.inc(layouts, 1) end),
|
||||
awful.button({ }, 5, function () awful.layout.inc(layouts, -1) end)))
|
||||
end
|
||||
-- Create a taglist widget
|
||||
mytaglist[s] = awful.widget.taglist(s, awful.widget.taglist.filter.all, mytaglist.buttons)
|
||||
|
||||
-- Create a tasklist widget
|
||||
mytasklist[s] = awful.widget.tasklist(s, awful.widget.tasklist.filter.currenttags, mytasklist.buttons)
|
||||
|
||||
-- Create the wibox
|
||||
mywibox[s] = awful.wibox({ position = "bottom", screen = s })
|
||||
|
||||
-- Widgets that are aligned to the left
|
||||
local left_layout = wibox.layout.fixed.horizontal()
|
||||
left_layout:add(mylauncher)
|
||||
left_layout:add(mytaglist[s])
|
||||
left_layout:add(mypromptbox[s])
|
||||
|
||||
-- Widgets that are aligned to the right
|
||||
local right_layout = wibox.layout.fixed.horizontal()
|
||||
if s == 1 then
|
||||
right_layout:add(mykeyringlist)
|
||||
if hostname == "drd" then right_layout:add(myrsslist) end
|
||||
right_layout:add(mymailwidget)
|
||||
|
||||
-- for k, w in pairs(mailwidgets) do
|
||||
-- right_layout:add(w)
|
||||
-- end
|
||||
|
||||
right_layout:add(wibox.widget.systray())
|
||||
end
|
||||
right_layout:add(mytextclock)
|
||||
if #layouts > 1 then right_layout:add(mylayoutbox[s]) end
|
||||
|
||||
-- Now bring it all together (with the tasklist in the middle)
|
||||
local layout = wibox.layout.align.horizontal()
|
||||
layout:set_left(left_layout)
|
||||
layout:set_middle(mytasklist[s])
|
||||
layout:set_right(right_layout)
|
||||
|
||||
mywibox[s]:set_widget(layout)
|
||||
end
|
||||
-- }}}
|
||||
|
||||
-- {{{ Mouse bindings
|
||||
root.buttons(awful.util.table.join(
|
||||
awful.button({ }, 3, function () mymainmenu:toggle() end),
|
||||
awful.button({ }, 4, awful.tag.viewnext),
|
||||
awful.button({ }, 5, awful.tag.viewprev)
|
||||
))
|
||||
-- }}}
|
||||
|
||||
function fraise (idx)
|
||||
awful.client.focus.byidx(idx)
|
||||
if client.focus then client.focus:raise() end
|
||||
end
|
||||
|
||||
function hpraise ()
|
||||
awful.client.focus.history.previous()
|
||||
if client.focus then client.focus:raise() end
|
||||
end
|
||||
|
||||
function ror (prog, class)
|
||||
function inner ()
|
||||
local matcher = function (c)
|
||||
return awful.rules.match(c, { class = class })
|
||||
end
|
||||
awful.client.run_or_raise(prog, matcher)
|
||||
end
|
||||
|
||||
return inner
|
||||
end
|
||||
|
||||
-- {{{ Key bindings
|
||||
globalkeys = awful.util.table.join(
|
||||
awful.key({ modkey, }, "l", awful.tag.viewprev),
|
||||
awful.key({ modkey, }, "y", awful.tag.viewnext),
|
||||
awful.key({ modkey, }, "Escape", awful.tag.history.restore),
|
||||
awful.key({ modkey, }, "n", function () fraise(1) end),
|
||||
awful.key({ modkey, }, "p", function () fraise(-1) end),
|
||||
-- awful.key({ modkey, }, "w", function () mymainmenu:show() end),
|
||||
awful.key({ }, "Print", function () awful.util.spawn("scrot") end),
|
||||
-- awful.key({ "Control", }, "Print", function () awful.util.spawn("scrot -s") end),
|
||||
|
||||
awful.key({ modkey, }, "c", ror("urxvtc", "URxvt")),
|
||||
awful.key({ modkey, }, "e", ror("emacsclient -c", "Emacs")),
|
||||
awful.key({ modkey, }, "w", ror("conkeror", "Conkeror")),
|
||||
|
||||
-- Layout manipulation
|
||||
awful.key({ modkey, "Shift" }, "n", function () awful.client.swap.byidx( 1) end),
|
||||
awful.key({ modkey, "Shift" }, "p", function () awful.client.swap.byidx( -1) end),
|
||||
awful.key({ modkey, }, ".", function () oni_focus_relative( 1) end),
|
||||
awful.key({ modkey, }, ",", function () oni_focus_relative(-1) end),
|
||||
awful.key({ modkey, "Shift" }, ".", function () awful.client.movetoscreen(client.focus) end),
|
||||
awful.key({ modkey, "Shift" }, ",", function () awful.client.movetoscreen(client.focus, -1) end),
|
||||
awful.key({ modkey, }, "u", awful.client.urgent.jumpto),
|
||||
awful.key({ modkey, }, "Tab", hpraise),
|
||||
awful.key({ modkey, }, "g", shrink_to_picturefix_width),
|
||||
|
||||
-- Standard program
|
||||
awful.key({ modkey, }, "Return", function () awful.util.spawn(terminal) end),
|
||||
awful.key({ modkey, "Control" }, "r", awesome.restart),
|
||||
awful.key({ modkey, "Shift" }, "q", awesome.quit),
|
||||
|
||||
awful.key({ modkey, }, "j", function () awful.tag.incmwfact( 0.05) end),
|
||||
awful.key({ modkey, }, "h", function () awful.tag.incmwfact(-0.05) end),
|
||||
awful.key({ modkey, "Shift" }, "h", function () awful.tag.incnmaster( 1) end),
|
||||
awful.key({ modkey, "Shift" }, "j", function () awful.tag.incnmaster(-1) end),
|
||||
awful.key({ modkey, "Control" }, "h", function () awful.tag.incncol( 1) end),
|
||||
awful.key({ modkey, "Control" }, "j", function () awful.tag.incncol(-1) end),
|
||||
awful.key({ modkey, }, "space", function () awful.layout.inc(layouts, 1) end),
|
||||
awful.key({ modkey, "Shift" }, "space", function () awful.layout.inc(layouts, -1) end),
|
||||
|
||||
-- Prompt
|
||||
awful.key({ modkey }, "r", function () mypromptbox[mouse.screen]:run() end),
|
||||
|
||||
awful.key({ modkey }, "x",
|
||||
function ()
|
||||
awful.prompt.run({ prompt = "Run Lua code: " },
|
||||
mypromptbox[mouse.screen].widget,
|
||||
awful.util.eval, nil,
|
||||
awful.util.getdir("cache") .. "/history_eval")
|
||||
end),
|
||||
-- Menubar
|
||||
awful.key({ modkey }, "k", function() menubar.show() end),
|
||||
|
||||
awful.key({ "Control", "Mod1" }, "l", function () awful.util.spawn('i3lock -c000000') end)
|
||||
)
|
||||
|
||||
clientkeys = awful.util.table.join(
|
||||
awful.key({ modkey, }, "f", function (c) c.fullscreen = not c.fullscreen end),
|
||||
awful.key({ modkey, "Shift" }, "c", function (c) c:kill() end),
|
||||
awful.key({ modkey, "Control" }, "space", awful.client.floating.toggle ),
|
||||
awful.key({ modkey, "Control" }, "Return", function (c) c:swap(awful.client.getmaster()) end),
|
||||
awful.key({ modkey, }, "o", awful.client.movetoscreen ),
|
||||
awful.key({ modkey, }, "t", function (c) c.ontop = not c.ontop end),
|
||||
awful.key({ modkey, }, "m",
|
||||
function (c)
|
||||
c.maximized_horizontal = not c.maximized_horizontal
|
||||
c.maximized_vertical = not c.maximized_vertical
|
||||
end)
|
||||
)
|
||||
|
||||
-- Bind all key numbers to tags.
|
||||
-- Be careful: we use keycodes to make it works on any keyboard layout.
|
||||
-- This should map on the top row of your keyboard, usually 1 to 9.
|
||||
for i = 1, 9 do
|
||||
globalkeys = awful.util.table.join(globalkeys,
|
||||
-- View tag only.
|
||||
awful.key({ modkey }, "#" .. i + 9,
|
||||
function ()
|
||||
local screen = mouse.screen
|
||||
local tag = awful.tag.gettags(screen)[i]
|
||||
if tag then
|
||||
awful.tag.viewonly(tag)
|
||||
end
|
||||
end),
|
||||
-- Toggle tag.
|
||||
awful.key({ modkey, "Control" }, "#" .. i + 9,
|
||||
function ()
|
||||
local screen = mouse.screen
|
||||
local tag = awful.tag.gettags(screen)[i]
|
||||
if tag then
|
||||
awful.tag.viewtoggle(tag)
|
||||
end
|
||||
end),
|
||||
-- Move client to tag.
|
||||
awful.key({ modkey, "Shift" }, "#" .. i + 9,
|
||||
function ()
|
||||
if client.focus then
|
||||
local tag = awful.tag.gettags(client.focus.screen)[i]
|
||||
if tag then
|
||||
awful.client.movetotag(tag)
|
||||
end
|
||||
end
|
||||
end),
|
||||
-- Toggle tag.
|
||||
awful.key({ modkey, "Control", "Shift" }, "#" .. i + 9,
|
||||
function ()
|
||||
if client.focus then
|
||||
local tag = awful.tag.gettags(client.focus.screen)[i]
|
||||
if tag then
|
||||
awful.client.toggletag(tag)
|
||||
end
|
||||
end
|
||||
end))
|
||||
end
|
||||
|
||||
clientbuttons = awful.util.table.join(
|
||||
awful.button({ }, 1, function (c) client.focus = c; c:raise() end),
|
||||
awful.button({ modkey }, 1, awful.mouse.client.move),
|
||||
awful.button({ modkey }, 3, awful.mouse.client.resize))
|
||||
|
||||
-- Set keys
|
||||
root.keys(globalkeys)
|
||||
-- }}}
|
||||
|
||||
-- {{{ Rules
|
||||
-- Rules to apply to new clients (through the "manage" signal).
|
||||
awful.rules.rules = {
|
||||
-- All clients will match this rule.
|
||||
{ rule = { },
|
||||
properties = { border_width = beautiful.border_width,
|
||||
border_color = beautiful.border_normal,
|
||||
focus = awful.client.focus.filter,
|
||||
raise = true,
|
||||
keys = clientkeys,
|
||||
buttons = clientbuttons } },
|
||||
{ rule = { class = "MPlayer" },
|
||||
properties = { floating = true } },
|
||||
{ rule = { class = "pinentry" },
|
||||
properties = { floating = true } },
|
||||
{ rule = { class = "gimp" },
|
||||
properties = { floating = true } },
|
||||
{ rule = { instance = "SteamWorldDig.exe" },
|
||||
properties = { fullscreen = true } },
|
||||
{ rule = { instance = "RogueLegacy.exe" },
|
||||
properties = { fullscreen = true } },
|
||||
{ rule = { class = "Emacs" },
|
||||
properties = { tag = tags[1][1] } },
|
||||
{ rule = { class = "URxvt" },
|
||||
properties = { size_hints_honor = false } },
|
||||
-- Set Firefox to always map on tags number 2 of screen 1.
|
||||
-- { rule = { class = "Firefox" },
|
||||
-- properties = { tag = tags[1][2] } },
|
||||
}
|
||||
|
||||
-- If there is more than one list of tags, add a rule that puts all
|
||||
-- "Conkeror" windows on tag 1 of screen 2 (the second list of tags).
|
||||
if #tags > 1 then
|
||||
awful.rules.rules =
|
||||
awful.util.table.join(awful.rules.rules,
|
||||
{ { rule = { class = "Conkeror" },
|
||||
properties = { tag = tags[2][1] } } })
|
||||
end
|
||||
-- }}}
|
||||
|
||||
-- {{{ Signals
|
||||
imp_classes = { "Dia", "Firefox", "Pencil", "Filezilla", "Gimp" }
|
||||
-- Signal function to execute when a new client appears.
|
||||
client.connect_signal("manage", function (c, startup)
|
||||
if not startup then
|
||||
-- Set the windows at the slave,
|
||||
-- i.e. put it at the end of others instead of setting it master.
|
||||
if not awful.rules.match_any(c, { class = { "Emacs", "Dia" } }) then
|
||||
awful.client.setslave(c)
|
||||
end
|
||||
|
||||
if awful.rules.match_any(c, { class = imp_classes }) then
|
||||
tags[c.class] = tags[c.class] or
|
||||
awful.tag.add(" " .. c.class, {layout = awful.layout.suit.tile})
|
||||
awful.tag.viewonly(tags[c.class])
|
||||
awful.client.movetotag(tags[c.class], c)
|
||||
end
|
||||
|
||||
if awful.rules.match(c, { class = "Dia" }) then
|
||||
awful.tag.setmwfact(0.90, tags["Dia"])
|
||||
end
|
||||
|
||||
-- Put windows in a smart way, only if they does not set an initial position.
|
||||
if not c.size_hints.user_position and not c.size_hints.program_position then
|
||||
awful.placement.no_overlap(c)
|
||||
awful.placement.no_offscreen(c)
|
||||
end
|
||||
end
|
||||
end)
|
||||
|
||||
client.connect_signal("unmanage", function(c)
|
||||
if awful.rules.match_any(c, { class = imp_classes }) then
|
||||
if tags[c.class] and #tags[c.class]:clients() == 0 then
|
||||
awful.tag.delete(tags[c.class])
|
||||
tags[c.class] = nil
|
||||
end
|
||||
end
|
||||
end)
|
||||
|
||||
client.connect_signal("focus", function(c) c.border_color = beautiful.border_focus end)
|
||||
client.connect_signal("unfocus", function(c) c.border_color = beautiful.border_normal end)
|
||||
-- }}}
|
||||
|
||||
-- Set the master window factor so that terminal windows show up with
|
||||
-- 80 columns on the main screen. This is meant for a 1920x1080
|
||||
-- resolution.
|
||||
awful.tag.setmwfact(0.623, tags[1][1])
|
BIN
awesome/.config/awesome/themes/default/background.png
Normal file
After Width: | Height: | Size: 220 KiB |
BIN
awesome/.config/awesome/themes/default/background_white.png
Normal file
After Width: | Height: | Size: 265 KiB |
BIN
awesome/.config/awesome/themes/default/layouts/dwindle.png
Normal file
After Width: | Height: | Size: 967 B |
BIN
awesome/.config/awesome/themes/default/layouts/dwindlew.png
Normal file
After Width: | Height: | Size: 997 B |
BIN
awesome/.config/awesome/themes/default/layouts/fairh.png
Normal file
After Width: | Height: | Size: 194 B |
BIN
awesome/.config/awesome/themes/default/layouts/fairhw.png
Normal file
After Width: | Height: | Size: 194 B |
BIN
awesome/.config/awesome/themes/default/layouts/fairv.png
Normal file
After Width: | Height: | Size: 201 B |
BIN
awesome/.config/awesome/themes/default/layouts/fairvw.png
Normal file
After Width: | Height: | Size: 201 B |
BIN
awesome/.config/awesome/themes/default/layouts/floating.png
Normal file
After Width: | Height: | Size: 395 B |
BIN
awesome/.config/awesome/themes/default/layouts/floatingw.png
Normal file
After Width: | Height: | Size: 388 B |
BIN
awesome/.config/awesome/themes/default/layouts/fullscreen.png
Normal file
After Width: | Height: | Size: 202 B |
BIN
awesome/.config/awesome/themes/default/layouts/fullscreenw.png
Normal file
After Width: | Height: | Size: 202 B |
BIN
awesome/.config/awesome/themes/default/layouts/magnifier.png
Normal file
After Width: | Height: | Size: 209 B |
BIN
awesome/.config/awesome/themes/default/layouts/magnifierw.png
Normal file
After Width: | Height: | Size: 209 B |
BIN
awesome/.config/awesome/themes/default/layouts/max.png
Normal file
After Width: | Height: | Size: 321 B |
BIN
awesome/.config/awesome/themes/default/layouts/maxw.png
Normal file
After Width: | Height: | Size: 321 B |
BIN
awesome/.config/awesome/themes/default/layouts/spiral.png
Normal file
After Width: | Height: | Size: 1.5 KiB |
BIN
awesome/.config/awesome/themes/default/layouts/spiralw.png
Normal file
After Width: | Height: | Size: 1.5 KiB |
BIN
awesome/.config/awesome/themes/default/layouts/tile.png
Normal file
After Width: | Height: | Size: 174 B |
BIN
awesome/.config/awesome/themes/default/layouts/tilebottom.png
Normal file
After Width: | Height: | Size: 195 B |
BIN
awesome/.config/awesome/themes/default/layouts/tilebottomw.png
Normal file
After Width: | Height: | Size: 216 B |
BIN
awesome/.config/awesome/themes/default/layouts/tileleft.png
Normal file
After Width: | Height: | Size: 172 B |
BIN
awesome/.config/awesome/themes/default/layouts/tileleftw.png
Normal file
After Width: | Height: | Size: 170 B |
BIN
awesome/.config/awesome/themes/default/layouts/tiletop.png
Normal file
After Width: | Height: | Size: 195 B |
BIN
awesome/.config/awesome/themes/default/layouts/tiletopw.png
Normal file
After Width: | Height: | Size: 215 B |
BIN
awesome/.config/awesome/themes/default/layouts/tilew.png
Normal file
After Width: | Height: | Size: 168 B |
BIN
awesome/.config/awesome/themes/default/submenu.png
Normal file
After Width: | Height: | Size: 440 B |
BIN
awesome/.config/awesome/themes/default/taglist/squarefw.png
Normal file
After Width: | Height: | Size: 187 B |
BIN
awesome/.config/awesome/themes/default/taglist/squarew.png
Normal file
After Width: | Height: | Size: 193 B |
99
awesome/.config/awesome/themes/default/theme.lua
Normal file
|
@ -0,0 +1,99 @@
|
|||
---------------------------
|
||||
-- Default awesome theme --
|
||||
---------------------------
|
||||
|
||||
theme = {}
|
||||
|
||||
theme.font = "ohsnap 8"
|
||||
|
||||
theme.bg_normal = "#111111"
|
||||
theme.bg_focus = "#2a3b54"
|
||||
theme.bg_urgent = "#ff0000"
|
||||
theme.bg_minimize = "#444444"
|
||||
theme.bg_systray = theme.bg_normal
|
||||
|
||||
theme.fg_normal = "#bfbfbf"
|
||||
theme.fg_focus = "#ffffff"
|
||||
theme.fg_urgent = "#ffffff"
|
||||
theme.fg_minimize = "#ffffff"
|
||||
|
||||
theme.border_width = 1
|
||||
theme.border_normal = "#000000"
|
||||
theme.border_focus = "#535d6c"
|
||||
theme.border_marked = "#91231c"
|
||||
|
||||
-- There are other variable sets
|
||||
-- overriding the default one when
|
||||
-- defined, the sets are:
|
||||
-- taglist_[bg|fg]_[focus|urgent|occupied|empty]
|
||||
-- tasklist_[bg|fg]_[focus|urgent]
|
||||
-- titlebar_[bg|fg]_[normal|focus]
|
||||
-- tooltip_[font|opacity|fg_color|bg_color|border_width|border_color]
|
||||
-- mouse_finder_[color|timeout|animate_timeout|radius|factor]
|
||||
-- Example:
|
||||
--theme.taglist_bg_focus = "#ff0000"
|
||||
|
||||
-- Display the taglist squares
|
||||
theme.taglist_squares_sel = "/usr/share/awesome/themes/default/taglist/squarefw.png"
|
||||
theme.taglist_squares_unsel = "/usr/share/awesome/themes/default/taglist/squarew.png"
|
||||
|
||||
-- Variables set for theming the menu:
|
||||
-- menu_[bg|fg]_[normal|focus]
|
||||
-- menu_[border_color|border_width]
|
||||
theme.menu_submenu_icon = "/usr/share/awesome/themes/default/submenu.png"
|
||||
theme.menu_height = 15
|
||||
theme.menu_width = 100
|
||||
|
||||
-- You can add as many variables as
|
||||
-- you wish and access them by using
|
||||
-- beautiful.variable in your rc.lua
|
||||
--theme.bg_widget = "#cc0000"
|
||||
|
||||
-- Define the image to load
|
||||
theme.titlebar_close_button_normal = "/usr/share/awesome/themes/default/titlebar/close_normal.png"
|
||||
theme.titlebar_close_button_focus = "/usr/share/awesome/themes/default/titlebar/close_focus.png"
|
||||
|
||||
theme.titlebar_ontop_button_normal_inactive = "/usr/share/awesome/themes/default/titlebar/ontop_normal_inactive.png"
|
||||
theme.titlebar_ontop_button_focus_inactive = "/usr/share/awesome/themes/default/titlebar/ontop_focus_inactive.png"
|
||||
theme.titlebar_ontop_button_normal_active = "/usr/share/awesome/themes/default/titlebar/ontop_normal_active.png"
|
||||
theme.titlebar_ontop_button_focus_active = "/usr/share/awesome/themes/default/titlebar/ontop_focus_active.png"
|
||||
|
||||
theme.titlebar_sticky_button_normal_inactive = "/usr/share/awesome/themes/default/titlebar/sticky_normal_inactive.png"
|
||||
theme.titlebar_sticky_button_focus_inactive = "/usr/share/awesome/themes/default/titlebar/sticky_focus_inactive.png"
|
||||
theme.titlebar_sticky_button_normal_active = "/usr/share/awesome/themes/default/titlebar/sticky_normal_active.png"
|
||||
theme.titlebar_sticky_button_focus_active = "/usr/share/awesome/themes/default/titlebar/sticky_focus_active.png"
|
||||
|
||||
theme.titlebar_floating_button_normal_inactive = "/usr/share/awesome/themes/default/titlebar/floating_normal_inactive.png"
|
||||
theme.titlebar_floating_button_focus_inactive = "/usr/share/awesome/themes/default/titlebar/floating_focus_inactive.png"
|
||||
theme.titlebar_floating_button_normal_active = "/usr/share/awesome/themes/default/titlebar/floating_normal_active.png"
|
||||
theme.titlebar_floating_button_focus_active = "/usr/share/awesome/themes/default/titlebar/floating_focus_active.png"
|
||||
|
||||
theme.titlebar_maximized_button_normal_inactive = "/usr/share/awesome/themes/default/titlebar/maximized_normal_inactive.png"
|
||||
theme.titlebar_maximized_button_focus_inactive = "/usr/share/awesome/themes/default/titlebar/maximized_focus_inactive.png"
|
||||
theme.titlebar_maximized_button_normal_active = "/usr/share/awesome/themes/default/titlebar/maximized_normal_active.png"
|
||||
theme.titlebar_maximized_button_focus_active = "/usr/share/awesome/themes/default/titlebar/maximized_focus_active.png"
|
||||
|
||||
theme.wallpaper = "/usr/share/awesome/themes/default/background.png"
|
||||
|
||||
-- You can use your own layout icons like this:
|
||||
theme.layout_fairh = "/usr/share/awesome/themes/default/layouts/fairhw.png"
|
||||
theme.layout_fairv = "/usr/share/awesome/themes/default/layouts/fairvw.png"
|
||||
theme.layout_floating = "/usr/share/awesome/themes/default/layouts/floatingw.png"
|
||||
theme.layout_magnifier = "/usr/share/awesome/themes/default/layouts/magnifierw.png"
|
||||
theme.layout_max = "/usr/share/awesome/themes/default/layouts/maxw.png"
|
||||
theme.layout_fullscreen = "/usr/share/awesome/themes/default/layouts/fullscreenw.png"
|
||||
theme.layout_tilebottom = "/usr/share/awesome/themes/default/layouts/tilebottomw.png"
|
||||
theme.layout_tileleft = "/usr/share/awesome/themes/default/layouts/tileleftw.png"
|
||||
theme.layout_tile = "/usr/share/awesome/themes/default/layouts/tilew.png"
|
||||
theme.layout_tiletop = "/usr/share/awesome/themes/default/layouts/tiletopw.png"
|
||||
theme.layout_spiral = "/usr/share/awesome/themes/default/layouts/spiralw.png"
|
||||
theme.layout_dwindle = "/usr/share/awesome/themes/default/layouts/dwindlew.png"
|
||||
|
||||
theme.awesome_icon = "/usr/share/awesome/icons/awesome16.png"
|
||||
|
||||
-- Define the icon theme for application icons. If not set then the icons
|
||||
-- from /usr/share/icons and /usr/share/icons/hicolor will be used.
|
||||
theme.icon_theme = nil
|
||||
|
||||
return theme
|
||||
-- vim: filetype=lua:expandtab:shiftwidth=4:tabstop=8:softtabstop=4:textwidth=80
|
BIN
awesome/.config/awesome/themes/default/titlebar/close_focus.png
Normal file
After Width: | Height: | Size: 666 B |
BIN
awesome/.config/awesome/themes/default/titlebar/close_normal.png
Normal file
After Width: | Height: | Size: 801 B |
After Width: | Height: | Size: 598 B |
After Width: | Height: | Size: 565 B |