View Full Version : Wiki updates!
amgeex
December 26th, 2006, 12:27 AM
The "Our Team" and "Contest" pages have been updated on the wiki. They are now using templates that highly simplify editing and adding new stuff. The contest page has been completely revamped and now sports a new look; only the logos that made it to the second round in the contest remain though, because there is no point in showing the rest to everyone if they cannot vote for them. Check it out and post here if you have any suggestions or comments!
Cheers!
AMGeeX
amgeex
December 27th, 2006, 05:07 AM
Guys, I created a new Documentation Page. I think its time for us to start getting serious about our documents and how they will fit on the wiki, how they should be structured, etc. This new page will serve as a central hub for all documentation.
Check it out: http://www.go-compiz.org/index.php?title=Documentation
The page is divided into categories, so people can find what they're looking for fast and easily. No hassles. Of course, a lot of the categories are empty or with little pages listed, so get those fingers typing and get us some docs!
I already ported mikedee's plugin porting howto and his scripting plugin release announcement/guide. Next up will be RYX's howto. Also some tricks and tips have been ported, the script to run games and the XGL patch. Help me out and contribute!
Once the categories listed have at least one page of content listed I will make it public to replace the current Installation Instructions page. :twisted:
stjepan
December 27th, 2006, 07:29 AM
I fixed the patch, added some text about gconf-editor, trans-inactive, archlinux installation and ati drivers.
What about adding a section about users gconf dumps so that we can try other users' configs?
wfarr
December 27th, 2006, 05:27 PM
"Docs" should probably be added to the top navigation bar on the Wiki for usability purposes.
While the main page does offer some links to useful pages, I think making Docs page easy to find will be beneficial.
mikedee
December 27th, 2006, 06:13 PM
I fixed the patch, added some text about gconf-editor, trans-inactive, archlinux installation and ati drivers.
What about adding a section about users gconf dumps so that we can try other users' configs?
http://www.anykeysoftware.co.uk/compiz/trans-inactive/trans-inactive.c
I have put the trans-inactive code here. If someone could make a Make file then Ill put them all in a tarball for easy installation.
It would be good to put all these seperate but related apps on a separate page (ie Related Apps) so they are all in one place :)
You probably should mark this page as subject to change.
http://www.go-compiz.org/index.php?title=Scripting_Compiz
They are all very unofficial, and only work with the scripting plugin and custom dbus ;)
stjepan
December 27th, 2006, 06:30 PM
Ok, it's improved now. No need for Makefile :)
amgeex
December 27th, 2006, 07:33 PM
Thanks guys, its good to see such a fast response. I'm going to erase the old Installation Instructions page, as it is no longer useful.
mikedee
December 27th, 2006, 07:49 PM
Ok, it's improved now. No need for Makefile :)
Bear in mind that only Ubuntu uses sudo, all other distros (that I know of) do not use sudo, they have full root accounts and sudo is normally not configured.
Its not too vital, but there may be a few support questions about it.
stjepan
December 27th, 2006, 08:26 PM
OK, fixed.
wfarr
December 27th, 2006, 09:30 PM
Added feisty instructions to Ubuntu install page and a list of some xorg options for radeon driver to ATI page.
amgeex
December 27th, 2006, 11:22 PM
All pages on the wiki have been updated to use the new colors! 8)
stjepan
December 28th, 2006, 09:12 AM
Mikedee, here's a patch which ignores splash windows. Please update trans-inactive.c
--- trans-inactive.c 2006-12-27 19:21:31.000000000 +0100
+++ trans-inactive_new.c 2006-12-28 10:09:17.000000000 +0100
@@ -149,7 +149,7 @@
XWindowAttributes attr;
unsigned long ntoplevels = 0;
Atom _NET_ACTIVE_WINDOW, _NET_WM_WINDOW_OPACITY, _NET_WM_WINDOW_TYPE,
- _NET_WM_WINDOW_TYPE_DESKTOP, _NET_WM_WINDOW_TYPE_DOCK, window_type;
+ _NET_WM_WINDOW_TYPE_DESKTOP, _NET_WM_WINDOW_TYPE_SPLASH, _NET_WM_WINDOW_TYPE_DOCK, window_type;
XEvent xev;
/* parse arg */
@@ -225,6 +225,9 @@
_NET_WM_WINDOW_TYPE_DESKTOP = XInternAtom(dpy,
"_NET_WM_WINDOW_TYPE_DESKTOP",
False);
+ _NET_WM_WINDOW_TYPE_SPLASH = XInternAtom(dpy,
+ "_NET_WM_WINDOW_TYPE_SPLASH",
+ False);
_NET_WM_WINDOW_TYPE_DOCK = XInternAtom(dpy, "_NET_WM_WINDOW_TYPE_DOCK",
False);
@@ -243,7 +246,9 @@
window_type = get_window_type(dpy, toplevels[i],
_NET_WM_WINDOW_TYPE);
+
if(window_type == _NET_WM_WINDOW_TYPE_DESKTOP
+ || window_type == _NET_WM_WINDOW_TYPE_SPLASH
|| window_type == _NET_WM_WINDOW_TYPE_DOCK)
{
continue;
@@ -280,6 +285,7 @@
_NET_WM_WINDOW_TYPE);
if(attr.override_redirect == False
&& window_type != _NET_WM_WINDOW_TYPE_DESKTOP
+ && window_type != _NET_WM_WINDOW_TYPE_SPLASH
&& window_type != _NET_WM_WINDOW_TYPE_DOCK)
{
set_opacity(dpy, old_active_window,
@@ -306,6 +312,7 @@
_NET_WM_WINDOW_TYPE);
if(attr.override_redirect == False
&& window_type != _NET_WM_WINDOW_TYPE_DESKTOP
+ && window_type != _NET_WM_WINDOW_TYPE_SPLASH
&& window_type != _NET_WM_WINDOW_TYPE_DOCK)
{
set_opacity(dpy, xev.xmap.window,
@@ -324,4 +331,4 @@
}
return 0;
-}
\ No newline at end of file
+}
mikedee
December 28th, 2006, 12:48 PM
ok - i applied that patch, can you check its ok
stjepan
January 3rd, 2007, 07:19 AM
Mikedee, pls update it trans-inactive.c
/*
* trans-inactive.c - Daemon to set inactive windows semi-transparent,
* and the active window opaque.
*
* Copyright (c) 2006 Brian Tarricone <bjt23@cornell.edu>
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Library General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
*
* To compile:
* gcc -o trans-inactive trans-inactive.c -L/usr/X11R6/lib -lX11
*/
#include <stdio.h>
#include <limits.h>
#include <getopt.h>
#include <X11/X.h>
#include <X11/Xlib.h>
#include <X11/Xatom.h>
float _inactive_opacity=0.8,_active_opacity=0.9;
/* Set this to the desired opacity of inactive windows. The example below
* sets inactive windows 80% opaque (or, equivalently, 20% transparent).
*/
#define INACTIVE_OPACITY (_inactive_opacity * 0xffffffff)
#define ACTIVE_OPACITY (_active_opacity * 0xffffffff)
static Atom
get_window_type(Display *dpy,
Window win,
Atom property)
{
Atom window_type = None;
Atom actual_type;
int actual_format;
unsigned long nitems, bytes_after;
unsigned char *prop_return = NULL;
if(Success == XGetWindowProperty(dpy, win, property, 0L, sizeof(Atom),
False, XA_ATOM, &actual_type,
&actual_format, &nitems, &bytes_after,
&prop_return) && prop_return)
{
window_type = *(Atom *)prop_return;
XFree(prop_return);
}
return window_type;
}
static Window
get_active_win(Display *dpy,
Window win,
Atom property)
{
Window active_win = None;
Atom actual_type;
int actual_format;
unsigned long nitems, bytes_after;
unsigned char *prop_return = NULL;
if(Success == XGetWindowProperty(dpy, win, property, 0L, sizeof(Window),
False, XA_WINDOW, &actual_type,
&actual_format, &nitems, &bytes_after,
&prop_return) && prop_return)
{
active_win = *(Window *)prop_return;
XFree(prop_return);
}
return active_win;
}
static Window *
get_client_list(Display *dpy,
Window root,
unsigned long *nclients)
{
Window *clients = NULL;
Atom actual_type;
int actual_format;
unsigned long nitems, bytes_after;
unsigned char *prop_ret = NULL;
if(Success == XGetWindowProperty(dpy, root, XInternAtom(dpy,
"_NET_CLIENT_LIST",
False),
0L, ULONG_MAX, False, XA_WINDOW,
&actual_type, &actual_format, &nitems,
&bytes_after, &prop_ret))
{
clients = (Window *)prop_ret;
*nclients = nitems;
}
return clients;
}
static void
set_opacity(Display *dpy,
Window win,
Atom property,
unsigned long opacity)
{
XChangeProperty(dpy, win, property, XA_CARDINAL, 32, PropModeReplace,
(unsigned char *)&opacity, 1L);
}
static int
err_noop(Display *dpy,
XErrorEvent *evt)
{
/* do nothing */
return 0;
}
void
usage(char* name) {
printf("USAGE:\n");
printf("%s [options]\n",name);
printf("Options:\n");
printf("\t-h, --help :\tThis screen...\n");
printf("\t-a level, --active level:\t Set active trans. level\n");
printf("\t-i level, --inactive level:\t Set inactive trans. level\n");
}
int
main(int argc,
char **argv)
{
Display *dpy;
Window root, old_active_window, active_window = None, *toplevels;
XWindowAttributes attr;
unsigned long ntoplevels = 0;
Atom _NET_ACTIVE_WINDOW, _NET_WM_WINDOW_OPACITY, _NET_WM_WINDOW_TYPE,
_NET_WM_WINDOW_TYPE_DESKTOP, _NET_WM_WINDOW_TYPE_UTILITY, _NET_WM_WINDOW_TYPE_DOCK, window_type;
XEvent xev;
/* parse arg */
while (0 == 0)
{
int option_index = 0;
int next_option;
static struct option long_options[] = {
{"help", 0, NULL, 'h'},
{"active", 1, NULL, 'a'},
{"inactive", 1, NULL, 'i'},
{NULL, 0, NULL, 0}
};
next_option =
getopt_long (argc, argv, "ha:i:", long_options, &option_index);
if (next_option == -1)
{
break;
}
switch (next_option)
{
case 'a':
if (optarg) {
if (sscanf(optarg,"%f",&_active_opacity)==EOF) {
fprintf(stderr,"Wrong format for active opacity\n");
return -1;
}
if (_active_opacity>=1)
_active_opacity=0.999999; /* Xgl don't like 1... */
}
break;
case 'i':
if (optarg) {
if (sscanf(optarg,"%f",&_inactive_opacity)==EOF) {
fprintf(stderr,"Wrong format for inactive opacity\n");
return -1;
}
if (_inactive_opacity>=1)
_inactive_opacity=0.999999;
}
break;
default:
usage (argv[0]);
return -1;
}
}
printf("Using following trans. level:\n\t %f active\n\t %f inactive\n",
_active_opacity,
_inactive_opacity);
dpy = XOpenDisplay(NULL);
if(!dpy) {
fprintf(stderr, "Failed to open display\n");
return 1;
}
XSetErrorHandler(err_noop);
root = DefaultRootWindow(dpy);
XGetWindowAttributes(dpy, root, &attr);
XSelectInput(dpy, root, attr.your_event_mask
| PropertyChangeMask | StructureNotifyMask
| SubstructureNotifyMask);
_NET_WM_WINDOW_OPACITY = XInternAtom(dpy, "_NET_WM_WINDOW_OPACITY", False);
_NET_ACTIVE_WINDOW = XInternAtom(dpy, "_NET_ACTIVE_WINDOW", False);
_NET_WM_WINDOW_TYPE = XInternAtom(dpy, "_NET_WM_WINDOW_TYPE", False);
_NET_WM_WINDOW_TYPE_DESKTOP = XInternAtom(dpy,
"_NET_WM_WINDOW_TYPE_DESKTOP",
False);
_NET_WM_WINDOW_TYPE_UTILITY = XInternAtom(dpy,
"_NET_WM_WINDOW_TYPE_UTILITY",
False);
_NET_WM_WINDOW_TYPE_DOCK = XInternAtom(dpy, "_NET_WM_WINDOW_TYPE_DOCK",
False);
old_active_window = get_active_win(dpy, root, _NET_ACTIVE_WINDOW);
toplevels = get_client_list(dpy, root, &ntoplevels);
if(toplevels) {
int i;
for(i = 0; i < ntoplevels; i++) {
if(toplevels[i] == old_active_window) {
set_opacity(dpy, toplevels[i], _NET_WM_WINDOW_OPACITY,
ACTIVE_OPACITY);
continue;
}
window_type = get_window_type(dpy, toplevels[i],
_NET_WM_WINDOW_TYPE);
if(window_type == _NET_WM_WINDOW_TYPE_DESKTOP
|| window_type == _NET_WM_WINDOW_TYPE_UTILITY
|| window_type == _NET_WM_WINDOW_TYPE_DOCK)
{
continue;
}
XGetWindowAttributes(dpy, toplevels[i], &attr);
if(attr.override_redirect == True)
continue;
set_opacity(dpy, toplevels[i], _NET_WM_WINDOW_OPACITY,
INACTIVE_OPACITY);
}
XFree(toplevels);
}
for(;;) {
if(!XNextEvent(dpy, &xev)) {
switch(xev.type) {
case PropertyNotify:
if(xev.xproperty.window != root
|| xev.xproperty.atom != _NET_ACTIVE_WINDOW)
{
break;
}
active_window = get_active_win(dpy, root,
_NET_ACTIVE_WINDOW);
if(active_window != old_active_window) {
if(old_active_window != None) {
XGetWindowAttributes(dpy, old_active_window, &attr);
window_type = get_window_type(dpy,
old_active_window,
_NET_WM_WINDOW_TYPE);
if(attr.override_redirect == False
&& window_type != _NET_WM_WINDOW_TYPE_DESKTOP
&& window_type != _NET_WM_WINDOW_TYPE_UTILITY
&& window_type != _NET_WM_WINDOW_TYPE_DOCK)
{
set_opacity(dpy, old_active_window,
_NET_WM_WINDOW_OPACITY,
INACTIVE_OPACITY);
}
}
if(active_window != None) {
set_opacity(dpy, active_window,
_NET_WM_WINDOW_OPACITY, ACTIVE_OPACITY);
}
old_active_window = active_window;
}
break;
case MapNotify:
if(xev.xmap.window != get_active_win(dpy, root,
_NET_ACTIVE_WINDOW))
{
XGetWindowAttributes(dpy, xev.xmap.window, &attr);
window_type = get_window_type(dpy, xev.xmap.window,
_NET_WM_WINDOW_TYPE);
if(attr.override_redirect == False
&& window_type != _NET_WM_WINDOW_TYPE_DESKTOP
&& window_type != _NET_WM_WINDOW_TYPE_UTILITY
&& window_type != _NET_WM_WINDOW_TYPE_DOCK)
{
set_opacity(dpy, xev.xmap.window,
_NET_WM_WINDOW_OPACITY,
INACTIVE_OPACITY);
}
}
break;
case UnmapNotify:
if(xev.xmap.window == old_active_window)
old_active_window = None;
break;
}
}
}
return 0;
}
mikedee
January 4th, 2007, 05:04 PM
Mikedee, pls update it trans-inactive.c
OK - Done
amgeex
January 8th, 2007, 07:12 PM
RYX's excellent how-to has been finally ported to the wiki. Check it out here: http://www.go-compiz.org/index.php?title=How_to_compile_and_run_Compiz_for_ nvidia_card_users
RYX
January 8th, 2007, 07:47 PM
Thanks amgeex! Don't forget to mention that you reviewed and edited the tutorial so it's OUR excellent tutorial, not only mine ... great work! ;)
amgeex
January 8th, 2007, 09:22 PM
Thanks RYX, I appreciate the gesture. :D
amgeex
January 9th, 2007, 10:24 PM
I just added content to the NVidia page under Video Drivers on the wiki. It has instructions to remove the old driver (if present), to install the latest driver and to configure the xorg.conf file. Check it out here: http://www.go-compiz.org/index.php?title=NVidia
Cheers,
AMGeeX :twisted:
amgeex
January 15th, 2007, 03:45 AM
New Tip: Workspace Switcher fix! Check it at the link below if you have that problem, as it has not been fixed in 0.3.6:
http://www.go-compiz.org/index.php?title=Workspace_Switcher_Fix
New Trick: RYX's Desktop Screenlets
http://www.go-compiz.org/index.php?title=Desktop_Screenlets
stjepan
January 16th, 2007, 07:45 AM
Still red cube everywhere....
amgeex
January 16th, 2007, 07:28 PM
Yes, because we haven't received "clearance" from David to use the winning logo as the official one. How's that going imnotpc?
amgeex
February 11th, 2007, 10:41 PM
I just finished a general wiki cleanup! This is what has been done:
- All unused images have been deleted.
- All useless or insignificant pages have been deleted or their content has been transfered to another page.
- Fixed broken links on the Discuss and Download pages.
- Removed unexisting FAQ announcement on main page.
- Updated Screenlets page.
- Updated Documentation page.
Peace out!
amgeex :D
imnotpc
February 12th, 2007, 03:46 AM
Looks good. Thanks!
FunkyM
February 12th, 2007, 10:30 AM
It might be good to somehow link to the documentation pages from the menubar.
Btw. how/where to receive permissions for editing Wiki pages?
wfarr
April 6th, 2007, 09:17 PM
Okay, I updated the main page, created the Stable Release (http://go-compiz.org/index.php?title=Stable_Release) and Developmental Release (http://go-compiz.org/index.php?title=Developmental_Release) pages, and added Foresight Linux instructions.
:D
RYX
April 7th, 2007, 04:31 PM
First to say - sorry for totally messing up the wiki :D ...
I updated the FAQ so everyone can add his/her own questions and answers now ...
The wiki needs a lot of work so maybe we should discuss a few things everyone expects from the new wiki. If anyone wants to know more about how the tabbed layout works, I can write a small info about that. Most important: If you want your page to appear under a certain tab (e.g. Documentation) you need to name your page like "Documentation:Pagename". New tabs must be created as sidebars - if you want to do that, please contact me first (it'll need changes to the forum-template, too).
I will study some wiki tutorials today and then see how we can realize the plugins-sections using wiki-Templates. I'd like to add a plugins-tab as soon as possible (but I'll first wait until everything is connected under the new domains which will still need a few days).
:)
amgeex
April 9th, 2007, 03:29 AM
Yup yup, I'll be working on the wiki too, now that I'm back! :twisted:
amgeex
June 18th, 2007, 06:40 PM
General wiki cleanup, deleted some useless pages, and fixed some dead/wrong links. Next up: Improving the FAQ and setting up some needed redirects! :wink:
d_garbage
August 21st, 2007, 11:45 PM
Hi,
Should this should be un-stickied and perhaps renamed as our new wiki goes live?
Thanks,
d:¬)-'
wfarr
August 22nd, 2007, 11:34 PM
Unstuck and locked as per request.
vBulletin® v3.7.3, Copyright ©2000-2008, Jelsoft Enterprises Ltd.