https://wiki.archlinux.org/api.php?action=feedcontributions&user=Atsutane&feedformat=atomArchWiki - User contributions [en]2024-03-29T05:49:52ZUser contributionsMediaWiki 1.41.0https://wiki.archlinux.org/index.php?title=GitLab&diff=800894GitLab2024-02-20T20:27:52Z<p>Atsutane: /* PostgreSQL database */ gitlabhq_production is the created database - gitlab_production doesn't exist.</p>
<hr />
<div>[[Category:Git web interfaces]]<br />
[[ja:Gitlab]]<br />
[[zh-hans:GitLab]]<br />
{{Related articles start}}<br />
{{Related|Gitolite}}<br />
{{Related|Ruby on Rails}}<br />
{{Related articles end}}<br />
<br />
From [https://about.gitlab.com/ GitLab's homepage]:<br />
<br />
:GitLab offers git repository management, code reviews, issue tracking, activity feeds and wikis. Enterprises install GitLab on-premise and connect it with LDAP and Active Directory servers for secure authentication and authorization. A single GitLab server can handle more than 25,000 users but it is also possible to create a high availability setup with multiple active servers.<br />
<br />
An example live version can be found at [https://gitlab.com/ GitLab.com].<br />
<br />
== Installation ==<br />
<br />
GitLab requires [[Redis]] and a database backend. If you plan to run it on the same machine, first install [[PostgreSQL]].<br />
<br />
[[Install]] the {{pkg|gitlab}} package.<br />
<br />
Finally, a [[web server]] has to be installed and configured. The configuration for GitLab will be discussed in the [[#Web server configuration]] section.<br />
<br />
== Configuration ==<br />
<br />
=== Preliminary notes ===<br />
<br />
GitLab is composed of multiple components, see the [https://docs.gitlab.com/ce/development/architecture.html architecture overview page].<br />
<br />
The {{pkg|gitlab}} package installs GitLab's files in a manner that more closely follow standard Linux conventions:<br />
<br />
{| class="wikitable"<br />
! Description <br />
! [https://github.com/gitlabhq/gitlabhq/blob/master/doc/install/installation.md GitLab's Official] <br />
! {{pkg|gitlab}} <br />
|----------------------------------------------------------<br />
| Application Code<br />
| {{ic|/home/git}}<br />
| {{ic|/usr/share/webapps/gitlab}}<br />
|----------------------------------------------------------<br />
| Application Data<br />
| {{ic|/home/git}}<br />
| {{ic|/var/lib/gitlab}}<br />
|----------------------------------------------------------<br />
| User (Home Directory)<br />
| {{ic|git}} ({{ic|/home/git}})<br />
| {{ic|gitlab}} ({{ic|/var/lib/gitlab}})<br />
|----------------------------------------------------------<br />
| Configuration File GitShell<br />
| {{ic|/home/git/gitlab-shell/config.yml}}<br />
| {{ic|/etc/webapps/gitlab-shell/config.yml}}<br />
|----------------------------------------------------------<br />
| Configuration File GitLab<br />
| {{ic|/home/git/gitlab/config/gitlab.yml}}<br />
| {{ic|/etc/webapps/gitlab/gitlab.yml}}<br />
|----------------------------------------------------------<br />
| Logs<br />
| {{ic|/home/git/log}}<br />
| {{ic|/var/log/gitlab}}<br />
|----------------------------------------------------------<br />
| Unix socket files / PID files<br />
| {{ic|/home/git/sockets}}<br />
| {{ic|/run/gitlab}}<br />
|}<br />
<br />
{{Tip|If you are familiar with the [[Arch build system]] you can edit the PKGBUILD and relevant files to change gitlab's home directory to a place of your liking.}}<br />
<br />
=== GitLab ===<br />
<br />
Edit {{ic|/etc/webapps/gitlab/gitlab.yml}} and setup at least the following parameters:<br />
<br />
{{Note|The {{ic|hostname}} and {{ic|port}} are used for the {{ic|git clone http://''hostname:port''}} as example.}}<br />
<br />
'''Hostname:''' In the {{ic|gitlab:}} section set {{ic|host:}} - replacing {{ic|localhost}} to {{ic|''yourdomain.com''}} (no {{ic|<nowiki>http://</nowiki>}} or trailing slash) - into your fully qualified domain name.<br />
<br />
'''Port:''' {{ic|port:}} can be confusing. This is not the port that the GitLab server (Puma) runs on; it is the port that users will initially access through in their browser. Basically, if you intend for users to visit {{ic|''yourdomain.com''}} in their browser, without appending a port number to the domain name, leave {{ic|port:}} as {{ic|80}}. If you intend your users to type something like {{ic|''yourdomain.com:3425''}} into their browsers, then you would set {{ic|port:}} to {{ic|3425}}. You will also have to '''configure your webserver''' to listen on that port.<br />
<br />
'''Timezone (optional):''' The {{ic|time_zone:}} parameter is optional, but may be useful to force the zone of GitLab applications.<br />
<br />
Based on the table in [[#Preliminary notes]] above, the following paths have to be configured in {{ic|gitlab.yml}}:<br />
<br />
* {{ic|repository_downloads_path: "/var/lib/gitlab/shared/cache/archive/"}}<br />
* {{ic|gitlab_ci}} section: {{ic|builds_path: "/var/lib/gitlab/builds/"}}<br />
* {{ic|incoming_email}} section (if enabled): {{ic|log_path: "/var/log/gitlab/mail_room_json.log"}}<br />
* {{ic|artifacts}} section (if enabled): {{ic|path: "/var/lib/gitlab/shared/artifacts"}}<br />
* {{ic|external_diffs}} section (if enabled): {{ic|storage_path: "/var/lib/gitlab/shared/external-diffs"}}<br />
* {{ic|lfs}} section (if enabled): {{ic|storage_path: "/var/lib/gitlab/shared/lfs-objects"}}<br />
* {{ic|packages}} section (if enabled): {{ic|storage_path: "/var/lib/gitlab/shared/packages"}}<br />
* {{ic|dependency_proxy}} section (if enabled): {{ic|storage_path: "/var/lib/gitlab/shared/dependency_proxy"}}<br />
* {{ic|terraform_state}} section (if enabled): {{ic|storage_path: "/var/lib/gitlab/shared/terraform_state"}}<br />
* {{ic|pages}} section (if enabled): {{ic|path: "/var/lib/gitlab/shared/pages"}}<br />
* {{ic|registry}} section (if enabled): {{ic|path: "/var/lib/gitlab/shared/registry"}}<br />
<br />
=== Custom port for Puma ===<br />
<br />
GitLab Puma is the main component which processes most of the user requests. By default, it listens on the {{ic|/run/gitlab/gitlab.socket}} UNIX socket which can be changed in the {{ic|/etc/webapps/gitlab/puma.rb}} file.<br />
<br />
To configure Puma to listen on a TCP port as well as UNIX socket:<br />
<br />
{{hc|/etc/webapps/gitlab/puma.rb|2=<br />
bind 'unix:///run/gitlab/gitlab.socket'<br />
bind 'tcp://127.0.0.1:8080'<br />
}}<br />
<br />
If the Puma address is changed, the configuration of other components which communicate with Puma have to be updated as well:<br />
<br />
* For GitLab Shell, update the {{ic|gitlab_url}} variable in {{ic|/etc/webapps/gitlab-shell/config.yml}} and {{ic|url}} in the {{ic|[gitlab]}} section in {{ic|/etc/gitlab-gitaly/config.toml}}.<br />
: {{Tip|UNIX socket path can be specified with URL-escaped slashes (i.e. {{ic|http+unix://%2Frun%2Fgitlab%2Fgitlab.socket}} for the default {{ic|/run/gitlab/gitlab.socket}}).}}<br />
* For GitLab Workhorse, [[edit]] the {{ic|gitlab-workhorse.service}} and update the {{ic|-authBackend}} option. See [https://gitlab.com/gitlab-org/gitlab-workhorse#relative-url-support] for details.<br />
<br />
=== Secret strings ===<br />
<br />
Make sure that the files {{ic|/etc/webapps/gitlab/secret}} and {{ic|/etc/webapps/gitlab-shell/secret}} files contain something. Their content should be kept secret because they are used for the generation of authentication tokens etc.<br />
<br />
For example, random strings can be generated with the following commands:<br />
<br />
# hexdump -v -n 64 -e '1/1 "%02x"' /dev/urandom > /etc/webapps/gitlab/secret<br />
# chmod 640 /etc/webapps/gitlab/secret<br />
<br />
# hexdump -v -n 64 -e '1/1 "%02x"' /dev/urandom > /etc/webapps/gitlab-shell/secret<br />
# chmod 640 /etc/webapps/gitlab-shell/secret<br />
<br />
Also fill in (new) secret strings for {{ic|secrets.yml}}:<br />
<br />
{{hc|/etc/webapps/gitlab/secrets.yml|<br />
production:<br />
secret_key_base: ''secret''<br />
db_key_base: ''secret''<br />
otp_key_base: ''secret''<br />
openid_connect_signing_key: ''secret''<br />
}}<br />
<br />
=== Redis ===<br />
<br />
In order to provide sufficient performance you will need a cache database. [[Redis#Installation|Install]] and [[Redis#Configuration|configure]] a Redis instance, being careful to the section dedicated to listening via a socket.<br />
<br />
Add the {{ic|gitlab}} user to the {{ic|redis}} [[user group]] and update this configuration file:<br />
<br />
{{hc|/etc/webapps/gitlab/resque.yml|2=<br />
development:<br />
url: unix:/run/redis/redis.sock<br />
test:<br />
url: unix:/run/redis/redis.sock<br />
production:<br />
url: unix:/run/redis/redis.sock<br />
}}<br />
<br />
=== PostgreSQL database ===<br />
<br />
A [[PostgreSQL]] database will be required before Gitlab can be run.<br />
<br />
Login to PostgreSQL and create the {{ic|gitlabhq_production}} database along with its user. Remember to change {{ic|your_username_here}} and {{ic|your_password_here}} to the real values:<br />
<br />
# psql -d template1<br />
<br />
{{bc|1=<br />
template1=# CREATE USER your_username_here WITH PASSWORD 'your_password_here';<br />
template1=# ALTER USER your_username_here SUPERUSER;<br />
template1=# CREATE DATABASE gitlabhq_production OWNER your_username_here;<br />
template1=# \q<br />
}}<br />
<br />
{{Note|The reason for creating the user as a superuser is that GitLab is trying to be "smart" and install extensions (not just create them in its own userspace). And this is only allowed by superusers in Postgresql.}}<br />
<br />
Try connecting to the new database with the new user to verify it works:<br />
<br />
# psql -d gitlabhq_production<br />
<br />
Open the new {{ic|/etc/webapps/gitlab/database.yml}} and set the values for {{ic|username:}} and {{ic|password:}}. For example:<br />
<br />
{{hc|/etc/webapps/gitlab/database.yml|<br />
#<br />
# PRODUCTION<br />
#<br />
production:<br />
main:<br />
adapter: postgresql<br />
encoding: unicode<br />
database: ''gitlabhq_production''<br />
username: ''your_username_here''<br />
password: "''your_password_here''"<br />
# host: localhost<br />
# port: 5432<br />
socket: /run/postgresql/.s.PGSQL.5432<br />
ci:<br />
adapter: postgresql<br />
encoding: unicode<br />
database: ''gitlabhq_production''<br />
database_tasks: false<br />
username: ''your_username_here''<br />
password: "''your_password_here''"<br />
# host: localhost<br />
# port: 5432<br />
socket: /run/postgresql/.s.PGSQL.5432<br />
...<br />
}}<br />
<br />
For our purposes (unless you know what you are doing), you do not need to worry about configuring the other databases listed in {{ic|/etc/webapps/gitlab/database.yml}}. We only need to set up the production database to get GitLab working.<br />
<br />
{{Note|Since [https://docs.gitlab.com/ee/install/installation.html#configure-gitlab-db-settings GitLab 15.9], {{ic|database.yml}} with only a {{ic|main:}} section is deprecated. In GitLab 17.0 and later, you must have two sections in your {{ic|database.yml}}: {{ic|main:}} and {{ic|ci:}}. The {{ic|ci:}} connection '''must be to the same database''' as {{ic|main:}}.}}<br />
<br />
=== Initialize Gitlab database ===<br />
<br />
Start the [[Redis]] server and the {{ic|gitlab-gitaly.service}} before initializing the database.<br />
<br />
Initialize the database and activate advanced features:<br />
<br />
$ cd /usr/share/webapps/gitlab<br />
$ sudo -u gitlab $(cat environment | xargs) bundle exec rake gitlab:setup <br />
<br />
You can set the Administrator/root password and email by supplying them in the {{ic|GITLAB_ROOT_PASSWORD}} and {{ic|GITLAB_ROOT_EMAIL}} environment variables, respectively, as seen below. If you do not set the password (and it is set to the default one), do not expose GitLab to the public internet until the installation is done and you have logged into the server the first time. During the first login, you are forced to change the default password. An Enterprise Edition license may also be installed at this time by supplying a full path in the {{ic|GITLAB_LICENSE_FILE}} environment variable.<br />
<br />
{{Accuracy|This will log the {{ic|''yourpassword''}} in the shell history.}}<br />
<br />
$ cd /usr/share/webapps/gitlab<br />
$ sudo -u gitlab $(cat environment | xargs) bundle exec rake gitlab:setup GITLAB_ROOT_PASSWORD=''yourpassword'' GITLAB_ROOT_EMAIL=''youremail'' GITLAB_LICENSE_FILE=''/path/to/license''<br />
<br />
Finally run the following commands to check your installation:<br />
<br />
$ sudo -u gitlab $(cat environment | xargs) bundle exec rake gitlab:env:info<br />
$ sudo -u gitlab $(cat environment | xargs) bundle exec rake gitlab:check<br />
<br />
{{note|<br />
*The ''gitlab:env:info'' and ''gitlab:check'' commands might show a fatal error related to git. This is OK.<br />
*The ''gitlab:check'' will complain about missing initscripts. This is nothing to worry about, as [[systemd]] service files are used instead (which GitLab does not recognize).<br />
}}<br />
<br />
=== Adjust modifier bits ===<br />
<br />
(The gitlab check will not pass if the user and group ownership is not configured properly)<br />
<br />
# chmod -R ug+rwX,o-rwx /var/lib/gitlab/repositories/<br />
# chmod -R ug-s /var/lib/gitlab/repositories<br />
# find /var/lib/gitlab/repositories/ -type d -print0 | xargs -0 chmod g+s<br />
<br />
=== Web server configuration ===<br />
<br />
To access GitLab from an outside network, the upstream documentation recommends to use an established web server as a proxy. All queries from the web server to GitLab are processed by GitLab Workhorse, which decides how they should be processed. See [https://gitlab.com/gitlab-org/gitlab-workhorse#quick-facts-how-does-workhorse-work] for details.<br />
<br />
==== Nginx ====<br />
<br />
See [[Nginx#Configuration]] for basic ''nginx'' configuration and [[Nginx#TLS]] for enabling HTTPS. The sample in this section also assumes that server blocks are managed with [[Nginx#Managing server entries]].<br />
<br />
Create and edit the configuration based on the following snippet. See the [https://gitlab.com/gitlab-org/gitlab-ce/tree/master/lib/support/nginx upstream GitLab repository] for more examples.<br />
<br />
{{hc|/etc/nginx/sites-available/gitlab|<nowiki><br />
upstream gitlab-workhorse {<br />
server unix:/run/gitlab/gitlab-workhorse.socket fail_timeout=0;<br />
}<br />
<br />
server {<br />
listen 80; # IPv4 HTTP<br />
#listen 443 ssl http2; # uncomment to enable IPv4 HTTPS + HTTP/2<br />
#listen [::]:80; # uncomment to enable IPv6 HTTP<br />
#listen [::]:443 ssl http2; # uncomment to enable IPv6 HTTPS + HTTP/2<br />
server_name example.com;<br />
<br />
access_log /var/log/gitlab/nginx_access.log;<br />
error_log /var/log/gitlab/nginx_error.log;<br />
<br />
#ssl_certificate ssl/example.com.crt;<br />
#ssl_certificate_key ssl/example.com.key;<br />
<br />
location ~ ^/(assets)/ {<br />
root /usr/share/webapps/gitlab/public;<br />
gzip_static on; # to serve pre-gzipped version<br />
expires max;<br />
add_header Cache-Control public;<br />
}<br />
<br />
location / {<br />
# unlimited upload size in nginx (so the setting in GitLab applies)<br />
client_max_body_size 0;<br />
<br />
# proxy timeout should match the timeout value set in /etc/webapps/gitlab/puma.rb<br />
proxy_read_timeout 60;<br />
proxy_connect_timeout 60;<br />
proxy_redirect off;<br />
<br />
proxy_set_header Host $http_host;<br />
proxy_set_header X-Real-IP $remote_addr;<br />
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;<br />
proxy_set_header X-Forwarded-Proto $scheme;<br />
<br />
#proxy_set_header X-Forwarded-Ssl on;<br />
<br />
proxy_pass http://gitlab-workhorse;<br />
}<br />
<br />
error_page 404 /404.html;<br />
error_page 422 /422.html;<br />
error_page 500 /500.html;<br />
error_page 502 /502.html;<br />
error_page 503 /503.html;<br />
location ~ ^/(404|422|500|502|503)\.html$ {<br />
root /usr/share/webapps/gitlab/public;<br />
internal;<br />
}<br />
}<br />
</nowiki>}}<br />
<br />
==== Apache ====<br />
<br />
Install and configure the [[Apache HTTP Server]] and [[Apache HTTP Server#TLS]] for enabling HTTPS. You can use these [https://gitlab.com/gitlab-org/gitlab-recipes/tree/master/web-server/apache upstream recipes] to get started with the configuration file for GitLab's virtual host.<br />
<br />
Notice that the SSL virtual host needs a specific IP instead of generic. Also if you set a custom port for Puma, do not forget to set it at the {{ic|BalanceMember}} line.<br />
<br />
A working example with certbot flavor assuming that {{ic|gitlab-workhorse.service}} contains {{ic|-listenNetwork tcp -listenAddr 127.0.0.1:8181}} on the {{ic|ExecStart}} line:<br />
<br />
{{hc|/etc/httpd/conf/extra/gitlab.conf|<nowiki><br />
<VirtualHost *:443><br />
ServerName SERVERNAME<br />
ServerAlias SERVERNAME<br />
DocumentRoot /usr/share/webapps/gitlab/public<br />
<Directory /usr/share/webapps/gitlab/public><br />
Options FollowSymlinks<br />
AllowOverride all<br />
Require all granted<br />
</Directory><br />
<IfModule mod_alias.c><br />
Alias / /usr/share/webapps/gitlab/public/<br />
</IfModule><br />
<br />
<IfModule mod_headers.c><br />
Header always set Strict-Transport-Security "max-age=15552000; includeSubDomains; preload"<br />
</IfModule><br />
<br />
ProxyPreserveHost On<br />
SSLProxyEngine on<br />
AllowEncodedSlashes NoDecode<br />
<Location /><br />
Require all granted<br />
ProxyPassReverse http://127.0.0.1:8181<br />
ProxyPassReverse http://SERVERNAME<br />
</Location><br />
#<br />
RewriteEngine on<br />
RewriteCond %{DOCUMENT_ROOT}/%{REQUEST_FILENAME} !-f [OR]<br />
RewriteCond %{REQUEST_URI} ^/uploads/.*<br />
RewriteRule .* http://127.0.0.1:8181%{REQUEST_URI} [P,QSA,NE]<br />
RequestHeader set X_FORWARDED_PROTO 'https'<br />
RequestHeader set X-Forwarded-Ssl on<br />
#<br />
ErrorDocument 404 /404.html<br />
ErrorDocument 422 /422.html<br />
ErrorDocument 500 /500.html<br />
ErrorDocument 503 /deploy.html<br />
ErrorLog /var/log/httpd/gitlab.lan.info-error_log<br />
CustomLog /var/log/httpd/gitlab.lan.info-access_log common<br />
Include /etc/letsencrypt/options-ssl-apache.conf<br />
SSLCertificateFile /etc/letsencrypt/live/SERVERNAME/fullchain.pem<br />
SSLCertificateKeyFile /etc/letsencrypt/live/SERVERNAME/privkey.pem<br />
</VirtualHost><br />
<br />
<VirtualHost *:80><br />
ServerName SERVERNAME<br />
Redirect / https://SERVERNAME<br />
RewriteEngine on<br />
RewriteCond %{SERVER_NAME} =SERVERNAME<br />
RewriteRule ^ https://%{SERVER_NAME}%{REQUEST_URI} [END,NE,R=permanent]<br />
</VirtualHost><br />
</nowiki>}}<br />
<br />
==== Node.js ====<br />
<br />
You can easily set up an HTTPS proxy on port 443 to proxy traffic to the GitLab Workhorse using [https://github.com/CodeCharmLtd/http-master http-master] for Node.js. http-master is built on top of [https://github.com/nodejitsu/node-http-proxy node-http-proxy].<br />
<br />
=== HTTPS/SSL ===<br />
<br />
==== Change GitLab configs ====<br />
<br />
Modify {{ic|/etc/webapps/gitlab/shell.yml}} so the URL to your GitLab site starts with {{ic|https://}}. Modify {{ic|/etc/webapps/gitlab/gitlab.yml}} so that {{ic|https:}} setting is set to {{ic|true}}.<br />
<br />
==== Let's Encrypt ====<br />
<br />
To validate your URL, the Let's Encrypt process will try to access your GitLab server via a URL such as {{ic|''your.domain.name''/.well-known/acme-challenge/''a_long_id''}}. Hence, you need to make sure that requests to the {{ic|.well-known}} subdirectory are not proxied to GitLab Workhorse. This can be done easily with the Certbot's "webroot" method, see [[Certbot#Webroot]] for details.<br />
<br />
=== Firewall ===<br />
<br />
If you want to give direct access to your Gitlab installation through an [[iptables]] firewall, you may need to adjust the port and the network address:<br />
<br />
# iptables -A tcp_inbound -p TCP -s '''192.168.1.0/24''' --destination-port '''80''' -j ACCEPT<br />
<br />
If you are behind a router, do not forget to forward this port to the running GitLab server host, if you want to allow WAN access.<br />
<br />
{{Note|Allowing access to GitLab from hosts other than localhost is not recommended before completing the installation and setting the root password. See [[#Start and test GitLab]].}}<br />
<br />
== Start and test GitLab ==<br />
<br />
Make sure [[PostgreSQL]] and [[Redis]] are running and setup correctly.<br />
<br />
Then [[start]]/[[enable]] {{ic|gitlab.target}}.<br />
<br />
Now test your GitLab instance by visiting http://localhost or {{ic|http://localhost:''port''}}, where {{ic|''port''}} is the port number on which your web server listens. You should be prompted to create a password:<br />
<br />
{{bc|<br />
username: root<br />
password: You will be prompted to create one on your first visit.<br />
}}<br />
<br />
See [[#Troubleshooting]] and log files inside the {{ic|/var/log/gitlab/}} directory for troubleshooting.<br />
<br />
== Upgrade database on updates ==<br />
<br />
=== Manual method ===<br />
<br />
After updating the {{Pkg|gitlab}} package, it is required to upgrade the database:<br />
$ cd /usr/share/webapps/gitlab<br />
$ sudo -u gitlab $(cat environment | xargs) bundle exec rake db:migrate<br />
<br />
Afterwards, [[reload]] and [[restart]] {{ic|gitlab-sidekiq.service}}, {{ic|gitlab-puma.service}}, {{ic|gitlab-workhorse.service}} and {{ic|gitlab-gitaly.service}}.<br />
<br />
=== Automatic method ===<br />
<br />
You can create pacman hooks to automate database upgrades on GitLab package updates. Create the three following files, do not forget to make the shell script [[executable]]:<br />
<br />
{{hc|/etc/pacman.d/hooks/05-gitlab-pre.hook|2=<br />
[Trigger]<br />
Operation = Upgrade<br />
Type = Package<br />
Target = gitlab<br />
<br />
[Action]<br />
Description = Stopping gitlab services<br />
When = PreTransaction<br />
Exec = /usr/bin/systemctl stop gitlab-gitaly.service gitlab-mailroom.service gitlab-puma.service gitlab-sidekiq.service gitlab-workhorse.service<br />
}}<br />
<br />
{{hc|/etc/pacman.d/hooks/99-gitlab-post.hook|2=<br />
[Trigger]<br />
Operation = Upgrade<br />
Type = Package<br />
Target = gitlab<br />
<br />
[Action]<br />
Description = Migrating GitLab database and starting services<br />
When = PostTransaction<br />
Exec = /etc/pacman.d/scripts/gitlab-migrate-database.sh<br />
}}<br />
<br />
{{hc|/etc/pacman.d/scripts/gitlab-migrate-database.sh|2=<br />
#!/bin/sh<br />
<br />
cd "/usr/share/webapps/gitlab"<br />
sudo -u gitlab $(cat environment {{!}} xargs) bundle exec rake db:migrate<br />
<br />
# The hook runs after 30-systemd-daemon-reload.hook so another systemctl daemon-reload is not necessary.<br />
systemctl start gitlab.target<br />
}}<br />
<br />
== Advanced configuration ==<br />
<br />
=== Basic SSH ===<br />
<br />
After completing the basic installation, set up SSH access for users. Configuration for [[OpenSSH]] is described below. [[Secure Shell#Software|Other SSH clients and servers]] will require different modifications.<br />
<br />
For tips on adding user SSH keys, the process is well-documented on the [https://docs.gitlab.com/ee/ssh/ GitLab]{{Dead link|2024|01|13|status=404}} website. You can check the administrator logs at {{ic|/var/lib/gitlab/log/gitlab-shell.log}} to confirm user SSH keys are being submitted properly. Behind the scenes, GitLab adds these keys to its ''authorized_keys'' file in {{ic|/var/lib/gitlab/.ssh/authorized_keys}}.<br />
<br />
The common method of testing keys (e.g. {{ic|ssh -T git@''your_server''}}) requires a bit of extra configuration to work correctly. The user configured in {{ic|/etc/webapps/gitlab/gitlab.yml}} (by default {{ic|gitlab}}) must be added to the server's sshd configuration file, in addition to a handful of other changes:<br />
<br />
{{hc|/etc/ssh/sshd_config|<br />
PubkeyAuthentication yes<br />
AuthorizedKeysFile %h/.ssh/authorized_keys<br />
}}<br />
<br />
If your {{ic|/etc/ssh/sshd_config}} contains the {{ic|AllowUsers}} option, then the {{ic|gitlab}} user should be added to the list:<br />
<br />
{{hc|/etc/ssh/sshd_config|<br />
AllowUsers gitlab ''other users...''<br />
}}<br />
<br />
After updating the configuration file, [[restart]] the {{ic|sshd.service}}.<br />
<br />
Test user SSH keys (optionally add -v to see extra information):<br />
<br />
$ ssh -T ''gitlab''@''your_server''<br />
<br />
=== Custom SSH connection ===<br />
<br />
If you are running SSH on a non-standard port, you must change the GitLab user's SSH config:<br />
{{hc|/var/lib/gitlab/.ssh/config|2=<br />
host localhost # Give your setup a name (here: override localhost)<br />
user gitlab # Your remote git user<br />
port 2222 # Your port number<br />
hostname 127.0.0.1; # Your server name or IP<br />
}}<br />
<br />
You also need to change the corresponding options (e.g. ssh_user, ssh_host, admin_uri) in the {{ic|/etc/webapps/gitlab/gitlab.yml}} file.<br />
<br />
=== Sending emails from GitLab ===<br />
<br />
GitLab can send emails either using a local [[mail transfer agent]] (via ''sendmail'') or using [[Wikipedia:SMTP|SMTP]].<br />
<br />
To use ''sendmail'', edit {{ic|/etc/webapps/gitlab/smtp_settings.rb}} and comment out all lines. Then mail delivery should work without any further configuration in GitLab, assuming that the local mail transfer agent is configured properly.<br />
<br />
To use SMTP, configure the options in {{ic|smtp_settings.rb}} according to your mail server. For example, to send via Gmail:<br />
<br />
{{hc|/etc/webapps/gitlab/smtp_settings.rb|<nowiki><br />
if Rails.env.production?<br />
Gitlab::Application.config.action_mailer.delivery_method = :smtp<br />
<br />
ActionMailer::Base.delivery_method = :smtp<br />
ActionMailer::Base.smtp_settings = {<br />
address: 'smtp.gmail.com',<br />
port: 587,<br />
domain: 'gmail.com',<br />
user_name: 'username@gmail.com',<br />
password: 'application password',<br />
authentication: 'plain',<br />
enable_starttls_auto: true<br />
}<br />
end<br />
</nowiki>}}<br />
<br />
{{Note|Gmail will reject mails received this way (and send you a mail that it did). You will need to disable secure authentication (follow the link in the rejection mail) to work around this. The more secure approach is to enable two-factor authentication for {{ic|username@gmail.com}} and to set up an [https://support.google.com/accounts/answer/185833 application specific password] for this configuration file.}}<br />
<br />
== Useful tips ==<br />
<br />
=== Rake tasks ===<br />
<br />
A number of setup/maintenance/etc tasks are available through rake. To list them, go to Gitlab's home directory:<br />
<br />
$ cd /usr/share/webapps/gitlab<br />
<br />
and run:<br />
{{hc|<nowiki>$ sudo -u gitlab $(cat environment | xargs) bundle exec rake -T | grep gitlab</nowiki>|<nowiki><br />
rake gitlab:app:check # GITLAB | Check the configuration of the GitLab Rails app<br />
rake gitlab:backup:create # GITLAB | Create a backup of the GitLab system<br />
rake gitlab:backup:restore # GITLAB | Restore a previously created backup<br />
rake gitlab:check # GITLAB | Check the configuration of GitLab and its environment<br />
rake gitlab:cleanup:block_removed_ldap_users # GITLAB | Cleanup | Block users that have been removed in LDAP<br />
rake gitlab:cleanup:dirs # GITLAB | Cleanup | Clean namespaces<br />
rake gitlab:cleanup:repos # GITLAB | Cleanup | Clean repositories<br />
rake gitlab:env:check # GITLAB | Check the configuration of the environment<br />
rake gitlab:env:info # GITLAB | Show information about GitLab and its environment<br />
rake gitlab:generate_docs # GITLAB | Generate sdocs for project<br />
rake gitlab:gitlab_shell:check # GITLAB | Check the configuration of GitLab Shell<br />
rake gitlab:import:all_users_to_all_groups # GITLAB | Add all users to all groups (admin users are added as owners)<br />
rake gitlab:import:all_users_to_all_projects # GITLAB | Add all users to all projects (admin users are added as masters)<br />
rake gitlab:import:repos # GITLAB | Import bare repositories from gitlab_shell -> repos_path into GitLab project instance<br />
rake gitlab:import:user_to_groups[email] # GITLAB | Add a specific user to all groups (as a developer)<br />
rake gitlab:import:user_to_projects[email] # GITLAB | Add a specific user to all projects (as a developer)<br />
rake gitlab:satellites:create # GITLAB | Create satellite repos<br />
rake gitlab:setup # GITLAB | Setup production application<br />
rake gitlab:shell:build_missing_projects # GITLAB | Build missing projects<br />
rake gitlab:shell:install[tag,repo] # GITLAB | Install or upgrade gitlab-shell<br />
rake gitlab:shell:setup # GITLAB | Setup gitlab-shell<br />
rake gitlab:sidekiq:check # GITLAB | Check the configuration of Sidekiq<br />
rake gitlab:test # GITLAB | Run all tests<br />
rake gitlab:web_hook:add # GITLAB | Adds a web hook to the projects<br />
rake gitlab:web_hook:list # GITLAB | List web hooks<br />
rake gitlab:web_hook:rm # GITLAB | Remove a web hook from the projects<br />
rake setup # GITLAB | Setup gitlab db<br />
</nowiki>}}<br />
<br />
=== Backup and restore ===<br />
<br />
Create a backup of the gitlab system:<br />
<br />
$ cd /usr/share/webapps/gitlab<br />
$ sudo -u gitlab $(cat environment | xargs) bundle exec rake gitlab:backup:create<br />
<br />
Restore the previously created backup file {{ic|/var/lib/gitlab/backups/1556571328_2019_04_29_11.10.2_gitlab_backup.tar}}:<br />
<br />
$ cd /usr/share/webapps/gitlab<br />
$ sudo -u gitlab $(cat environment | xargs) bundle exec rake gitlab:backup:restore BACKUP=1556571328_2019_04_29_11.10.2<br />
<br />
{{Note| Backup folder is set in {{ic|config/gitlab.yml}}. GitLab backup and restore is documented [https://github.com/gitlabhq/gitlabhq/blob/master/doc/raketasks/backup_restore.md here]{{Dead link|2024|01|13|status=404}}.}}<br />
<br />
=== Enable fast SSH key lookup ===<br />
<br />
Enable Fast SSH Key Lookup as explained in this page: https://docs.gitlab.com/ee/administration/operations/fast_ssh_key_lookup.html<br />
<br />
In short, edit {{ic|/etc/ssh/sshd_config}}.<br />
<br />
Revert all changes done following this wiki (or revert {{ic|sshd_config}} from the {{Pkg|openssh}} package) and only add:<br />
<br />
AuthorizedKeysCommand /var/lib/gitlab/gitlab-shell/bin/gitlab-shell-authorized-keys-check gitlab %u %k<br />
AuthorizedKeysCommandUser gitlab<br />
<br />
Finally [[restart]] the {{ic|sshd.service}}.<br />
<br />
=== Rails console ===<br />
<br />
Rails console can be used to interface directly with GitLab. See [https://docs.gitlab.com/ee/administration/operations/rails_console.html] for details.<br />
<br />
To access Rails console: <br />
<br />
$ cd /usr/share/webapps/gitlab<br />
$ sudo -u gitlab $(cat environment | xargs) bundle exec rails console<br />
<br />
From here you can troubleshoot problems or do administration tasks like [https://docs.gitlab.com/ee/security/reset_user_password.html#use-a-rails-console resetting user passwords].<br />
<br />
== Troubleshooting ==<br />
<br />
=== HTTPS is not green (gravatar not using https) ===<br />
<br />
Redis caches gravatar images, so if you have visited your GitLab with http, then enabled https, gravatar will load up the non-secure images. You can clear the cache by doing<br />
<br />
$ cd /usr/share/webapps/gitlab<br />
$ sudo -u gitlab $(cat environment | xargs) bundle exec rake cache:clear<br />
<br />
as the gitlab user.<br />
<br />
=== Errors after updating ===<br />
<br />
After updating the package from the AUR, the database migrations and asset updates will sometimes fail. These steps may resolve the issue, if a simple reboot does not.<br />
<br />
First, move to the gitlab installation directory.<br />
$ cd /usr/share/webapps/gitlab<br />
<br />
If every gitlab page gives a 500 error, then the database migrations and the assets are probably stale. If not, skip this step.<br />
$ sudo -u gitlab $(cat environment | xargs) bundle exec rake db:migrate<br />
<br />
If gitlab is constantly waiting for the deployment to finish, then the assets have probably not been recompiled.<br />
$ sudo -u gitlab $(cat environment | xargs) bundle exec rake gitlab:assets:clean gitlab:assets:compile cache:clear<br />
<br />
Finally, [[restart]] {{ic|gitlab-puma.service}}, {{ic|gitlab-sidekiq.service}} and {{ic|gitlab-workhorse.service}}.<br />
<br />
=== GitLab Puma cannot access non-default repositories directory ===<br />
<br />
If a custom repository storage directory is set in {{ic|/home}}, disable the {{ic|1=ProtectHome=true}} parameter in the {{ic|gitlab-puma.service}} (see [[systemd#Drop-in files]] and the [https://forum.gitlab.com/t/cannot-change-repositores-location/9634/2 relevant forum thread on gitlab.com]).<br />
<br />
=== Failed to connect to Gitaly ===<br />
<br />
Sometimes, the Gitaly service will not get started, leaving GitLab unable to connect to Gitaly. The solution is simple: [[start]] {{ic|gitlab-gitaly.service}}.<br />
<br />
=== Failed to connect via SSH ===<br />
<br />
If git operations (-T, pull, clone, etc.) fails using ssh try changing the shell:<br />
<br />
# usermod -s /usr/share/webapps/gitlab-shell/bin/gitlab-shell-ruby gitlab<br />
<br />
=== CSS or styles issue ===<br />
<br />
If you have any issues with styles and CSS not working, you may try to edit {{ic|/usr/share/webapps/gitlab/config/environments/production.rb}} and change:<br />
<br />
# Disable Rails's static asset server (Apache or nginx will already do this)<br />
config.public_file_server.enabled = false<br />
<br />
to:<br />
<br />
# Disable Rails's static asset server (Apache or nginx will already do this)<br />
config.public_file_server.enabled = true<br />
<br />
=== The server does not support push options ===<br />
<br />
If you get an error like {{ic|fatal: the receiving end does not support push options}} you might need to enable it for the GitLab Git user ({{ic|gitlab}}) on the server. This can be done in the gitconfig:<br />
<br />
{{hc|/etc/webapps/gitlab-shell/.gitconfig|2=<br />
[receive]<br />
advertisePushOptions = true<br />
}}<br />
<br />
Alternatively one can set this with: <br />
<br />
$ sudo -u gitlab -H git config --global receive.advertisePushOptions true<br />
<br />
== See also ==<br />
<br />
*[https://docs.gitlab.com/ce/install/installation.html Official installation documentation]<br />
*[https://gitlab.com/gitlab-org/gitlab-recipes GitLab recipes with further documentation on running it with several web servers]<br />
*[https://gitlab.com/gitlab-org/gitlab-ce GitLab source code]</div>Atsutanehttps://wiki.archlinux.org/index.php?title=DeveloperWiki:Roll_Call&diff=411230DeveloperWiki:Roll Call2015-12-08T07:55:19Z<p>Atsutane: /* Trusted Users */</p>
<hr />
<div>[[Category:DeveloperWiki]]<br />
==Developers==<br />
* Aaron Griffin<br />
<br />
* Allan McRae<br />
** Packaging (toolchain)<br />
** Pacman development<br />
<br />
* Anatol Pomozov<br />
* Andreas Radke<br />
** Packaging (Bluetooth, Printing, Xorg, LibreOffice, LTS kernel)<br />
* Andrew Gregory<br />
** Pacman development<br />
* Ángel Velásquez<br />
* Antonio Rojas<br />
** Packaging (KDE, math stuff, orphans)<br />
* Bartłomiej Piotrowski<br />
** Packaging (mostly core and extra)<br />
** Bug tracker admin<br />
** Planet admin<br />
** Helping with rebuilds<br />
* Dan McGee<br />
* Daniel Isenmann<br />
* Dave Reisner<br />
* Eric Bélanger<br />
* Evangelos Foutras<br />
** Packaging (Xfce, LLVM/Clang)<br />
** Rebuild automation (arch-rebuilds)<br />
** Might be inactive for some period in 2016 and/or 2017<br />
* Felix Yan<br />
** Packaging (Python, Perl, Haskell, Nodejs, KDE/Qt, Deepin, Chinese/Japanese l10n, and more)<br />
* Florian Pritz<br />
** Packaging<br />
** Serveradmin<br />
** Mirrors<br />
** Mailinglists<br />
* Gaetan Bisson<br />
** Packaging<br />
* Gerardo Pozzi<br />
* Giovanni Scafora<br />
* Guillaume Alaux<br />
** Packaging ([extra] and [Community] – mainly Java related packages)<br />
* Ionuț Mircea Bîru<br />
** Currently I'm in charge of paying all our servers and signing.<br />
** I don't do any packaging this days, unless there is a bug in a package that affects or annoys me.<br />
** Group contact for archlinux on freenode.<br />
* Jan de Groot<br />
* Jan Steffens<br />
** Packaging (GNOME, misc other stuff)<br />
* Jürgen Hötzel<br />
** Packaging <br />
*** OCaml <br />
*** Various lisp programming languages<br />
*** Emacs<br />
* Laurent Carlier<br />
** Packaging (mesa, xorg)<br />
* Lukas Fleischer<br />
** Packaging<br />
** aurweb development<br />
** projects.archlinux.org maintenance<br />
* Maxime Gauduin<br />
* Pierre Schmitz<br />
** Packaging<br />
*** PHP<br />
*** See https://www.archlinux.org/packages/?maintainer=pierre<br />
** Maintaining<br />
*** install ISO and bootstrap packages<br />
*** Keyring<br />
*** wiki and bbs software (MediaWiki, FluxBB, custom themes and extensions)<br />
* Ray Rashif<br />
** Packaging (Audio, misc productivity and creativity, others)<br />
** Sporadic inactivity (mostly due to hardware issues needing to work in Windowz with pain)<br />
* Rémy Oudompheng<br />
* Ronald van Haren<br />
* Sébastien Luttringer<br />
* Sven-Hendrik Haase<br />
** Packaging (NVIDIA stuff, multimedia stuff)<br />
* Thomas Bächler<br />
* Thomas Dziedzic<br />
* Tobias Powalowski<br />
* Tom Gundersen<br />
<br />
==Trusted Users==<br />
* Alexander Rødseth<br />
* Alexandre Filgueira<br />
* Anatol Pomozov<br />
* Andrzej Giniewicz<br />
* Antonio Rojas<br />
* Balló György<br />
** Packaging (Cinnamon, GNOME Flashback, LXDE)<br />
* Christian Hesse<br />
* Connor Behan<br />
** Packaging<br />
* Daniel Micay<br />
* Daniel Wallace<br />
** Packaging<br />
* Evgeniy Alekseev<br />
* Fabio Castelli<br />
** Packaging<br />
* Ike Devolder<br />
** Packaging<br />
* Jakob Gruber<br />
** Packaging<br />
* Jaroslav Lichtblau<br />
* Jelle van der Waa<br />
** Packaging (Random Python modules, XMonad/XMobar and Haskell related packages)<br />
** IRC Op #archlinux, #archlinux-offtopic, (TU channel OP too)<br />
* Jerome Leclanche<br />
** Packaging (LXQt)<br />
* Jiachen Yang<br />
* Johannes Löthberg<br />
* Jonathan Steel<br />
** Packaging<br />
* Kyle Keen<br />
* Laurent Carlier<br />
** Packaging<br />
* Levente Polyak<br />
** Packaging<br />
** Security team<br />
** Reproducible builds<br />
* Lukas Fleischer<br />
** Packaging<br />
** aurweb development<br />
** projects.archlinux.org maintenance<br />
* Lukas Jirkovsky<br />
** Packaging<br />
* Martin Wimpress<br />
* Massimiliano Torromeo<br />
** Packaging<br />
* Maxime Gauduin<br />
* Pierre Neidhardt<br />
* Sébastien Luttringer<br />
* Sergej Pupykin<br />
* speps<br />
** Packaging (mostly Audio stuff)<br />
* Thomas Dziedzic<br />
* Thorsten Töpper<br />
** Packaging<br />
* Timothy Redaelli<br />
* Xyne<br />
* Михаил Страшун<br />
<br />
==Support Staff==<br />
* Alad Wenter<br />
** Wiki administration<br />
* Christian Rebischke<br />
** Security team<br />
* Dario Giovannetti<br />
** Wiki administration<br />
* Doug Newgard<br />
** Bug tracker basic triage, sorting, correction, and assigning<br />
* Eric Waller<br />
* Jakob Wadsager<br />
* Jason Ryan<br />
** Forum Administration and Moderation<br />
** Wiki Administration<br />
* Johannes Löthberg<br />
* Levente Polyak<br />
** See above (TU)<br />
* Remi Gacogne<br />
** Security team<br />
** Reproducible builds<br />
* tigrmesh<br />
* WorMzy Tykashi<br />
** Forum moderation<br />
* Xyne</div>Atsutanehttps://wiki.archlinux.org/index.php?title=Comparison_of_tiling_window_managers&diff=170176Comparison of tiling window managers2011-11-15T18:12:11Z<p>Atsutane: /* Comparison table */ made a small i3 update</p>
<hr />
<div>[[Category:Tiling WMs (English)]]<br />
This article provides an unbiased comparison of the most popular ''tiling'' [[window manager]]s (as opposed to ''floating'' window managers).<br />
<br />
== Comparison table ==<br />
The following table lists the most popular tiling window managers alongside notable features, providing readers with a quick overview. More in-depth descriptions follow this table.<br />
<br />
{| class="wikitable sortable" border="1" cellpadding="4" cellspacing="0"<br />
|+ Comparison of tiling window managers<br />
! scope="col" | Window Manager<br />
! scope="col" | Written in<br />
! scope="col" | Configured with<br />
! scope="col" | Management styl<br />
! scope="col" | System tray support<br />
! scope="col" | On-the-fly reload<br />
! scope="col" class="unsortable" | Information bars<br />
! scope="col" | Compositing<br />
! scope="col" class="unsortable" | Default layouts<br />
! scope="col" class="unsortable" | Pixel usage<br />
! scope="col" class="unsortable" | External control<br />
! scope="col" | Library<br />
! scope="col" class="unsortable" | Multiple (n) monitor behavior<br />
|-<br />
! [[Awesome]]<br />
| C || Lua || Dynamic || Built-in || Yes || Built-in, images and text || Yes, with an external manager such as xcompmgr || || variable borders, optional h-tab titles || dbus (if enabled) || XCB || n-tags (workspaces). Per default 9 are enabled. [https://awesome.naquadah.org/images/6mon.medium.png Example]<br />
|-<br />
! [[catwm]]<br />
| C || C (recompile) || Dynamic || None || No || None || No || v-stack, max || 1-pix borders || || Xlib || <br />
|-<br />
! [[dswm]]<br />
| Lisp || Lisp || Manual || None || Yes || Yes || No || || || || ||<br />
|-<br />
! [[dwm]]<br />
| C || C (recompile) || Dynamic || None || [[Dwm#Restart dwm without logging out or closing programs | Optional]] || Built-in, reads from root window name || Yes, with an external manager such as xcompmgr || v-stack, max || || || Xlib || n regions, 9 workspaces fixed to each region<br />
|-<br />
! [[echinus]]<br />
| C || Text || Dynamic || None || Yes || [http://aur.archlinux.org/packages.php?O=0&K=ourico&do_Search=Go ourico] || Yes, with an external manager such as xcompmgr || v-stack, b-stack, max || Variable borders & optional titles || || Xlib ||<br />
|-<br />
! [[euclid-wm]]<br />
| C || Text || Hybrid || None || Yes || External ([[dzen]]) || || rows, columns || 1-pix borders || || Xlib ||<br />
|-<br />
! [[herbstluftwm]]<br />
| C || Text || Manual || None || Yes || || || rows, columns || 1-pix borders || commands via herbstclient || Xlib and Glib ||<br />
|-<br />
! [[i3]] <br />
| C || Text || Manual || i3bar || Yes || from [http://www.archlinux.org/packages/community/i686/i3status/ i3status] or [[conky]] || Yes, with an external manager such as xcompmgr || rows, columns, v-tab, h-tab, max || 2-pix borders, titles || commands via ipc || XCB || n regions<br />
|-<br />
! [[Ion3]] <br />
| C || Lua || Manual || trayion || Yes || configurable || ? || h-tab, max || || || ||<br />
|-<br />
! [[Musca]]<br />
| C || Text, own command set, C(recompile) || Manual || None || No, but allows running of musca commands on the fly || None || No || h-split, v-split, max || || commands, hooks || Xlib ||<br />
|-<br />
! [[Notion]] <br />
| C || Lua, compatible with Ion3 configs || Manual || trayion, stalonetray || Yes || configurable || ? || h-tab, max || Configurable borders and titlebars/tabs || || || "Takes into account changes to the screen topology without needing to restart Notion"<br />
|-<br />
! [[Ratpoison]]<br />
| C || Text || Manual || None || Yes || Yes || Yes, with an external manager such as xcompmgr || max || || || ||<br />
|-<br />
! [[Scrotwm]]<br />
| C || Text || Dynamic || None || Yes || Built-in, reads from user script || No || nv-stack, nh-stack, max || 1-pix borders, no titles || || Xlib || n regions, 10 workspaces visible in any region<br />
|-<br />
! [[Stumpwm]]<br />
| Lisp || Lisp || Manual || None || Yes || Yes || No || || || || ||<br />
|-<br />
! [[subtle]]<br />
| C || Ruby || Manual || Built-in || Yes || Built-in (Ruby), external can be used as well || Yes, with an external manager such as xcompmgr || Variable grid || Variable borders, no titles || Hooks (Ruby), subtler (CLI), subtlext (Ruby extension) || Xlib || One workspace (view) per monitor (screen), placement on views via tags and per runtime<br />
|-<br />
! [[WMFS]]<br />
| C || Text || Dynamic || Built-in || Yes || Built-in, set with command, color text, images || May with external manager such as {d,x}compmgr || nh-stack (and invert), nv-stack (and invert), mirror-v, mirror-h, grid, free, max || variable borders, titles or no titles || commands || Xlib || Up to 36 tags(workspaces) per screen<br />
|-<br />
! [[wmii]]<br />
| C || Anything || Manual || witray || Yes || Built-in || Yes, with an external manager such as xcompmgr || columns, max, v-tab || titles || [http://9p.cat-v.org 9P filesystem] || || one big region<br />
|-<br />
! [[xmonad]]<br />
| Haskell || Haskell || Dynamic || None || Yes || No || Yes, with xmonad-contrib and an external manager || nv-stack, nh-stack, max || variable borders, no titles || via [http://xmonad.org/xmonad-docs/xmonad-contrib/XMonad-Hooks-ServerMode.html XMonad-Hooks-ServerMode] || Xlib || n regions, 9 workspaces visible in any region<br />
|-<br />
|-class="sortbottom"<br />
! Window Manager !! Written in !! Configured with !! Management style !! System tray support !! On-the-fly reload !! Information bars !! Compositing !! Default layouts !! Pixel usage || External control !! Library !! Multiple (n) monitor behavior<br />
|}<br />
<br />
{{Tip|External control can also be achieved by programs like {{Package Official|xdotool}} which simulate keystrokes.}}<br />
<br />
=== Management style ===<br />
Dynamic management emphasizes automatic management of window layouts for speed and simplicity. Manual management emphasizes manual adjustment of layout and sizing with potentially more precise control, at the cost of more time spent moving and sizing windows.<br />
<br />
=== Layouts ===<br />
A number of common layout types appear in several tiling WMs, although the terminology varies somewhat.<br />
* max: one window shown fullscreen (with or without a status bar, title and borders). Aka: monocle (dwm).<br />
* h-stack: master area in top half, other windows stack up horizontally in the bottom half. The master area may be resizable. May be inverted top-bottom (wmfs). Aka: bottom stack (dwm).<br />
* v-stack: master area in left half, other windows stack up vertically in the right half. The master area may be resizable. May be inverted left-right (wmfs). Aka: tile (dwm).<br />
* nh-stack: h-stack allowing >=1 windows in master area. Aka: nbstack (dwm)<br />
* nv-stack: v-stack allowing >=1 windows in master area. Aka: ntile (dwm)<br />
* mirror-h: nh-stack with stacks above and below the master area<br />
* mirror-v: nv-stack with stacks to the left and right of the master area<br />
* h-tab: one window shown fullscreen with all window titles shown horizontally (like browser tabs)<br />
* v-tab: one window shown fullscreen with all window titles shown vertically. Aka: stack (wmii).<br />
* h-split: a keybinding splits the current window horizontally creating space for another<br />
* v-split: a keybinding splits the current window horizontally creating space for another<br />
* columns: manual layout style which treats windows as belonging to vertical columns<br />
* rows: manual layout style which treats windows as belonging to horizontal rows<br />
* grid: window positions and sizes based on a regular NxM grid. May be automatic (like wmfs) or manual (like Subtle).<br />
<br />
=== Key bindings ===<br />
Tiling window managers are usually designed to be used entirely with the keyboard or with keyboard & mouse. This is for speed (reaching for and moving a mouse is slow) and ease of use. Sensible key bindings are crucial to making workflow fast and efficient. Some default sets are better than others, but generally the keys can be rebound as desired by the user.<br />
<br />
== [[Awesome]] ==<br />
[http://awesome.naquadah.org/ awesome] on its own can provide many of the functions of a desktop environment. Configured in Lua, it has a system tray, information bar, and launcher built in. There are extensions available to it written in Lua. Awesome uses XCB as opposed to Xlib, which may result in a speed increase. Awesome has other features as well, such as an early replacement for notification-daemon, a right-click menu similar to that of the *box window managers, and many other things.<br />
<br />
== [[catwm]] ==<br />
[[catwm]] is a small window manager, even simpler than dwm, written in C. Configuration is done by modifying the config.h file and recompiling.<br />
<br />
== [[dswm]] ==<br />
[http://sourceforge.net/projects/dswm/ dswm] ([http://aur.archlinux.org/packages.php?ID=47899 AUR]) (Deep Space Window Manager) is an offshoot of [[Stumpwm]].<br />
<br />
== [[dwm]] ==<br />
[http://dwm.suckless.org/ dwm] is one of the simpler window managers. It does not include a tray app or automatic launcher, although dmenu integrates well with it, as they are from the same author. It has no text configuration file. Configuration is done entirely by modifying the C source code, and it must be recompiled and restarted each time it is changed. It is more lightweight than the others listed here, at the expense of certain features. The program size is already at the self-imposed line limit, restricting further development.<br />
<br />
== [[echinus]] ==<br />
[http://plhk.ru/echinus echinus] ([http://aur.archlinux.org/packages.php?O=0&K=echinus&do_Search=Go AUR]) is a<br />
simple and lightweight tiling and floating window manager for X11. It started as a dwm fork with easier configuration, and became a full-featured reparenting window manager with EWMH support. It has an EWMH-compatible panel/taskbar called [http://aur.archlinux.org/packages.php?O=0&K=ourico&do_Search=Go ourico].<br />
<br />
== [[euclid-wm]] ==<br />
[http://euclid-wm.sourceforge.net/index.php euclid-wm] ([http://aur.archlinux.org/packages.php?ID=38311 AUR]) is a hybrid manual and automatic window manager, with support for minimizing windows. Simplicity is one of its goals. A text configuration file controls key bindings and settings.<br />
<br />
== [[herbstluftwm]] ==<br />
[http://wwwcip.cs.fau.de/~re06huxa/herbstluftwm/ herbstluftwm] is a manual tiling window manager similar to Musca and i3. It is available from the AUR: {{Package AUR|herbstluftwm-git}}.<br />
<br />
== [[i3]] ==<br />
[http://i3.zekjur.net/ i3] was created because wmii, the authors' favorite window manager at the time, didn’t provide some features they wanted. Notable differences are in the areas of Xinerama and the table metaphor. For speed the Plan 9 interface of wmii is not implemented.<br />
<br />
== [[ion3]] ==<br />
Ion is a tiling window manager with tabbed frames. It uses Lua as an embedded interpreter which handles all of the configuration. It mainly uses the keyboard to access the functions but also supports the mouse for some things.<br />
<br />
== [[Musca]] ==<br />
A simple dynamic window manager for X, with features nicked from ratpoison and dwm:<br />
[http://aerosuidae.net/musca.html Musca] operates as a tiling window manager by default. It uses manual tiling, which means the user determines how the screen is divided into non-overlapping frames, with no restrictions on layout. Application windows always fill their assigned frame, with the exception of transient windows and popup dialog boxes which float above their parent application at the appropriate size. Once visible, applications do not change frames unless so instructed.<br />
<br />
== [[Notion]] ==<br />
[http://notion.sf.net/ Notion] is a tiling, tabbed window manager for the X window system.<br />
*Tiling: you divide the screen into non-overlapping 'tiles'. Every window occupies one tile, and is maximized to it<br />
*Tabbing: a tile may contain multiple windows - they will be 'tabbed'<br />
*Static: most tiled window managers are 'dynamic', meaning they automatically resize and move around tiles as windows appear and disappear. Notion, by contrast, does not automatically change the tiling. <br />
Notion is a fork of Ion3. There is a package in [http://www.archlinux.org/packages/community/i686/notion/ community].<br />
<br />
== [[Ratpoison]] ==<br />
[http://www.nongnu.org/ratpoison/ Ratpoison] is configured with a simple text file, as opposed to some of the other tiling window managers which are configured with programming languages. While this reduces flexibility, it can be easier to understand. The information bar in Ratpoison is somewhat different, as it shows only when needed. It serves as both an application launcher as well as a notification bar. Ratpoison does not include a system tray and is quite lightweight.<br />
<br />
== [[Scrotwm]] ==<br />
[http://www.scrotwm.org/ scrotwm] is a small dynamic tiling window manager largely inspired by xmonad and dwm. It tries to stay out of the way so that valuable screen real estate can be used for much more important stuff. It has sane defaults and does not require one to learn a language to do any configuration, being configured with a text file. It was written by hackers for hackers and it strives to be small, compact, and fast. It has a built-in status bar fed from a user-defined script.<br />
<br />
== [[Stumpwm]] ==<br />
[http://www.nongnu.org/stumpwm/ Stumpwm] is similar to [[Ratpoison]] but is written and configured completely in Lisp. It can be reconfigured and reloaded while running. As with wmii and Ratpoison, it is a manual window manager. Its information bar can be set to show constantly or only when needed. It does not include a system tray.<br />
<br />
== [[subtle]] ==<br />
[http://subforge.org/projects/subtle subtle] is a tiling window manager with flexible manual layouts based on predefined sizes and positions corresponding by default to 1x2, 2x1, 1x3, 2x2 and 2x3 grid elements. It has workspace tags and automatic client tagging, mouse and keyboard control as well as an extendable statusbar.<br />
<br />
== [[wmfs]] ==<br />
[http://wmfs.info/ WMFS] (Window Manager From Scratch) is a lightweight and highly configurable tiling window manager for X. It can be configured with a configuration file, supports Xft ([http://www.freetype.org/ Freetype]) fonts and is compliant with the Extended Window Manager Hints ([http://standards.freedesktop.org/wm-spec/wm-spec-1.3.html EWMH]) specifications. It's still under heavy development<br />
<br />
== [[wmii]] ==<br />
[http://wmii.suckless.org/ wmii] uses a manual style of management -- the user must manually move windows around. While more work than dynamic management, this also provides more flexibility by default. wmii is configured via a [http://9p.cat-v.org 9P file system], which allows any program that can work with text to configure it. The default configuration is in bash and [http://rc.cat-v.org rc (the Plan 9 shell)], but programs exist written in ruby, for example. It has a status bar and launcher built in, and also an optional system tray ({{Codeline|witray}}).<br />
<br />
== [[xmonad]] ==<br />
[http://xmonad.org/ xmonad] is written in Haskell, and it is configured in Haskell. This allows great flexibility, although this can be confusing at times. No text configuration file has been implemented. For all configuration changes, xmonad must be recompiled, so the Haskell compiler (over 485MB) must be installed. Compilation normally takes ~2 seconds, and can be done without affecting running programs. XMonad, in itself, is quite simple, but there is a large library called {{Pkg|xmonad-contrib}} which provides many other features. XMonad does not include any utility programs, but others, such as [[dzen]] and [[xmobar]], make it easy to display such things as workspace information. xmonad does not come with an application launcher, but there are modules in {{Pkg|xmonad-contrib}} which provide one, as well as programs like [[dmenu]] and gmrun. There is no system tray, but this can be provided by applications such as {{Pkg|stalonetray}} and {{Pkg|trayer}}.<br />
<br />
== More Resources ==<br />
The forum has a wealth of information about many of the tiling window managers compared here. Some notable threads specific to tilers include:<br />
<br />
=== Tiling WM threads ===<br />
<br />
*[https://bbs.archlinux.org/viewtopic.php?id=57549 The dwm thread]<br />
*[https://bbs.archlinux.org/viewtopic.php?id=99064 The i3 thread]<br />
*[https://bbs.archlinux.org/viewtopic.php?id=67104 The Musca thread]<br />
*[https://bbs.archlinux.org/viewtopic.php?id=64645 The scrotwm thread]<br />
*[https://bbs.archlinux.org/viewtopic.php?id=71783 The subtle thread]<br />
*[https://bbs.archlinux.org/viewtopic.php?id=110714 The WMFS thread]<br />
*[https://bbs.archlinux.org/viewtopic.php?id=22592 The wmii thread]<br />
<br />
=== Threads featuring configs & hacks ===<br />
<br />
*[https://bbs.archlinux.org/viewtopic.php?id=92895 dwm hackers, unite! Share or request patches here!]<br />
*[https://bbs.archlinux.org/viewtopic.php?pid=304851 dzen and xmobar hacking thread]<br />
*[https://bbs.archlinux.org/viewtopic.php?id=88926 Share your Awesome desktop!]<br />
*[https://bbs.archlinux.org/viewtopic.php?id=68622 Share your Ratpoison (experience)]<br />
*[https://bbs.archlinux.org/viewtopic.php?id=112486 Share your Subtle desktop!]<br />
*[https://bbs.archlinux.org/viewtopic.php?pid=937394 Share your WMFS desktop!]<br />
*[https://bbs.archlinux.org/viewtopic.php?id=94969 Share your xmonad desktop!]<br />
*[https://bbs.archlinux.org/viewtopic.php?id=74599 Show off your dwm configuration]<br />
*[https://bbs.archlinux.org/viewtopic.php?id=40636 xmonad hacking thread]<br />
<br />
=== Artwork for tilers ===<br />
*[https://bbs.archlinux.org/viewtopic.php?id=57768 dwm wallpapers]</div>Atsutanehttps://wiki.archlinux.org/index.php?title=Lenovo_ThinkPad_X200&diff=122806Lenovo ThinkPad X2002010-11-27T18:53:25Z<p>Atsutane: /* CPU Frequency Scaling */ package name has been changed</p>
<hr />
<div>[[Category:Lenovo (English)]]<br />
{{Article summary start}}<br />
{{Article summary text|This article covers the Arch Linux support for the Lenovo ThinkPad X200 laptop.}}<br />
{{Article summary heading|Languages}}<br />
{{i18n entry|English|Lenovo ThinkPad X200}}<br />
{{Article summary heading|Related articles}}<br />
{{Article summary wiki|Lenovo ThinkPad X200 Tablet}}<br />
{{Article summary wiki|Lenovo ThinkPad X200S}}<br />
{{Article summary end}}<br />
<br />
The Lenovo ThinkPad X200 is a wonderful high-quality laptop featuring a 12.1" widescreen WXGA monitor, an Intel Core 2 Duo processor (2.26 - 2.66GHz), an Intel Graphics Media Accelerator 4500MHD and up to 4GB of RAM whilst still maintaining impressive battery life.<br />
<br />
While Arch Linux is running flawlessly on this laptop there are a few things you have to configure manually. This article will aid you in configuring your system and will provide additionally hints to make your ThinkPad X200 experience even better.<br />
<br />
= Setup =<br />
== Wireless ==<br />
The ThinkPad X200 has a Intel PRO/Wireless 5100 AGN wireless adapter included. In order to make it work you have to install the iwlwifi-5000-ucode package when you install from a 2010.05 snapshot in order to get the firmware, by now the package is included in the linux-firmware package.<br />
<br />
Now you can choose whatever network configuration programs you want to use. If you don't already know which network manager you want to use, we highly recommend [[netcfg]].<br />
<br />
== Graphics ==<br />
The graphics card is supported by the xf86-video-intel driver package from the extra repository. The Xorg server makes use of this automatically. There's no need for a Xorg configuration file.<br />
<br />
# pacman -S xf86-video-intel<br />
<br />
However, with the newest available driver version it seems as if a regression has been introduced resulting in poor 3D performance. You will experience Xorg running fine, but 3D applications will have a very low frame rate.<br />
<br />
== Audio ==<br />
Audio is supported out of the box after installing the necessary alsa packages from the core repository.<br />
<br />
# sudo pacman -S alsa-lib<br />
<br />
See [[Alsa]] for more information.<br />
<br />
= Configuration =<br />
== Suspend to RAM ==<br />
Suspend to RAM is working out of the box with the standard Arch Linux kernel after installing pm-utils from extra.<br />
<br />
# pacman -S pm-utils<br />
<br />
Issue the command<br />
# pm-suspend<br />
as root to suspend to RAM. The laptop will wake up on any key press or on opening the lid.<br />
<br />
'''Note:''' Very seldom after resuming the backlight won't come back on. The following page on ThinkWiki might provide information on how to solve this issue: [http://www.thinkwiki.org/wiki/Problem_with_display_remaining_black_after_resume Problem with display remaining black after resume].<br />
<br />
== Hard Disk Shock Protection ==<br />
The ThinkPad X200 comes with an integrated 2-axis accelerometer providing the possibility of parking the hard drive's disk heads preventing from data loss due to heavy shocks.<br />
<br />
First you'll have to install [http://aur.archlinux.org/packages.php?ID=3985 tp_smapi] and [http://aur.archlinux.org/packages.php?ID=5401 hdapsd] from [[AUR]]. Then you have to load the hdaps module provided by tp_smapi with the option invert=7 passed. This will correct the orientation of the accelerometer's axises.<br />
<br />
Since kernel26 provides a default hdaps module which we don't want to use, we have to specify the full path. This cannot be done in /etc/rc.conf, but instead you'll have to load the module manually from /etc/rc.local. <br />
<br />
To enable shock protection you have to start the hdapsd daemon. Since /etc/rc.local is executed after /etc/rc.conf, hdapsd has to be started from the /etc/rc.local as well.<br />
<br />
$ cat /etc/rc.local<br />
[...]<br />
insmod /lib/modules/2.6.32-ARCH/extra/hdaps.ko invert=7<br />
/etc/rc.d/hdapsd start<br />
<br />
For full information see: [[HDAPS]]<br />
<br />
== Reducing Power Consumption ==<br />
=== Turning off DRI ===<br />
DRI enables X11 to directly access the graphics card's OpenGL implementation for rendering which doesn't require data to go through the X Server. Disabling this mechanism should increase battery life as a countermove to slower rendering. In case you're not relying on graphical eye candy this might be an option to prolong your laptops battery life.<br />
<br />
To disable DRI just add the following option to your Xorg configuration file's Device section.<br />
$ cat /etc/X11/xorg.conf<br />
[...]<br />
Section "Device"<br />
Option "NoDRI"<br />
[...]<br />
<br />
=== CPU Frequency Scaling ===<br />
<br />
# pacman -S cpufrequtils<br />
# echo "governor="ondemand"" >> /etc/conf.d/cpufreq<br />
# modprobe acpi-cpufreq<br />
# /etc/rc.d/cpufreq start<br />
<br />
= See also =<br />
* ThinkWiki: [http://www.thinkwiki.org/wiki/How_to_reduce_power_consumption How to reduce power consumption]</div>Atsutanehttps://wiki.archlinux.org/index.php?title=Lenovo_ThinkPad_X200&diff=122802Lenovo ThinkPad X2002010-11-27T18:49:07Z<p>Atsutane: /* Suspend to RAM */ removed the package database update</p>
<hr />
<div>[[Category:Lenovo (English)]]<br />
{{Article summary start}}<br />
{{Article summary text|This article covers the Arch Linux support for the Lenovo ThinkPad X200 laptop.}}<br />
{{Article summary heading|Languages}}<br />
{{i18n entry|English|Lenovo ThinkPad X200}}<br />
{{Article summary heading|Related articles}}<br />
{{Article summary wiki|Lenovo ThinkPad X200 Tablet}}<br />
{{Article summary wiki|Lenovo ThinkPad X200S}}<br />
{{Article summary end}}<br />
<br />
The Lenovo ThinkPad X200 is a wonderful high-quality laptop featuring a 12.1" widescreen WXGA monitor, an Intel Core 2 Duo processor (2.26 - 2.66GHz), an Intel Graphics Media Accelerator 4500MHD and up to 4GB of RAM whilst still maintaining impressive battery life.<br />
<br />
While Arch Linux is running flawlessly on this laptop there are a few things you have to configure manually. This article will aid you in configuring your system and will provide additionally hints to make your ThinkPad X200 experience even better.<br />
<br />
= Setup =<br />
== Wireless ==<br />
The ThinkPad X200 has a Intel PRO/Wireless 5100 AGN wireless adapter included. In order to make it work you have to install the iwlwifi-5000-ucode package when you install from a 2010.05 snapshot in order to get the firmware, by now the package is included in the linux-firmware package.<br />
<br />
Now you can choose whatever network configuration programs you want to use. If you don't already know which network manager you want to use, we highly recommend [[netcfg]].<br />
<br />
== Graphics ==<br />
The graphics card is supported by the xf86-video-intel driver package from the extra repository. The Xorg server makes use of this automatically. There's no need for a Xorg configuration file.<br />
<br />
# pacman -S xf86-video-intel<br />
<br />
However, with the newest available driver version it seems as if a regression has been introduced resulting in poor 3D performance. You will experience Xorg running fine, but 3D applications will have a very low frame rate.<br />
<br />
== Audio ==<br />
Audio is supported out of the box after installing the necessary alsa packages from the core repository.<br />
<br />
# sudo pacman -S alsa-lib<br />
<br />
See [[Alsa]] for more information.<br />
<br />
= Configuration =<br />
== Suspend to RAM ==<br />
Suspend to RAM is working out of the box with the standard Arch Linux kernel after installing pm-utils from extra.<br />
<br />
# pacman -S pm-utils<br />
<br />
Issue the command<br />
# pm-suspend<br />
as root to suspend to RAM. The laptop will wake up on any key press or on opening the lid.<br />
<br />
'''Note:''' Very seldom after resuming the backlight won't come back on. The following page on ThinkWiki might provide information on how to solve this issue: [http://www.thinkwiki.org/wiki/Problem_with_display_remaining_black_after_resume Problem with display remaining black after resume].<br />
<br />
== Hard Disk Shock Protection ==<br />
The ThinkPad X200 comes with an integrated 2-axis accelerometer providing the possibility of parking the hard drive's disk heads preventing from data loss due to heavy shocks.<br />
<br />
First you'll have to install [http://aur.archlinux.org/packages.php?ID=3985 tp_smapi] and [http://aur.archlinux.org/packages.php?ID=5401 hdapsd] from [[AUR]]. Then you have to load the hdaps module provided by tp_smapi with the option invert=7 passed. This will correct the orientation of the accelerometer's axises.<br />
<br />
Since kernel26 provides a default hdaps module which we don't want to use, we have to specify the full path. This cannot be done in /etc/rc.conf, but instead you'll have to load the module manually from /etc/rc.local. <br />
<br />
To enable shock protection you have to start the hdapsd daemon. Since /etc/rc.local is executed after /etc/rc.conf, hdapsd has to be started from the /etc/rc.local as well.<br />
<br />
$ cat /etc/rc.local<br />
[...]<br />
insmod /lib/modules/2.6.32-ARCH/extra/hdaps.ko invert=7<br />
/etc/rc.d/hdapsd start<br />
<br />
For full information see: [[HDAPS]]<br />
<br />
== Reducing Power Consumption ==<br />
=== Turning off DRI ===<br />
DRI enables X11 to directly access the graphics card's OpenGL implementation for rendering which doesn't require data to go through the X Server. Disabling this mechanism should increase battery life as a countermove to slower rendering. In case you're not relying on graphical eye candy this might be an option to prolong your laptops battery life.<br />
<br />
To disable DRI just add the following option to your Xorg configuration file's Device section.<br />
$ cat /etc/X11/xorg.conf<br />
[...]<br />
Section "Device"<br />
Option "NoDRI"<br />
[...]<br />
<br />
=== CPU Frequency Scaling ===<br />
<br />
# pacman -S cpufreqd<br />
# echo "governor="ondemand"" >> /etc/conf.d/cpufreq<br />
# modprobe acpi-cpufreq<br />
# /etc/rc.d/cpufreq start<br />
<br />
= See also =<br />
* ThinkWiki: [http://www.thinkwiki.org/wiki/How_to_reduce_power_consumption How to reduce power consumption]</div>Atsutanehttps://wiki.archlinux.org/index.php?title=Lenovo_ThinkPad_X200&diff=122800Lenovo ThinkPad X2002010-11-27T18:48:19Z<p>Atsutane: /* Wireless */ updated firmware paragraph.</p>
<hr />
<div>[[Category:Lenovo (English)]]<br />
{{Article summary start}}<br />
{{Article summary text|This article covers the Arch Linux support for the Lenovo ThinkPad X200 laptop.}}<br />
{{Article summary heading|Languages}}<br />
{{i18n entry|English|Lenovo ThinkPad X200}}<br />
{{Article summary heading|Related articles}}<br />
{{Article summary wiki|Lenovo ThinkPad X200 Tablet}}<br />
{{Article summary wiki|Lenovo ThinkPad X200S}}<br />
{{Article summary end}}<br />
<br />
The Lenovo ThinkPad X200 is a wonderful high-quality laptop featuring a 12.1" widescreen WXGA monitor, an Intel Core 2 Duo processor (2.26 - 2.66GHz), an Intel Graphics Media Accelerator 4500MHD and up to 4GB of RAM whilst still maintaining impressive battery life.<br />
<br />
While Arch Linux is running flawlessly on this laptop there are a few things you have to configure manually. This article will aid you in configuring your system and will provide additionally hints to make your ThinkPad X200 experience even better.<br />
<br />
= Setup =<br />
== Wireless ==<br />
The ThinkPad X200 has a Intel PRO/Wireless 5100 AGN wireless adapter included. In order to make it work you have to install the iwlwifi-5000-ucode package when you install from a 2010.05 snapshot in order to get the firmware, by now the package is included in the linux-firmware package.<br />
<br />
Now you can choose whatever network configuration programs you want to use. If you don't already know which network manager you want to use, we highly recommend [[netcfg]].<br />
<br />
== Graphics ==<br />
The graphics card is supported by the xf86-video-intel driver package from the extra repository. The Xorg server makes use of this automatically. There's no need for a Xorg configuration file.<br />
<br />
# pacman -S xf86-video-intel<br />
<br />
However, with the newest available driver version it seems as if a regression has been introduced resulting in poor 3D performance. You will experience Xorg running fine, but 3D applications will have a very low frame rate.<br />
<br />
== Audio ==<br />
Audio is supported out of the box after installing the necessary alsa packages from the core repository.<br />
<br />
# sudo pacman -S alsa-lib<br />
<br />
See [[Alsa]] for more information.<br />
<br />
= Configuration =<br />
== Suspend to RAM ==<br />
Suspend to RAM is working out of the box with the standard Arch Linux kernel after installing pm-utils from extra.<br />
<br />
# pacman -Sy pm-utils<br />
<br />
Issue the command<br />
# pm-suspend<br />
as root to suspend to RAM. The laptop will wake up on any key press or on opening the lid.<br />
<br />
'''Note:''' Very seldom after resuming the backlight won't come back on. The following page on ThinkWiki might provide information on how to solve this issue: [http://www.thinkwiki.org/wiki/Problem_with_display_remaining_black_after_resume Problem with display remaining black after resume].<br />
<br />
== Hard Disk Shock Protection ==<br />
The ThinkPad X200 comes with an integrated 2-axis accelerometer providing the possibility of parking the hard drive's disk heads preventing from data loss due to heavy shocks.<br />
<br />
First you'll have to install [http://aur.archlinux.org/packages.php?ID=3985 tp_smapi] and [http://aur.archlinux.org/packages.php?ID=5401 hdapsd] from [[AUR]]. Then you have to load the hdaps module provided by tp_smapi with the option invert=7 passed. This will correct the orientation of the accelerometer's axises.<br />
<br />
Since kernel26 provides a default hdaps module which we don't want to use, we have to specify the full path. This cannot be done in /etc/rc.conf, but instead you'll have to load the module manually from /etc/rc.local. <br />
<br />
To enable shock protection you have to start the hdapsd daemon. Since /etc/rc.local is executed after /etc/rc.conf, hdapsd has to be started from the /etc/rc.local as well.<br />
<br />
$ cat /etc/rc.local<br />
[...]<br />
insmod /lib/modules/2.6.32-ARCH/extra/hdaps.ko invert=7<br />
/etc/rc.d/hdapsd start<br />
<br />
For full information see: [[HDAPS]]<br />
<br />
== Reducing Power Consumption ==<br />
=== Turning off DRI ===<br />
DRI enables X11 to directly access the graphics card's OpenGL implementation for rendering which doesn't require data to go through the X Server. Disabling this mechanism should increase battery life as a countermove to slower rendering. In case you're not relying on graphical eye candy this might be an option to prolong your laptops battery life.<br />
<br />
To disable DRI just add the following option to your Xorg configuration file's Device section.<br />
$ cat /etc/X11/xorg.conf<br />
[...]<br />
Section "Device"<br />
Option "NoDRI"<br />
[...]<br />
<br />
=== CPU Frequency Scaling ===<br />
<br />
# pacman -S cpufreqd<br />
# echo "governor="ondemand"" >> /etc/conf.d/cpufreq<br />
# modprobe acpi-cpufreq<br />
# /etc/rc.d/cpufreq start<br />
<br />
= See also =<br />
* ThinkWiki: [http://www.thinkwiki.org/wiki/How_to_reduce_power_consumption How to reduce power consumption]</div>Atsutanehttps://wiki.archlinux.org/index.php?title=Lenovo_ThinkPad_X200&diff=122798Lenovo ThinkPad X2002010-11-27T18:45:23Z<p>Atsutane: /* Setup */ updating the package database when installing a package is a bad idea.</p>
<hr />
<div>[[Category:Lenovo (English)]]<br />
{{Article summary start}}<br />
{{Article summary text|This article covers the Arch Linux support for the Lenovo ThinkPad X200 laptop.}}<br />
{{Article summary heading|Languages}}<br />
{{i18n entry|English|Lenovo ThinkPad X200}}<br />
{{Article summary heading|Related articles}}<br />
{{Article summary wiki|Lenovo ThinkPad X200 Tablet}}<br />
{{Article summary wiki|Lenovo ThinkPad X200S}}<br />
{{Article summary end}}<br />
<br />
The Lenovo ThinkPad X200 is a wonderful high-quality laptop featuring a 12.1" widescreen WXGA monitor, an Intel Core 2 Duo processor (2.26 - 2.66GHz), an Intel Graphics Media Accelerator 4500MHD and up to 4GB of RAM whilst still maintaining impressive battery life.<br />
<br />
While Arch Linux is running flawlessly on this laptop there are a few things you have to configure manually. This article will aid you in configuring your system and will provide additionally hints to make your ThinkPad X200 experience even better.<br />
<br />
= Setup =<br />
== Wireless ==<br />
The ThinkPad X200 has a Intel PRO/Wireless 5100 AGN wireless adapter included. In order to make it work you have to install the iwlwifi-5000-ucode package from the Arch User Repository repository to get the firmware.<br />
<br />
See [[Arch User Repository]] for more information on installing packages from AUR.<br />
<br />
From there you can choose whatever network configuration programs you want to use. If you don't already know which network manager you want to use, we highly recommend [[netcfg]].<br />
<br />
== Graphics ==<br />
The graphics card is supported by the xf86-video-intel driver package from the extra repository. The Xorg server makes use of this automatically. There's no need for a Xorg configuration file.<br />
<br />
# pacman -S xf86-video-intel<br />
<br />
However, with the newest available driver version it seems as if a regression has been introduced resulting in poor 3D performance. You will experience Xorg running fine, but 3D applications will have a very low frame rate.<br />
<br />
== Audio ==<br />
Audio is supported out of the box after installing the necessary alsa packages from the core repository.<br />
<br />
# sudo pacman -S alsa-lib<br />
<br />
See [[Alsa]] for more information.<br />
<br />
= Configuration =<br />
== Suspend to RAM ==<br />
Suspend to RAM is working out of the box with the standard Arch Linux kernel after installing pm-utils from extra.<br />
<br />
# pacman -Sy pm-utils<br />
<br />
Issue the command<br />
# pm-suspend<br />
as root to suspend to RAM. The laptop will wake up on any key press or on opening the lid.<br />
<br />
'''Note:''' Very seldom after resuming the backlight won't come back on. The following page on ThinkWiki might provide information on how to solve this issue: [http://www.thinkwiki.org/wiki/Problem_with_display_remaining_black_after_resume Problem with display remaining black after resume].<br />
<br />
== Hard Disk Shock Protection ==<br />
The ThinkPad X200 comes with an integrated 2-axis accelerometer providing the possibility of parking the hard drive's disk heads preventing from data loss due to heavy shocks.<br />
<br />
First you'll have to install [http://aur.archlinux.org/packages.php?ID=3985 tp_smapi] and [http://aur.archlinux.org/packages.php?ID=5401 hdapsd] from [[AUR]]. Then you have to load the hdaps module provided by tp_smapi with the option invert=7 passed. This will correct the orientation of the accelerometer's axises.<br />
<br />
Since kernel26 provides a default hdaps module which we don't want to use, we have to specify the full path. This cannot be done in /etc/rc.conf, but instead you'll have to load the module manually from /etc/rc.local. <br />
<br />
To enable shock protection you have to start the hdapsd daemon. Since /etc/rc.local is executed after /etc/rc.conf, hdapsd has to be started from the /etc/rc.local as well.<br />
<br />
$ cat /etc/rc.local<br />
[...]<br />
insmod /lib/modules/2.6.32-ARCH/extra/hdaps.ko invert=7<br />
/etc/rc.d/hdapsd start<br />
<br />
For full information see: [[HDAPS]]<br />
<br />
== Reducing Power Consumption ==<br />
=== Turning off DRI ===<br />
DRI enables X11 to directly access the graphics card's OpenGL implementation for rendering which doesn't require data to go through the X Server. Disabling this mechanism should increase battery life as a countermove to slower rendering. In case you're not relying on graphical eye candy this might be an option to prolong your laptops battery life.<br />
<br />
To disable DRI just add the following option to your Xorg configuration file's Device section.<br />
$ cat /etc/X11/xorg.conf<br />
[...]<br />
Section "Device"<br />
Option "NoDRI"<br />
[...]<br />
<br />
=== CPU Frequency Scaling ===<br />
<br />
# pacman -S cpufreqd<br />
# echo "governor="ondemand"" >> /etc/conf.d/cpufreq<br />
# modprobe acpi-cpufreq<br />
# /etc/rc.d/cpufreq start<br />
<br />
= See also =<br />
* ThinkWiki: [http://www.thinkwiki.org/wiki/How_to_reduce_power_consumption How to reduce power consumption]</div>Atsutanehttps://wiki.archlinux.org/index.php?title=I3&diff=122403I32010-11-24T19:40:56Z<p>Atsutane: /* Installation */ Added some links, minor text changes.</p>
<hr />
<div>{{DISPLAYTITLE:i3}}<br />
[[Category:Tiling WMs (English)]]<br />
[[Category:HOWTOs (English)]]<br />
<br />
= Introduction =<br />
[http://i3.zekjur.net/ i3] is a manual tiling window manager which places clients into containers. Containers can be stacked (like [http://wiki.archlinux.org/index.php/Wmii wmii]) or tabbed (like [http://wiki.archlinux.org/index.php/Ion3 ion3]). i3 also supports floating windows.<br />
<br />
From the website:<br />
<br />
:"i3 is a tiling window manager, completely written from scratch.<br />
<br />
:"i3 was created because wmii, the author's favorite window manager at the time, didn’t provide some features they wanted (Xinerama done right, for example), had some bugs, didn’t progress since quite some time and wasn’t easy to hack at all (source code comments/documentation completely lacking). Still, we think the wmii developers and contributors did a great job. Thank you for inspiring us to create i3.<br />
<br />
:"Please be aware that i3 is primarily targeted at advanced users and developers."<br />
<br />
= Installation =<br />
<br />
i3 is now in the [[community]] repository. Installing i3 is accomplished either by choosing the group:<br />
<pre>pacman -S i3</pre><br />
or, if you only want the window manager itself, by installing i3-wm:<br />
<pre>pacman -S i3-wm</pre><br />
i3-git is available in [[AUR]] - [http://aur.archlinux.org/packages.php?ID=24665 i3-git]<br />
<br />
<br />
Then edit your {{Filename|~/.xinitrc}} and add:<br />
exec i3<br />
If you want i3 to log its output (useful for debugging), add this line to {{Filename|~/.xinitrc}}:<br />
exec i3 -V >>~/.i3/i3log >&1<br />
If you use the nvidia binary drivers provided by nvidia, you must use the following in your {{Filename|~/.xinitrc}} due to nvidia not yet supporting randr:<br />
exec i3 --force-xinerama -V >>~/.i3/i3log 2>&1<br />
<br />
= Configuration =<br />
<br />
i3 is configured using a simple text file. It first looks for {{Filename|~/.i3/config}} and if it doesn't exist, reads the default config at {{Filename|/etc/i3/config}}. So to start customizing, copy the config file to your home directory:<br />
cp /etc/i3/config ~/.i3/config<br />
The config allows you to change such things as:<br />
*Border colors<br />
*Font<br />
*Keybindings<br />
*Workspace names<br />
*Default container layout<br />
*Assignment of apps to specific workspaces<br />
<br />
The i3 [http://i3.zekjur.net/docs/userguide.html User's Guide] gives a nice overview of the config settings.<br />
<br />
= Status Bar =<br />
The internal statusbar merely displays a list of the existing workspaces and does not accept infos from standard input.<br />
[http://wiki.archlinux.org/index.php/Dzen dzen2] can be placed in the information bar at the bottom of the screen. Information for dzen2 can be generated using [http://www.archlinux.org/packages/community/i686/i3status/ i3status] or [http://wiki.archlinux.org/index.php/Conky conky].<br />
i3status | dzen2 &<br />
Or<br />
conky | dzen2 &<br />
The svn development version of dzen2 offers a -dock option, which puts dzen2 at the bottom of the screen and tells i3 not to manage it. However, if you use both the internal statusbar and conky/dzen2, you get a duplication of statusbars. You could avoid docking dzen2 and simply place it over the internal statusbar. However, a cleaner solution is to completely disable the internal statusbar with:<br />
workspace_bar no<br />
Now you can get back your list of workspaces, since i3 makes it available for external tools through an ipc socket. In the AUR you can find i3-wsbar, which is able to get the list of workspaces from the ipc socket. Thus you can pipe the conky output to i3-wsbar and tell i3-wsbar to use dzen2.<br />
E.g., put the following in {{Filename|~/.i3/config}}:<br />
exec conky | i3-wsbar -c "dzen2 -x %x -dock -fn -*-profont-*-*-*-*-11-*-*-*-*-*-*-* -ta l"<br />
Please note that in your conky configuration file you can use the color codes for dzen2, so that you can get a nice, colored statusbar (see this sample [http://archlinux.lando.imap.cc/i3/.conkyrc conkyrc] and the corresponding [http://archlinux.lando.imap.cc/i3/i3-wsbar.png screenshot]).<br />
<br />
= Other Tools =<br />
<br />
*i3 currently uses [http://wiki.archlinux.org/index.php/Dmenu dmenu] as a launcher (by default, bound to Mod1+v)<br />
*[http://www.archlinux.org/packages/community/i686/i3lock/ i3lock] - A screen locker inspired by [http://www.archlinux.org/packages/community/i686/slock/ slock]</div>Atsutanehttps://wiki.archlinux.org/index.php?title=User:Atsutane&diff=122402User:Atsutane2010-11-24T19:37:33Z<p>Atsutane: Just added that I'm a TU though it's not really of any relevance but we aren't wikipedia are we?</p>
<hr />
<div>{| class="wikitable"<br />
|'''Location''' || Germany<br />
|-<br />
|'''Email''' || [mailto:atsutane-archwiki@freethoughts.de atsutane-archwiki@freethoughts.de]<br />
|-<br />
|'''Jabber''' || Same as email address, just without ''-archwiki''<br />
|-<br />
|'''GPG''' || 0x295AFBF4<br />
|-<br />
|'''TU''' || [[Trusted Users]]<br />
|}</div>Atsutanehttps://wiki.archlinux.org/index.php?title=DeveloperWiki:Repo_Cleanup&diff=121017DeveloperWiki:Repo Cleanup2010-11-10T17:07:26Z<p>Atsutane: /* Candidate to [community] */ Added packages I'd take care of myself. Also wrote as alternate Maintainer behind some already marked ones.</p>
<hr />
<div>[[Category:Package development (English)]]<br />
<br />
= Extra package cleanup =<br />
<br />
== Goals and ideas ==<br />
* A cleanup of the extra repository<br />
* Currently we have 352 orphans packages in [extra]<br />
* Reduce the packaging work load of the developers<br />
* Minimise the number of apps per task<br />
* TUs are easier to appoint and find, it makes sense to move some of the workload to the community repo<br />
* Games should all go to community (except those that come with KDE and Gnome)<br />
<br />
== Packages list ==<br />
This packages will be moved to Unsupported:<br />
<br />
* 3ddesktop<br />
* <s>aalib</s> - needed by gphoto2, gstreamer-0.10-good-plugins, mplayer, mplayer-vaapi, xaos, xawtv<br />
* abuse<br />
* acct - needed by bootchart (orphan)<br />
* acidrip<br />
* afterstep<br />
* agg<br />
* alltray<br />
* antiword<br />
* arch<br />
* <s>arj</s> - needed by fileroller, squeeze, xarchiver<br />
* at<br />
* <s>at-spi2-atk</s><br />
* <s>at-spi2-core</s><br />
* <s>aubio</s> - needed by ardour<br />
* <s>aufs2</s> - needed by aufs2-util<br />
* autofs<br />
* biogrep<br />
* biopython<br />
* <s>bittorrent</s> - needed by archboot<br />
* blassic<br />
* bomberclone<br />
* bonnie++<br />
* bootchart<br />
* botan - needed by monotone (orphan)<br />
* <s>brltty</s> - keep this for blind users, Andrea<br />
* <s>btrfs-progs-unstable</s> - needed by archboot<br />
* came<br />
* ccrtp - needed by libzrtpcpp (orphan)<br />
* ccscript3<br />
* cdcd<br />
* cddb_get<br />
* cdlabelgen - needed by gcombust (orphan)<br />
* cdtool - needed by tcdr (orphan)<br />
* centerim<br />
* chntpw<br />
* colortail<br />
* commoncpp2 - needed by ccrtp, ccscript3, twinkle (orphans)<br />
* corewars<br />
* cpudyn<br />
* cpufreqd<br />
* crimson<br />
* cssed<br />
* culmus<br />
* <s>cvs</s> - needed by a lot of packages<br />
* <s>cvsps</s> - needed by git<br />
* <s>cx_freeze</s> - needed by eric-plugins<br />
* dbh<br />
* <s>dconf</s> - needed by nautilus-sendto, empathy, gnome-bluetooth, evince...<br />
* devil<br />
* dia<br />
* ding<br />
* distcc<br />
* dmenu<br />
* dopewars<br />
* dvdbackup<br />
* eboard<br />
* ed2k-gtk-gui<br />
* <s>eject</s> - needed by hal, oxine<br />
* elinks<br />
* enigma<br />
* epdfview<br />
* ethstatus<br />
* evms<br />
* <s>fcgi</s> - needed by lighttpd<br />
* <s>fcitx</s> - needed by kdeplasma-addons<br />
* <s>festival</s> - needed by gnome-speech<br />
* <s>festival-english</s> - voices support to festival<br />
* <s>festival-us</s> - voices support to festival<br />
* fftw2<br />
* figlet<br />
* flite<br />
* <s>folks</s> - needed by empathy<br />
* <s>fsarchiver</s> - needed by archboot<br />
* galculator<br />
* gcal<br />
* gcombust<br />
* <s>gd</s> - needed by mrtg, ntop, pstoedit, texlive-bin, amule, libgphoto2...<br />
* gdeskcal<br />
* gdesklets<br />
* gdk-pixbuf - needed by xosd, gtk-smooth-engine (orphans)<br />
* <s>gdome2</s> - needed by gmetadom<br />
* gift - needed by gift-fasttrack, gift-gnutella, gift-openft<br />
* gift-fasttrack<br />
* gift-gnutella<br />
* gift-openft<br />
* gimp-fourier<br />
* glabels<br />
* gmencoder<br />
* gmpc<br />
* <s>gnokii</s> - needed by gnome-phone-manager<br />
* gnomeicu<br />
* gocr<br />
* gpart<br />
* <s>gperf</s> - needed by a lot of packages<br />
* graveman<br />
* gtick<br />
* gtk1-engines<br />
* gtkam<br />
* gtklp<br />
* gtk-smooth-engine<br />
* gtkterm<br />
* gtk-theme-switch<br />
* <s>gtk-vnc</s> - needed by vinagree<br />
* gweled<br />
* gxine<br />
* <s>haskell-binary</s> - up to Vesa<br />
* <s>haskell-cgi</s> - up to Vesa<br />
* <s>haskell-mtl</s> - up to Vesa<br />
* <s>haskell-network</s> - up to Vesa<br />
* <s>haskell-regex-compat</s> - up to Vesa<br />
* <s>haskell-tar</s> - up to Vesa<br />
* <s>haskell-text</s> - up to Vesa<br />
* hexcurse<br />
* hping<br />
* <s>httplib2</s> - needed by totem<br />
* httptunnel<br />
* httrack<br />
* hugs98<br />
* icmake - needed by yodl (orphan)<br />
* <s>ilmbase</s> - needed by openexr<br />
* <s>imap</s> - needed by php<br />
* imwheel<br />
* iptraf<br />
* ipvsadm<br />
* irda-utils<br />
* <s>jade</s> - needed by gtk-doc<br />
* jed<br />
* joe<br />
* jpilot<br />
* <s>json-glib</s> - needed by rhythmbox<br />
* <s>kdelibs3</s> - needed by qalculate-kde, labplot, ksensors<br />
* lesstifextensions<br />
* <s>lha</s> - needed by squeeze, xarchiver<br />
* <s>libchewing</s> - needed by scim-chewing<br />
* <s>libdvdcss</s> - needed by acidrip, libdvdread<br />
* libexif-gtk - needed by gtkam (orphan)<br />
* <s>libffi</s> - needed by ruby, librep<br />
* <s>libfm</s> - needed by pcmanfm<br />
* <s>libftdi</s> - needed by lirc-utils<br />
* <s>libhangul</s> - needed by scim-hangul<br />
* <s>libieee1284</s> - needed by sane<br />
* libixp<br />
* <s>liblo</s> - needed by dssi, ardour, ecasound<br />
* <s>liblqr</s> - needed by digikam<br />
* <s>libmad</s> - needed by a lot of packages<br />
* libmal<br />
* <s>libmcs</s> - needed by audacious<br />
* <s>libmodplug</s> - needed by moc, mpd, vlc<br />
* <s>libmowgli</s> - needed by libmcs, libguess<br />
* <s>libmp4v2</s> - needed by cmus, faac, easytag, tunepimp<br />
* libmusepack<br />
* <s>libnet</s> - needed by ettercap, ettercap-gtk<br />
* libnids<br />
* libnjb<br />
* <s>libots</s> - needed by abiword<br />
* libsexymm<br />
* libvisual-projectm<br />
* <s>libwpg</s> - needed by abiword, libreoffice<br />
* <s>libx86</s> - needed by vbetool<br />
* libzrtpcpp - needed by twinkle (orphan)<br />
* lincity<br />
* linuxdcpp<br />
* linux_logo<br />
* ltrace<br />
* luola<br />
* <s>lynx</s> - needed by xdg-utils<br />
* <s>lzop</s> - needed by squeeze, xarchiver<br />
* mailman<br />
* mcrypt<br />
* <s>memtest86+</s> - needed by archboot<br />
* mod_fastcgi<br />
* mod_wsgi<br />
* monotone<br />
* moon-buggy<br />
* moon-lander<br />
* <s>most</s><br />
* motion<br />
* mp3blaster<br />
* mrxvt<br />
* <s>mysql</s> - needed by akonadi, amarok,...<br />
* <s>mysql-python</s> - needed by django<br />
* mythplugins-*<br />
* myththemes<br />
* mythtv<br />
* ne<br />
* <s>netkit-bsd-finger</s> - needed by gnome-nettool<br />
* <s>netpbm</s> - needed by groff in [core]<br />
* netselect<br />
* <s>net-snmp</s> - needed by php, fwbuilder, foomatic...<br />
* ngrep<br />
* <s>nickle</s> - needed by xorg-xrandr<br />
* <s>nouveau-drm-lts</s> - needed by archboot<br />
* <s>nss-mdns</s> - needed by avahi<br />
* ntop<br />
* nuvexport<br />
* nvclock<br />
* <s>opengtl</s> - needed by koffice<br />
* <s>openldap</s> - needed by kdepimlibs<br />
* <s>opensp</s> - needed by iputils in [core], epiphan-extensions<br />
* pacbuild<br />
* pal<br />
* pan<br />
* parprouted<br />
* patchutils<br />
* pebrot<br />
* perl-class-factory-util - needed by perl-datetime-format-builder (orphan)<br />
* <s>perl-class-inspector</s> - needed by perl-soap-lite<br />
* perl-datetime-format-builder - needed by perl-datetime-format-iso8601 (orphan)<br />
* perl-datetime-format-iso8601 - needed by mythplugins (orphan)<br />
* perl-datetime-format-strptime - needed by perl-datetime-format-builder (orphan)<br />
* perl-image-size - needed by mythplugins (orphan)<br />
* <s>perl-mail-spf</s> - needed by spamassassin<br />
* perl-mail-spf-query<br />
* <s>perl-xml-parser</s> - needed by intltool, perl-xml-simple, perl-soap-lite<br />
* pinball<br />
* planner<br />
* prboom<br />
* prelink<br />
* privoxy<br />
* projectm<br />
* pure-ftpd<br />
* putty<br />
* pyogg - needed by pyvorbis (orphan)<br />
* python-cheetah<br />
* python-eyed3<br />
* <s>python-formencode</s> - needed by python-sqlobject<br />
* <s>python-geoip</s> - needed by nicotine<br />
* <s>python-m2crypto</s> - needed by crda in [core]<br />
* <s>python-nose</s> - needed by vigra, python-numpy<br />
* python-sqlobject - needed by pacbuild (orphan)<br />
* python-vpython<br />
* pyvorbis<br />
* <s>pyxml</s> - needed by python-soappy, inkscape<br />
* qgit<br />
* qof<br />
* qstat - needed by xqf (orphan)<br />
* <s>qt3</s> - needed by a lot of packages<br />
* <s>qt3-doc</s> - keep documentation for qt3, Andrea<br />
* quilt<br />
* <s>razor</s> - needed by spamassassin<br />
* rbldnsd<br />
* <s>re2c</s> - needed by spamassassin<br />
* rep-gtk - needed by sawfish (orphan)<br />
* revelation<br />
* rockdodger<br />
* root-tail<br />
* rpmunpack<br />
* <s>ruby</s> - needed by kdebindings-ruby<br />
* <s>ruby-docs</s> - keep documentation for ruby, Andrea<br />
* sawfish<br />
* screem<br />
* seed<br />
* <s>sharutils</s> - needed by madwifi<br />
* silly<br />
* <s>slang</s> - needed by mc, jed, most, mutt<br />
* <s>slib</s> - needed by gnucash<br />
* <s>slim-themes</s> - keep themes for slim, Andrea<br />
* slmodem<br />
* slmodem-utils<br />
* smtpprox<br />
* <s>snarf</s> - needed by archboot<br />
* spamassassin-spamc<br />
* spidermonkey - needed by elinks, gxine (orphans)<br />
* squashfs-tools<br />
* ssmtp - needed by at (orphan)<br />
* swatch<br />
* sylpheed<br />
* synergy<br />
* <s>talloc</s> - needed by samba<br />
* tcdr<br />
* tcptraceroute<br />
* tcsh<br />
* <s>telepathy-logger</s> - needed by empathy<br />
* <s>texi2html</s> - needed by qemu<br />
* thttpd<br />
* <s>time</s> - needed by hdf5<br />
* tin<br />
* tor<br />
* tpb<br />
* <s>transcode</s> - needed by dvdrip, dvdrtools<br />
* transset<br />
* ttf-fireflysung<br />
* ttf-isabella<br />
* ttf-tibetan-machine<br />
* <s>ttf-ubraille</s> - keep this for blind users, Andrea<br />
* twinkle<br />
* ubuntulooks<br />
* uml_utilities<br />
* unarj<br />
* <s>unzip</s> - needed by a lot of packages<br />
* <s>v86d</s> - needed by archboot<br />
* vacation<br />
* <s>vbetool</s> - needed by pm-utils<br />
* <s>vcdimager</s> - needed by xine-lib<br />
* vconfig<br />
* viewglob<br />
* w3m<br />
* webalizer<br />
* <s>wipe</s> - needed by archboot<br />
* wmii<br />
* wmix<br />
* words<br />
* wput<br />
* <s>wvstreams</s> - needed by wvdial<br />
* x2vnc<br />
* xbill<br />
* xbl<br />
* xboard<br />
* xdialog<br />
* xdrawchem<br />
* xemacs<br />
* xemacs-base<br />
* xemacs-sumo<br />
* <s>xf86-input-wacom</s> - up to Jan<br />
* xfsdump<br />
* xmahjongg<br />
* <s>xorg-xvidtune</s> - up to Jan<br />
* xosd - needed by tpd (orphan)<br />
* xpdf<br />
* xpdf-*<br />
* <s>xplc</s> - needed by wvstreams<br />
* xpyb<br />
* xqf<br />
* xskat<br />
* xtermcontrol<br />
* xzgv<br />
* <s>yasm</s> - needed by a lot of packages<br />
* yodl<br />
* <s>zip</s> - needed by a lot of packages<br />
* <s>zvbi</s> - needed by vlc<br />
<br />
== Candidate to [community] ==<br />
* abuse - (cryptocrack)<br />
* agg - needed by desmume-*, gnash (PirateJonno)<br />
* alltray - (sergej)<br />
* antiword - needed by pinot, lesspipe, recoll (cryptocrack)<br />
* arch - (cryptocrack)<br />
* at - needed by gnome-schedule (sergej)<br />
* bomberclone - (cryptocrack)<br />
* botan - needed by keysafe<br />
* cdcd - needed by gnormalize<br />
* cddb_get - needed by gnormalize, hacburn<br />
* centerim - (sergej)<br />
* chntpw - (cryptocrack)<br />
* devil - needed by cegui, spring<br />
* dia - (sergej) [Atsutane]<br />
* distcc - (sergej)<br />
* dmenu - needed by uzbl, musca, surf (sergej) i3-wm [Atsutane]<br />
* dopewars - (schuay)<br />
* elinks - (sergej)<br />
* enigma - (schuay)<br />
* epdfview - (schuay)<br />
* fftw2 - (cryptocrack)<br />
* figlet - (Atsutane)<br />
* gdk-pixbuf - needed by lazarus, xchat-systray-integration<br />
* gocr - needed by ogmrip<br />
* gweled - (schuay)<br />
* httptunnel - (cryptocrack)<br />
* iptraf - (sergej)<br />
* libnids - needed by dsniff<br />
* ltrace - (cryptocrack)<br />
* mailman - (sergej)<br />
* mcrypt - (sergej)<br />
* mod_fastcgi - (cryptocrack)<br />
* mod_wsgi - needed by mapnik, python-webpy<br />
* motion - (sergej)<br />
* mythplugins - (PirateJonno)<br />
* myththemes - (PirateJonno)<br />
* mythtv - (PirateJonno)<br />
* ngrep - (cryptocrack)<br />
* ntop - (cryptocrack)<br />
* nvclock - (cryptocrack)<br />
* patchutils - (sergej)<br />
* perl-class-factory-util - (sergej)<br />
* perl-datetime-format-builder - (sergej)<br />
* perl-datetime-format-iso8601 - (sergej)<br />
* perl-datetime-format-strptime - (sergej)<br />
* perl-image-size - (sergej)<br />
* perl-mail-spf-query - (sergej)<br />
* prboom - (cryptocrack)<br />
* privoxy - (cryptocrack)<br />
* pyogg - needed by fretsonfire<br />
* python-cheetah - needed by workrave<br />
* python-eyed3 - needed by gpodder<br />
* python-sqlobject - needed by imdbpy<br />
* pyvorbis - needed by listen<br />
* qgit - (schuay)<br />
* quilt - needed by gquilt<br />
* silly - needed by cegui<br />
* slmodem - (segej)<br />
* slmodem-utils - (segej)<br />
* spidermonkey - needed by gpac, couchdb, mediatomb (PirateJonno)<br />
* squashfs-tools - (segej)<br />
* tor - (cryptocrack)<br />
* twinkle - (segej)<br />
* unarj - (segej)<br />
* w3m - needed by emacs-w3m, asciidoc (segej) [Atsutane]<br />
* wmii - (segej)<br />
* words - needed by bsd-games (cryptocrack)<br />
* wput - (segej)<br />
* xboard - (segej)<br />
* xdialog - (segej)<br />
* xemacs - needed by xemacs-base, xemacs-sumo<br />
* xemacs-base - needed by xemacs-all-packages<br />
* xemacs-sumo - needed by xemacs-all-packages<br />
* xosd - needed by ekg2, osdbattery<br />
* xpdf - needed by recoll, impressive (segej)<br />
* xpdf-* - support files to xpdf (segej)<br />
<br />
= Progress =<br />
<br />
== Moved to community ==<br />
<br />
== Moved to unsupported ==<br />
<br />
= Issues =</div>Atsutanehttps://wiki.archlinux.org/index.php?title=I3&diff=116516I32010-09-06T10:35:31Z<p>Atsutane: /* Other Tools */ With 2.0 all slock-code was removed and replaced by self written XCB-code.</p>
<hr />
<div>{{DISPLAYTITLE:i3}}<br />
[[Category:Tiling WMs (English)]]<br />
[[Category:HOWTOs (English)]]<br />
<br />
= Introduction =<br />
[http://i3.zekjur.net/ i3] is a manual tiling window manager which places clients into containers. Containers can be stacked (like [http://wiki.archlinux.org/index.php/Wmii wmii]) or tabbed (like [http://wiki.archlinux.org/index.php/Ion3 ion3]). i3 also supports floating windows.<br />
<br />
From the website:<br />
<br />
:"i3 is a tiling window manager, completely written from scratch.<br />
<br />
:"i3 was created because wmii, the author's favorite window manager at the time, didn’t provide some features they wanted (Xinerama done right, for example), had some bugs, didn’t progress since quite some time and wasn’t easy to hack at all (source code comments/documentation completely lacking). Still, we think the wmii developers and contributors did a great job. Thank you for inspiring us to create i3.<br />
<br />
:"Please be aware that i3 is primarily targeted at advanced users and developers."<br />
<br />
= Installation =<br />
<br />
i3 is now in the community repo. Installing i3 is accomplished by installing the group:<br />
<pre>pacman -S i3</pre><br />
or, if you only want the window manager itself, by installing i3-wm:<br />
<pre>pacman -S i3-wm</pre><br />
i3-git is available in AUR - [http://aur.archlinux.org/packages.php?ID=24665 git]<br />
<br />
<br />
Then edit your {{Filename|~/.xinitrc}} and add:<br />
exec i3<br />
If you want i3 to log its output (useful for debugging), add this line to {{Filename|~/.xinitrc}}:<br />
exec i3 -V >>~/.i3/i3log >&1<br />
If you use the nvidia binary drivers provided by nvidia, you must use the following in your {{Filename|~/.xinitrc}} due to nvidia not yet supporting randr:<br />
exec i3 --force-xinerama -V >>~/.i3/i3log 2>&1<br />
<br />
= Configuration =<br />
<br />
i3 is configured using a simple text file. It first looks for {{Filename|~/.i3/config}} and if it doesn't exist, reads the default config at {{Filename|/etc/i3/config}}. So to start customizing, copy the config file to your home directory:<br />
cp /etc/i3/config ~/.i3/config<br />
The config allows you to change such things as:<br />
*Border colors<br />
*Font<br />
*Keybindings<br />
*Workspace names<br />
*Default container layout<br />
*Assignment of apps to specific workspaces<br />
<br />
The i3 [http://i3.zekjur.net/docs/userguide.html User's Guide] gives a nice overview of the config settings.<br />
<br />
= Status Bar =<br />
The internal statusbar merely displays a list of the existing workspaces and does not accept infos from standard input.<br />
[http://wiki.archlinux.org/index.php/Dzen dzen2] can be placed in the information bar at the bottom of the screen. Information for dzen2 can be generated using [http://www.archlinux.org/packages/community/i686/i3status/ i3status] or [http://wiki.archlinux.org/index.php/Conky conky].<br />
i3status | dzen2 &<br />
Or<br />
conky | dzen2 &<br />
The svn development version of dzen2 offers a -dock option, which puts dzen2 at the bottom of the screen and tells i3 not to manage it. However, if you use both the internal statusbar and conky/dzen2, you get a duplication of statusbars. You could avoid docking dzen2 and simply place it over the internal statusbar. However, a cleaner solution is to completely disable the internal statusbar with:<br />
workspace_bar no<br />
Now you can get back your list of workspaces, since i3 makes it available for external tools through an ipc socket. In the AUR you can find i3-wsbar, which is able to get the list of workspaces from the ipc socket. Thus you can pipe the conky output to i3-wsbar and tell i3-wsbar to use dzen2.<br />
E.g., put the following in {{Filename|~/.i3/config}}:<br />
exec conky | i3-wsbar -c "dzen2 -x %x -dock -fn -*-profont-*-*-*-*-11-*-*-*-*-*-*-* -ta l"<br />
Please note that in your conky configuration file you can use the color codes for dzen2, so that you can get a nice, colored statusbar (see this sample [http://archlinux.lando.imap.cc/i3/.conkyrc conkyrc] and the corresponding [http://archlinux.lando.imap.cc/i3/i3-wsbar.png screenshot]).<br />
<br />
= Other Tools =<br />
<br />
*i3 currently uses [http://wiki.archlinux.org/index.php/Dmenu dmenu] as a launcher (by default, bound to Mod1+v)<br />
*[http://www.archlinux.org/packages/community/i686/i3lock/ i3lock] - A screen locker inspired by [http://www.archlinux.org/packages/community/i686/slock/ slock]</div>Atsutanehttps://wiki.archlinux.org/index.php?title=I3&diff=116470I32010-09-05T14:23:18Z<p>Atsutane: /* Other Tools */ Changed the i3lock url to the new at community, an extra section for it might be useful.</p>
<hr />
<div>{{DISPLAYTITLE:i3}}<br />
[[Category:Tiling WMs (English)]]<br />
[[Category:HOWTOs (English)]]<br />
<br />
= Introduction =<br />
[http://i3.zekjur.net/ i3] is a manual tiling window manager which places clients into containers. Containers can be stacked (like [http://wiki.archlinux.org/index.php/Wmii wmii]) or tabbed (like [http://wiki.archlinux.org/index.php/Ion3 ion3]). i3 also supports floating windows.<br />
<br />
From the website:<br />
<br />
:"i3 is a tiling window manager, completely written from scratch.<br />
<br />
:"i3 was created because wmii, the author's favorite window manager at the time, didn’t provide some features they wanted (Xinerama done right, for example), had some bugs, didn’t progress since quite some time and wasn’t easy to hack at all (source code comments/documentation completely lacking). Still, we think the wmii developers and contributors did a great job. Thank you for inspiring us to create i3.<br />
<br />
:"Please be aware that i3 is primarily targeted at advanced users and developers."<br />
<br />
= Installation =<br />
<br />
i3 is now in the community repo. Installing i3 is accomplished by installing the group:<br />
<pre>pacman -S i3</pre><br />
or, if you only want the window manager itself, by installing i3-wm:<br />
<pre>pacman -S i3-wm</pre><br />
i3-git is available in AUR - [http://aur.archlinux.org/packages.php?ID=24665 git]<br />
<br />
<br />
Then edit your {{Filename|~/.xinitrc}} and add:<br />
exec i3<br />
If you want i3 to log its output (useful for debugging), add this line to {{Filename|~/.xinitrc}}:<br />
exec i3 -V >>~/.i3/i3log >&1<br />
If you use the nvidia binary drivers provided by nvidia, you must use the following in your {{Filename|~/.xinitrc}} due to nvidia not yet supporting randr:<br />
exec i3 --force-xinerama -V >>~/.i3/i3log 2>&1<br />
<br />
= Configuration =<br />
<br />
i3 is configured using a simple text file. It first looks for {{Filename|~/.i3/config}} and if it doesn't exist, reads the default config at {{Filename|/etc/i3/config}}. So to start customizing, copy the config file to your home directory:<br />
cp /etc/i3/config ~/.i3/config<br />
The config allows you to change such things as:<br />
*Border colors<br />
*Font<br />
*Keybindings<br />
*Workspace names<br />
*Default container layout<br />
*Assignment of apps to specific workspaces<br />
<br />
The i3 [http://i3.zekjur.net/docs/userguide.html User's Guide] gives a nice overview of the config settings.<br />
<br />
= Status Bar =<br />
The internal statusbar merely displays a list of the existing workspaces and does not accept infos from standard input.<br />
[http://wiki.archlinux.org/index.php/Dzen dzen2] can be placed in the information bar at the bottom of the screen. Information for dzen2 can be generated using [http://www.archlinux.org/packages/community/i686/i3status/ i3status] or [http://wiki.archlinux.org/index.php/Conky conky].<br />
i3status | dzen2 &<br />
Or<br />
conky | dzen2 &<br />
The svn development version of dzen2 offers a -dock option, which puts dzen2 at the bottom of the screen and tells i3 not to manage it. However, if you use both the internal statusbar and conky/dzen2, you get a duplication of statusbars. You could avoid docking dzen2 and simply place it over the internal statusbar. However, a cleaner solution is to completely disable the internal statusbar with:<br />
workspace_bar no<br />
Now you can get back your list of workspaces, since i3 makes it available for external tools through an ipc socket. In the AUR you can find i3-wsbar, which is able to get the list of workspaces from the ipc socket. Thus you can pipe the conky output to i3-wsbar and tell i3-wsbar to use dzen2.<br />
E.g., put the following in {{Filename|~/.i3/config}}:<br />
exec conky | i3-wsbar -c "dzen2 -x %x -dock -fn -*-profont-*-*-*-*-11-*-*-*-*-*-*-* -ta l"<br />
Please note that in your conky configuration file you can use the color codes for dzen2, so that you can get a nice, colored statusbar (see this sample [http://archlinux.lando.imap.cc/i3/.conkyrc conkyrc] and the corresponding [http://archlinux.lando.imap.cc/i3/i3-wsbar.png screenshot]).<br />
<br />
= Other Tools =<br />
<br />
*i3 currently uses [http://wiki.archlinux.org/index.php/Dmenu dmenu] as a launcher (by default, bound to Mod1+v)<br />
*[http://www.archlinux.org/packages/community/i686/i3lock/ i3lock] - A modification of [http://www.archlinux.org/packages/community/i686/slock/ slock]</div>Atsutanehttps://wiki.archlinux.org/index.php?title=User:Atsutane&diff=113274User:Atsutane2010-08-03T16:34:10Z<p>Atsutane: Created the page with basic contact information.</p>
<hr />
<div>{| class="wikitable"<br />
|'''Location''' || Germany<br />
|-<br />
|'''Email''' || [mailto:atsutane-archwiki@freethoughts.de atsutane-archwiki@freethoughts.de]<br />
|-<br />
|'''Jabber''' || Same as email address, just without ''-archwiki''<br />
|-<br />
|'''GPG''' || 0x295AFBF4<br />
|}</div>Atsutanehttps://wiki.archlinux.org/index.php?title=Comparison_of_tiling_window_managers&diff=107951Comparison of tiling window managers2010-06-05T09:59:18Z<p>Atsutane: /* Comparison table: */ i3status link updated</p>
<hr />
<div>[[Category:Tiling WMs (English)]]<br />
This article provides an unbiased comparison of the most popular ''tiling'' [[window manager]]s (as opposed to ''floating'' window managers).<br />
<br />
== Comparison table ==<br />
The following table lists the most popular tiling window managers alongside notable features, providing readers with a quick overview. More in-depth descriptions follow this table.<br />
<br />
{| border="1" cellpadding="4" cellspacing="0"<br />
|+ Comparison of tiling window managers<br />
! Window Manager !! Written in !! Configured with !! Management style !! System tray support !! On-the-fly reload !! Information bars !! Compositing !! Default layouts !! Pixel usage || External control !! Library !! Multiple (n) monitor behavior<br />
|-<br />
! [[Awesome]]<br />
| C || Lua || Dynamic || Built-in || Yes || Built-in, images and text || Yes, with an external manager such as xcompmgr || || 1-pix borders, h-tab titles || dbus (if enabled) || XCB ||<br />
|-<br />
! [[dwm]]<br />
| C || C (recompile) || Dynamic || None || [[Dwm#Restart dwm without logging out or closing programs | Optional]] || Built-in, reads from root window name || Yes, with an external manager such as xcompmgr || v-stack, max || || || Xlib || n regions, 9 workspaces fixed to each region<br />
|-<br />
! [[i3]] <br />
| C || Text || Manual || None || Yes || [http://www.archlinux.org/packages/community/i686/i3status/ i3status] with dzen2 or xmobar || No || rows, columns, v-tab, h-tab, max || 2-pix borders, titles || commands via ipc || XCB || n regions<br />
|-<br />
! [[Ion3]] <br />
| C || Lua || Manual || trayion || Yes || configurable || ? || h-tab, max || || || ||<br />
|-<br />
! [[Musca]]<br />
| C || Text, own command set, C(recompile) || Manual || None || No, but allows running of musca commands on the fly || None || No || h-split, v-split, max || || commands, hooks || Xlib ||<br />
|-<br />
! [[Ratpoison]]<br />
| C || Text || Manual || None || Yes || Yes || No || max || || || ||<br />
|-<br />
! [[Scrotwm]]<br />
| C || Text || Dynamic || None || Yes || Built-in, reads from user script || No || nv-stack, nh-stack, max || 1-pix borders, no titles || || Xlib || n regions, 10 workspaces visible in any region<br />
|-<br />
! [[Stumpwm]]<br />
| Lisp || Lisp || Manual || None || Yes || Yes || No || || || || ||<br />
|-<br />
! [[subtle]]<br />
| C || Ruby || Manual || Built-in || Yes || Built-in (Ruby) || Yes, with an external manager such as xcompmgr || grid || variable borders, no titles || hooks (Ruby), subtler (CLI), subtlext (Ruby extension) || Xlib || views include any screen, placement on screens via tags and per runtime<br />
|-<br />
! [[wmfs]]<br />
| C || Text || Dynamic || None || Yes || Built-in, set with command, color text || No || nh-stack (and invert), nv-stack (and invert), mirror-v, mirror-h, grid, max || variable borders, titles || commands || Xlib ||<br />
|-<br />
! [[wmii]]<br />
| C || Anything || Manual || None || Yes || Built-in || No || columns, max, v-tab || titles || [http://9p.cat-v.org 9P filesystem] || || one big region<br />
|-<br />
! [[xmonad]]<br />
| Haskell || Haskell || Dynamic || None || Yes || No || Yes, with xmonad-contrib and an external manager || nv-stack, nh-stack, max || 1-pix borders, no titles || || Xlib || n regions, 9 workspaces visible in any region<br />
|}<br />
<br />
=== Management style ===<br />
Dynamic management emphasizes automatic management of window layouts for speed and simplicity. Manual management emphasizes manual adjustment of layout and sizing with potentially more precise control, at the cost of more time spent moving and sizing windows.<br />
<br />
=== Layouts ===<br />
A number of common layout types appear in several tiling WMs, although the terminology varies somewhat.<br />
* max: one window shown fullscreen (with or without a status bar, title and borders). Aka: monocle (dwm).<br />
* h-stack: master area in top half, other windows stack up horizontally in the bottom half. The master area may be resizable. May be inverted top-bottom (wmfs). Aka: bottom stack (dwm).<br />
* v-stack: master area in left half, other windows stack up vertically in the right half. The master area may be resizable. May be inverted left-right (wmfs). Aka: tile (dwm).<br />
* nh-stack: h-stack allowing >=1 windows in master area. Aka: nbstack (dwm)<br />
* nv-stack: v-stack allowing >=1 windows in master area. Aka: ntile (dwm)<br />
* mirror-h: nh-stack with stacks above and below the master area<br />
* mirror-v: nv-stack with stacks to the left and right of the master area<br />
* h-tab: one window shown fullscreen with all window titles shown horizontally (like browser tabs)<br />
* v-tab: one window shown fullscreen with all window titles shown vertically. Aka: stack (wmii).<br />
* h-split: a keybinding splits the current window horizontally creating space for another<br />
* v-split: a keybinding splits the current window horizontally creating space for another<br />
* columns: manual layout style which treats windows as belonging to vertical columns<br />
* rows: manual layout style which treats windows as belonging to horizontal rows<br />
* grid: window positions and sizes based on a regular NxM grid. May be automatic (like wmfs) or manual (like Subtle).<br />
<br />
=== Key bindings ===<br />
Tiling window managers are usually designed to be used entirely with the keyboard or with keyboard & mouse. This is for speed (reaching for and moving a mouse is slow) and ease of use. Sensible key bindings are crucial to making workflow fast and efficient. Some default sets are better than others, but generally the keys can be rebound as desired by the user.<br />
<br />
== [[Awesome]] ==<br />
[http://awesome.naquadah.org/ awesome] on its own can provide many of the functions of a desktop environment. Configured in Lua, it has a system tray, information bar, and launcher built in. There are extensions available to it written in Lua, but they are less smoothly integrated than those of XMonad. Awesome uses XCB as opposed to Xlib, which may result in a speed increase. Awesome has other features as well, such as an early replacement for notification-daemon, a right-click menu similar to that of the *box window managers, and many other things.<br />
<br />
== [[dwm]] ==<br />
[http://dwm.suckless.org/ dwm] is by far the simplest of the window managers listed here. It does not include a tray app or automatic launcher, although dmenu integrates well with it, as they are from the same author. It has no text configuration file. Configuration is done entirely by modifying the C source code, and it must be recompiled and restarted each time it is changed. It is more lightweight than the others listed here, at the expense of certain features. The program size is already at the self-imposed line limit, restricting further development.<br />
<br />
== [[i3]] ==<br />
[http://i3.zekjur.net/ i3] was created because wmii, the authors' favorite window manager at the time, didn’t provide some features they wanted. Notable differences are in the areas of Xinerama and the table metaphor. For speed the Plan 9 interface of wmii is not implemented.<br />
<br />
== [[ion3]] ==<br />
Ion is a tiling window manager with tabbed frames. It uses Lua as an embedded interpreter which handles all of the configuration. It mainly uses the keyboard to access the functions but also supports the mouse for some things.<br />
<br />
== [[Musca]] ==<br />
A simple dynamic window manager for X, with features nicked from ratpoison and dwm:<br />
[http://aerosuidae.net/musca.html Musca] operates as a tiling window manager by default. It uses manual tiling, which means the user determines how the screen is divided into non-overlapping frames, with no restrictions on layout. Application windows always fill their assigned frame, with the exception of transient windows and popup dialog boxes which float above their parent application at the appropriate size. Once visible, applications do not change frames unless so instructed.<br />
<br />
== [[Ratpoison]] ==<br />
[http://www.nongnu.org/ratpoison/ Ratpoison] is configured with a simple text file, as opposed to some of the other tiling window managers which are configured with programming languages. While this reduces flexibility, it can be easier to understand. The information bar in Ratpoison is somewhat different, as it shows only when needed. It serves as both an application launcher as well as a notification bar. Ratpoison does not include a system tray and is quite lightweight.<br />
<br />
== [[Scrotwm]] ==<br />
[http://www.scrotwm.org/ scrotwm] is a small dynamic tiling window manager largely inspired by xmonad and dwm. It tries to stay out of the way so that valuable screen real estate can be used for much more important stuff. It has sane defaults and does not require one to learn a language to do any configuration, being configured with a text file. It was written by hackers for hackers and it strives to be small, compact, and fast. It has a built-in status bar fed from a user-defined script.<br />
<br />
== [[Stumpwm]] ==<br />
[http://www.nongnu.org/stumpwm/ Stumpwm] is similar to [[Ratpoison]] but is written and configured completely in Lisp. It can be reconfigured and reloaded while running. As with wmii and Ratpoison, it is a manual window manager. Its information bar can be set to show constantly or only when needed. It does not include a system tray.<br />
<br />
== [[subtle]] ==<br />
[http://subforge.org/projects/subtle subtle] is a tiling window manager with flexible manual layouts based on predefined sizes and positions corresponding by default to 1x2, 2x1, 1x3, 2x2 and 2x3 grid elements. It has workspace tags and automatic client tagging, mouse and keyboard control as well as an extendable statusbar.<br />
<br />
== [[wmfs]] ==<br />
[http://wmfs.info/ WMFS] (Window Manager From Scratch) is a lightweight and highly configurable tiling window manager for X. It can be configured with a configuration file, supports Xft ([http://www.freetype.org/ Freetype]) fonts and is compliant with the Extended Window Manager Hints ([http://standards.freedesktop.org/wm-spec/wm-spec-1.3.html EWMH]) specifications. It's still under heavy development<br />
<br />
== [[wmii]] ==<br />
[http://wmii.suckless.org/ wmii] uses a manual style of management -- the user must manually move windows around. While more work than dynamic management, this also provides more flexibility by default. wmii is configured via a [http://9p.cat-v.org 9P file system], which allows any program that can work with text to configure it. The default configuration is in bash and [http://rc.cat-v.org rc (the Plan 9 shell)], but programs exist written in ruby, for example. It has a status bar and launcher built in, but no system tray.<br />
<br />
== [[xmonad]] ==<br />
[http://xmonad.org/ xmonad] is written in Haskell, and it is configured in Haskell. This allows great flexibility, although this can be confusing at times. No text configuration file has been implemented. For all configuration changes xmonad must be recompiled, so the haskell compiler (over 485MB) must be installed. Compilation normally takes ~2 seconds, and can be done without affecting running programs. XMonad, in itself, is quite simple, but there is a large library called xmonad-contrib which provides many other features. XMonad does not include any utility programs, but others, such as [[dzen2]] and [[xmobar]], make it easy to display such things as workspace information. xmonad does not come with an application launcher, but there are modules in xmonad-contrib which provide one, as well as programs like [[dmenu]] and gmrun. There is no system tray, but this can be provided by applications such as stalonetray and trayer.</div>Atsutanehttps://wiki.archlinux.org/index.php?title=I3&diff=102790I32010-04-11T12:56:47Z<p>Atsutane: /* Installation */ Updated installation as the i3 package was renamed and i3 itself is now the name of a group.</p>
<hr />
<div>{{DISPLAYTITLE:i3}}<br />
[[Category:Tiling WMs (English)]]<br />
[[Category:HOWTOs (English)]]<br />
<br />
= Introduction =<br />
[http://i3.zekjur.net/ i3] is a manual tiling window manager which places client into containers. Containers can be stacked (like [http://wiki.archlinux.org/index.php/Wmii wmii]) or tabbed (like [http://wiki.archlinux.org/index.php/Ion3 ion3]). i3 also supports floating windows.<br />
<br />
From the website:<br><br />
"i3 is a tiling window manager, completely written from scratch.<br>i3 was created because wmii, the author's favorite window manager at the time, didn’t provide some features they wanted (Xinerama done right, for example), had some bugs, didn’t progress since quite some time and wasn’t easy to hack at all (source code comments/documentation completely lacking). Still, we think the wmii developers and contributors did a great job. Thank you for inspiring us to create i3.<br>Please be aware that i3 is primarily targeted at advanced users and developers. " <br />
<br />
= Installation =<br />
<br />
i3 is now in the community repo, installing i3 is either possible with installing the group:<br />
<pre>pacman -S i3</pre><br />
or if you only want the window manager itself by installing i3-wm:<br />
<pre>pacman -S i3-wm</pre><br />
i3-git is available in AUR - [http://aur.archlinux.org/packages.php?ID=24665 git]<br />
<br />
<br />
Then edit your '''<code>~/.xinitrc</code>''' and add:<br />
exec i3<br />
If you want i3 to log it's output (useful for debuging) add this line to '''<code>~/.xinitrc</code>''':<br />
exec i3 -V >>~/.i3/i3log ">&1<br />
If you use the nvidia binary drivers provided by nvidia you must use the following in your '''<code>~/.xinitrc</code>''' due to nvidia not yet supporting randr<br />
exec i3 --force-xinerama -V >>~/.i3/i3log 2>&1<br />
<br />
= Configuration =<br />
<br />
i3 is configured using a simple text file. It first looks for '''<code>~/.i3/config</code>''' and if it doesn't exist, reads the default config at '''<code>/etc/i3/config</code>'''. So to start customizing, copy the config file to your home directory:<br />
cp /etc/i3/config ~/.i3/config<br />
The config allows you to change such things as:<br />
*Border colors<br />
*Font<br />
*Keybindings<br />
*Workspace names<br />
*Default container layout<br />
*Assignment of apps to specific workspaces<br />
<br />
The i3 [http://i3.zekjur.net/docs/userguide.html User's Guide] gives a nice overview of the config settings.<br />
<br />
= Status Bar =<br />
<br />
[http://wiki.archlinux.org/index.php/Dzen dzen2] can be placed in the information bar at the bottom of the screen. Information for dzen2 can be generated using [http://aur.archlinux.org/packages.php?ID=26104 i3status] or [http://wiki.archlinux.org/index.php/Conky conky].<br />
i3status | dzen2 &<br />
Or<br />
conky | dzen2 &<br />
<br />
= Other Tools =<br />
<br />
*i3 currently uses [http://wiki.archlinux.org/index.php/Dmenu dmenu] as a launcher (by default, bound to Mod1+v)<br />
*[http://aur.archlinux.org/packages.php?ID=24664 i3lock] - A modification of [http://aur.archlinux.org/packages.php?ID=16584 slock]</div>Atsutanehttps://wiki.archlinux.org/index.php?title=Comparison_of_tiling_window_managers&diff=101843Comparison of tiling window managers2010-04-03T19:21:22Z<p>Atsutane: /* Comparison table: i3 ipc and multi monitor information added */</p>
<hr />
<div>[[Category:Tiling WMs (English)]]<br />
This article provides an unbiased comparison of the most popular ''tiling'' [[window manager]]s (as opposed to ''floating'' window managers).<br />
<br />
== Comparison table ==<br />
The following table lists the most popular tiling window managers alongside notable features, providing readers with a quick overview. More in-depth descriptions follow this table.<br />
<br />
{| border="1" cellpadding="4" cellspacing="0"<br />
|+ Comparison of tiling window managers<br />
! Window Manager !! Written in !! Configured with !! Management style !! System tray support !! On-the-fly reload !! Information bars !! Compositing !! Default layouts !! Pixel usage || External control !! Library !! Multiple (n) monitor behavior<br />
|-<br />
! [[Awesome]]<br />
| C || Lua || Dynamic || Built-in || Yes || Built-in, images and text || Yes, with an external manager such as xcompmgr || || 1-pix borders, h-tab titles || || XCB ||<br />
|-<br />
! [[dwm]]<br />
| C || C (recompile) || Dynamic || None || [[Dwm#Restart dwm without logging out or closing programs | Optional]] || Built-in, reads from root window name || Yes, with an external manager such as xcompmgr || v-stack, max || || || Xlib || n regions, 9 workspaces fixed to each region<br />
|-<br />
! [[i3]] <br />
| C || Text || Manual || None || Yes || [http://aur.archlinux.org/packages.php?ID=26104 i3status] with dzen2 or xmobar || No || rows, columns, v-tab, h-tab, max || 2-pix borders, titles || commands via ipc || XCB || n regions<br />
|-<br />
! [[Ion3]] <br />
| C || Lua || Manual || trayion || Yes || configurable || ? || h-tab, max || || || ||<br />
|-<br />
! [[Musca]]<br />
| C || Text, own command set, C(recompile) || Manual || None || No, but allows running of musca commands on the fly || None || No || h-split, v-split, max || || commands, hooks || ||<br />
|-<br />
! [[Ratpoison]]<br />
| C || Text || Manual || None || Yes || Yes || No || max || || || ||<br />
|-<br />
! [[Scrotwm]]<br />
| C || Text || Dynamic || None || Yes || Built-in, reads from user script || No || nv-stack, nh-stack, max || 1-pix borders, no titles || || Xlib || n regions, 10 workspaces visible in any region<br />
|-<br />
! [[Stumpwm]]<br />
| Lisp || Lisp || Manual || None || Yes || Yes || No || || || || ||<br />
|-<br />
! [[subtle]]<br />
| C || Ruby || Manual || Built-in || Yes || Built-in (Ruby) || No || grid || variable borders, no titles || hooks || ||<br />
|-<br />
! [[wmfs]]<br />
| C || Text || Dynamic || None || Yes || Built-in, set with command, color text || No || nh-stack (and invert), nv-stack (and invert), mirror-v, mirror-h, grid, max || variable borders, titles || commands || Xlib ||<br />
|-<br />
! [[wmii]]<br />
| C || Anything || Manual || None || Yes || Built-in || No || columns, max, v-tab || titles || Plan 9 filesystem || || one big region<br />
|-<br />
! [[xmonad]]<br />
| Haskell || Haskell || Dynamic || None || Yes || No || Yes, with xmonad-contrib and an external manager || nv-stack, nh-stack, max || 1-pix borders, no titles || || Xlib || n regions, 9 workspaces visible in any region<br />
|}<br />
<br />
=== Management style ===<br />
Dynamic management emphasizes automatic management of window layouts for speed and simplicity. Manual management emphasizes manual adjustment of layout and sizing with potentially more precise control, at the cost of more time spent moving and sizing windows.<br />
<br />
=== Layouts ===<br />
A number of common layout types appear in several tiling WMs, although the terminology varies somewhat.<br />
* max: one window shown fullscreen (with or without a status bar, title and borders). Aka: monocle (dwm).<br />
* h-stack: master area in top half, other windows stack up horizontally in the bottom half. The master area may be resizable. May be inverted top-bottom (wmfs). Aka: bottom stack (dwm).<br />
* v-stack: master area in left half, other windows stack up vertically in the right half. The master area may be resizable. May be inverted left-right (wmfs). Aka: tile (dwm).<br />
* nh-stack: h-stack allowing >=1 windows in master area. Aka: nbstack (dwm)<br />
* nv-stack: v-stack allowing >=1 windows in master area. Aka: ntile (dwm)<br />
* mirror-h: nh-stack with stacks above and below the master area<br />
* mirror-v: nv-stack with stacks to the left and right of the master area<br />
* h-tab: one window shown fullscreen with all window titles shown horizontally (like browser tabs)<br />
* v-tab: one window shown fullscreen with all window titles shown vertically. Aka: stack (wmii).<br />
* h-split: a keybinding splits the current window horizontally creating space for another<br />
* v-split: a keybinding splits the current window horizontally creating space for another<br />
* columns: manual layout style which treats windows as belonging to vertical columns<br />
* rows: manual layout style which treats windows as belonging to horizontal rows<br />
* grid: window positions and sizes based on a regular NxM grid. May be automatic (like wmfs) or manual (like Subtle).<br />
<br />
=== Key bindings ===<br />
Tiling window managers are usually designed to be used entirely with the keyboard or with keyboard & mouse. This is for speed (reaching for and moving a mouse is slow) and ease of use. Sensible key bindings are crucial to making workflow fast and efficient. Some default sets are better than others, but generally the keys can be rebound as desired by the user.<br />
<br />
== [[Awesome]] ==<br />
[http://awesome.naquadah.org/ awesome] on its own can provide many of the functions of a desktop environment. Configured in Lua, it has a system tray, information bar, and launcher built in. There are extensions available to it written in Lua, but they are less smoothly integrated than those of XMonad. Awesome uses XCB as opposed to Xlib, which may result in a speed increase. Awesome has other features as well, such as an early replacement for notification-daemon, a right-click menu similar to that of the *box window managers, and many other things.<br />
<br />
== [[dwm]] ==<br />
[http://dwm.suckless.org/ dwm] is by far the simplest of the window managers listed here. It does not include a tray app or automatic launcher, although dmenu integrates well with it, as they are from the same author. It has no text configuration file. Configuration is done entirely by modifying the C source code, and it must be recompiled and restarted each time it is changed. It is more lightweight than the others listed here, at the expense of certain features.<br />
<br />
== [[i3]] ==<br />
[http://i3.zekjur.net/ i3] was created because wmii, the authors' favorite window manager at the time, didn’t provide some features they wanted. Notable differences are in the areas of Xinerama and the table metaphor. For speed the Plan 9 interface of wmii is not implemented.<br />
<br />
== [[ion3]] ==<br />
Ion is a tiling window manager with tabbed frames. It uses Lua as an embedded interpreter which handles all of the configuration. It mainly uses the keyboard to access the functions but also supports the mouse for some things.<br />
<br />
== [[Musca]] ==<br />
A simple dynamic window manager for X, with features nicked from ratpoison and dwm:<br />
[http://aerosuidae.net/musca.html Musca] operates as a tiling window manager by default. It uses manual tiling, which means the user determines how the screen is divided into non-overlapping frames, with no restrictions on layout. Application windows always fill their assigned frame, with the exception of transient windows and popup dialog boxes which float above their parent application at the appropriate size. Once visible, applications do not change frames unless so instructed.<br />
<br />
== [[Ratpoison]] ==<br />
[http://www.nongnu.org/ratpoison/ Ratpoison] is configured with a simple text file, as opposed to some of the other tiling window managers which are configured with programming languages. While this reduces flexibility, it can be easier to understand. The information bar in Ratpoison is somewhat different, as it shows only when needed. It serves as both an application launcher as well as a notification bar. Ratpoison does not include a system tray and is quite lightweight.<br />
<br />
== [[Scrotwm]] ==<br />
[http://www.scrotwm.org/ scrotwm] is a small dynamic tiling window manager largely inspired by xmonad and dwm. It tries to stay out of the way so that valuable screen real estate can be used for much more important stuff. It has sane defaults and does not require one to learn a language to do any configuration, being configured with a text file. It was written by hackers for hackers and it strives to be small, compact, and fast. It has a built-in status bar fed from a user-defined script.<br />
<br />
== [[Stumpwm]] ==<br />
[http://www.nongnu.org/stumpwm/ Stumpwm] is similar to [[Ratpoison]] but is written and configured completely in Lisp. It can be reconfigured and reloaded while running. As with wmii and Ratpoison, it is a manual window manager. Its information bar can be set to show constantly or only when needed. It does not include a system tray.<br />
<br />
== [[subtle]] ==<br />
[http://subforge.org/projects/subtle subtle] is a tiling window manager with flexible manual layouts based on predefined sizes and positions corresponding by default to 1x2, 2x1, 1x3, 2x2 and 2x3 grid elements. It has workspace tags and automatic client tagging, mouse and keyboard control as well as an extendable statusbar.<br />
<br />
== [[wmfs]] ==<br />
[http://wmfs.info/ WMFS] (Window Manager From Scratch) is a lightweight and highly configurable tiling window manager for X. It can be configured with a configuration file, supports Xft ([http://www.freetype.org/ Freetype]) fonts and is compliant with the Extended Window Manager Hints ([http://standards.freedesktop.org/wm-spec/wm-spec-1.3.html EWMH]) specifications. It's still under heavy development<br />
<br />
== [[wmii]] ==<br />
[http://wmii.suckless.org/ wmii] uses a manual style of management -- the user must manually move windows around. While more work than dynamic management, this also provides more flexibility by default. wmii is configured via a Plan 9 file system, which allows any program that can work with text to configure it. The default configuration is in bash and rc (the Plan 9 shell), but programs exist written in ruby, for example. It has a status bar and launcher built in, but no system tray.<br />
<br />
== [[xmonad]] ==<br />
[http://xmonad.org/ xmonad] is written in Haskell, and it is configured in Haskell. This allows great flexibility, although this can be confusing at times. For all configuration changes, xmonad must be recompiled. However, this normally takes ~2 seconds, and can be done without affecting running programs. XMonad, in itself, is quite simple, but there is a large library called xmonad-contrib which provides many other features. XMonad does not include any utility programs, but others, such as [[dzen2]] and [[xmobar]], make it easy to display such things as workspace information. xmonad does not come with an application launcher, but there are modules in xmonad-contrib which provide one, as well as programs like [[dmenu]] and gmrun. There is no system tray, but this can be provided by applications such as stalonetray and trayer.</div>Atsutanehttps://wiki.archlinux.org/index.php?title=Comparison_of_tiling_window_managers&diff=101748Comparison of tiling window managers2010-04-01T14:10:16Z<p>Atsutane: i3: removed AUR Link, as I moved the package to community two days ago</p>
<hr />
<div>[[Category:Tiling WMs (English)]]<br />
This article provides an unbiased comparison of the most popular ''tiling'' [[window manager]]s (as opposed to ''floating'' window managers).<br />
<br />
== Comparison table ==<br />
The following table lists the most popular tiling window managers alongside notable features, providing readers with a quick overview. More in-depth descriptions follow this table.<br />
<br />
{| border="1" cellpadding="4" cellspacing="0"<br />
|+ Comparison of tiling window managers<br />
! Window Manager !! Written in !! Configured with !! Management style !! System tray support !! On-the-fly reload !! Information bars !! Compositing !! Default layouts !! Pixel usage || External control !! Library !! Multiple (n) monitor behavior<br />
|-<br />
! [[Awesome]]<br />
| C || Lua || Dynamic || Built-in || Yes || Built-in, images and text || Yes, with an external manager such as xcompmgr || || 1-pix borders, h-tab titles || || XCB ||<br />
|-<br />
! [[dwm]]<br />
| C || C (recompile) || Dynamic || None || [[Dwm#Restart dwm without logging out or closing programs | Optional]] || Built-in, reads from root window name || Yes, with an external manager such as xcompmgr || v-stack, max || || || Xlib || n regions, 9 workspaces fixed to each region<br />
|-<br />
! [[i3]] <br />
| C || Text || Manual || None || Yes || [http://aur.archlinux.org/packages.php?ID=26104 i3status] with dzen2 or xmobar || No || rows, columns, v-tab, h-tab, max || 2-pix borders, titles || || XCB ||<br />
|-<br />
! [[Ion3]] <br />
| C || Lua || Manual || trayion || Yes || configurable || ? || h-tab, max || || || ||<br />
|-<br />
! [[Musca]]<br />
| C || Text, own command set, C(recompile) || Manual || None || No, but allows running of musca commands on the fly || None || No || h-split, v-split, max || || commands, hooks || ||<br />
|-<br />
! [[Ratpoison]]<br />
| C || Text || Manual || None || Yes || Yes || No || max || || || ||<br />
|-<br />
! [[Scrotwm]]<br />
| C || Text || Dynamic || None || Yes || Built-in, reads from user script || No || nv-stack, nh-stack, max || 1-pix borders, no titles || || Xlib || n regions, 10 workspaces visible in any region<br />
|-<br />
! [[Stumpwm]]<br />
| Lisp || Lisp || Manual || None || Yes || Yes || No || || || || ||<br />
|-<br />
! [[subtle]]<br />
| C || Ruby || Manual || Built-in || Yes || Built-in (Ruby) || No || grid || variable borders, no titles || hooks || ||<br />
|-<br />
! [[wmfs]]<br />
| C || Text || Dynamic || None || Yes || Built-in, set with command, color text || No || nh-stack (and invert), nv-stack (and invert), mirror-v, mirror-h, grid, max || variable borders, titles || commands || Xlib ||<br />
|-<br />
! [[wmii]]<br />
| C || Anything || Manual || None || Yes || Built-in || No || columns, max, v-tab || titles || Plan 9 filesystem || || one big region<br />
|-<br />
! [[xmonad]]<br />
| Haskell || Haskell || Dynamic || None || Yes || No || Yes, with xmonad-contrib and an external manager || nv-stack, nh-stack, max || 1-pix borders, no titles || || Xlib || n regions, 9 workspaces visible in any region<br />
|}<br />
<br />
=== Management style ===<br />
Dynamic management emphasizes automatic management of window layouts for speed and simplicity. Manual management emphasizes manual adjustment of layout and sizing with potentially more precise control, at the cost of more time spent moving and sizing windows.<br />
<br />
=== Layouts ===<br />
A number of common layout types appear in several tiling WMs, although the terminology varies somewhat.<br />
* max: one window shown fullscreen (with or without a status bar, title and borders). Aka: monocle (dwm).<br />
* h-stack: master area in top half, other windows stack up horizontally in the bottom half. The master area may be resizable. May be inverted top-bottom (wmfs). Aka: bottom stack (dwm).<br />
* v-stack: master area in left half, other windows stack up vertically in the right half. The master area may be resizable. May be inverted left-right (wmfs). Aka: tile (dwm).<br />
* nh-stack: h-stack allowing >=1 windows in master area. Aka: nbstack (dwm)<br />
* nv-stack: v-stack allowing >=1 windows in master area. Aka: ntile (dwm)<br />
* mirror-h: nh-stack with stacks above and below the master area<br />
* mirror-v: nv-stack with stacks to the left and right of the master area<br />
* h-tab: one window shown fullscreen with all window titles shown horizontally (like browser tabs)<br />
* v-tab: one window shown fullscreen with all window titles shown vertically. Aka: stack (wmii).<br />
* h-split: a keybinding splits the current window horizontally creating space for another<br />
* v-split: a keybinding splits the current window horizontally creating space for another<br />
* columns: manual layout style which treats windows as belonging to vertical columns<br />
* rows: manual layout style which treats windows as belonging to horizontal rows<br />
* grid: window positions and sizes based on a regular NxM grid. May be automatic (like wmfs) or manual (like Subtle).<br />
<br />
=== Key bindings ===<br />
Tiling window managers are usually designed to be used entirely with the keyboard or with keyboard & mouse. This is for speed (reaching for and moving a mouse is slow) and ease of use. Sensible key bindings are crucial to making workflow fast and efficient. Some default sets are better than others, but generally the keys can be rebound as desired by the user.<br />
<br />
== [[Awesome]] ==<br />
[http://awesome.naquadah.org/ awesome] on its own can provide many of the functions of a desktop environment. Configured in Lua, it has a system tray, information bar, and launcher built in. There are extensions available to it written in Lua, but they are less smoothly integrated than those of XMonad. Awesome uses XCB as opposed to Xlib, which may result in a speed increase. Awesome has other features as well, such as an early replacement for notification-daemon, a right-click menu similar to that of the *box window managers, and many other things.<br />
<br />
== [[dwm]] ==<br />
[http://dwm.suckless.org/ dwm] is by far the simplest of the window managers listed here. It does not include a tray app or automatic launcher, although dmenu integrates well with it, as they are from the same author. It has no text configuration file. Configuration is done entirely by modifying the C source code, and it must be recompiled and restarted each time it is changed. It is more lightweight than the others listed here, at the expense of certain features.<br />
<br />
== [[i3]] ==<br />
Home: http://i3.zekjur.net/<br />
i3 was created because wmii, the authors' favorite window manager at the time, didn’t provide some features they wanted. Notable differences are in the areas of Xinerama and the table metaphor. For speed the Plan 9 interface of wmii is not implemented.<br />
<br />
== [[ion3]] ==<br />
Ion is a tiling window manager with tabbed frames. It uses Lua as an embedded interpreter which handles all of the configuration. It mainly uses the keyboard to access the functions but also supports the mouse for some things.<br />
<br />
== [[Musca]] ==<br />
A simple dynamic window manager for X, with features nicked from ratpoison and dwm:<br />
[http://aerosuidae.net/musca.html Musca] operates as a tiling window manager by default. It uses manual tiling, which means the user determines how the screen is divided into non-overlapping frames, with no restrictions on layout. Application windows always fill their assigned frame, with the exception of transient windows and popup dialog boxes which float above their parent application at the appropriate size. Once visible, applications do not change frames unless so instructed.<br />
<br />
== [[Ratpoison]] ==<br />
[http://www.nongnu.org/ratpoison/ Ratpoison] is configured with a simple text file, as opposed to some of the other tiling window managers which are configured with programming languages. While this reduces flexibility, it can be easier to understand. The information bar in Ratpoison is somewhat different, as it shows only when needed. It serves as both an application launcher as well as a notification bar. Ratpoison does not include a system tray and is quite lightweight.<br />
<br />
== [[Scrotwm]] ==<br />
[http://www.scrotwm.org/ scrotwm] is a small dynamic tiling window manager largely inspired by xmonad and dwm. It tries to stay out of the way so that valuable screen real estate can be used for much more important stuff. It has sane defaults and does not require one to learn a language to do any configuration, being configured with a text file. It was written by hackers for hackers and it strives to be small, compact, and fast. It has a built-in status bar fed from a user-defined script.<br />
<br />
== [[Stumpwm]] ==<br />
[http://www.nongnu.org/stumpwm/ Stumpwm] is similar to [[Ratpoison]] but is written and configured completely in Lisp. It can be reconfigured and reloaded while running. As with wmii and Ratpoison, it is a manual window manager. Its information bar can be set to show constantly or only when needed. It does not include a system tray.<br />
<br />
== [[subtle]] ==<br />
[http://subforge.org/projects/subtle subtle] is a tiling window manager with flexible manual layouts based on predefined sizes and positions corresponding by default to 1x2, 2x1, 1x3, 2x2 and 2x3 grid elements. It has workspace tags and automatic client tagging, mouse and keyboard control as well as an extendable statusbar.<br />
<br />
== [[wmfs]] ==<br />
[http://wmfs.info/ WMFS] (Window Manager From Scratch) is a lightweight and highly configurable tiling window manager for X. It can be configured with a configuration file, supports Xft ([http://www.freetype.org/ Freetype]) fonts and is compliant with the Extended Window Manager Hints ([http://standards.freedesktop.org/wm-spec/wm-spec-1.3.html EWMH]) specifications. It's still under heavy development<br />
<br />
== [[wmii]] ==<br />
[http://wmii.suckless.org/ wmii] uses a manual style of management -- the user must manually move windows around. While more work than dynamic management, this also provides more flexibility by default. wmii is configured via a Plan 9 file system, which allows any program that can work with text to configure it. The default configuration is in bash and rc (the Plan 9 shell), but programs exist written in ruby, for example. It has a status bar and launcher built in, but no system tray.<br />
<br />
== [[xmonad]] ==<br />
[http://xmonad.org/ xmonad] is written in Haskell, and it is configured in Haskell. This allows great flexibility, although this can be confusing at times. For all configuration changes, xmonad must be recompiled. However, this normally takes ~2 seconds, and can be done without affecting running programs. XMonad, in itself, is quite simple, but there is a large library called xmonad-contrib which provides many other features. XMonad does not include any utility programs, but others, such as [[dzen2]] and [[xmobar]], make it easy to display such things as workspace information. xmonad does not come with an application launcher, but there are modules in xmonad-contrib which provide one, as well as programs like [[dmenu]] and gmrun. There is no system tray, but this can be provided by applications such as stalonetray and trayer.</div>Atsutanehttps://wiki.archlinux.org/index.php?title=Package_Maintainers&diff=86306Package Maintainers2009-12-04T13:12:01Z<p>Atsutane: Added myself to the list.</p>
<hr />
<div>[[Category:Arch development (English)]]<br />
== Active Trusted Users ==<br />
{|<br />
|- style="border-bottom:solid 2px"<br />
|style="font-weight: bold;padding-right:120px"|Nick<br />
|style="font-weight: bold;padding-right:200px"|Name<br />
|style="font-weight: bold;"|E-Mail<br />
|-<br />
|[http://aur.archlinux.org/packages.php?K=abhidg&SeB=m abhidg]||Abhishek Dasgupta||abhidg gmail com<br />
|-<br />
|[http://aur.archlinux.org/packages.php?K=angvp&SeB=m angvp]||[[User:Angvp|Angel Velásquez]]||angvp archlinux dot com dot ve<br />
|-<br />
|[http://aur.archlinux.org/packages.php?K=bardo&SeB=m bardo]||Corrado Primier||ilbardo gmail com<br />
|-<br />
|[http://aur.archlinux.org/packages.php?K=bash&SeB=m bash]||Andrea Scarpino||andrea archlinux org<br />
|-<br />
|[http://aur.archlinux.org/packages.php?K=cmb&SeB=m cmb]||Chris Brannon||cmbrannon79 at gmail dot com<br />
|-<br />
|[http://aur.archlinux.org/packages.php?K=Daenyth&SeB=m Daenyth]||Daenyth Blank||Daenyth+Arch gmail com<br />
|-<br />
|[http://aur.archlinux.org/packages.php?K=Dragonlord&SeB=m Dragonlord]||Jaroslav Lichtblau||tu dragonlord cz<br />
|-<br />
|[http://aur.archlinux.org/packages.php?K=elasticdog&SeB=m elasticdog]||Aaron Schaefer||aaron [at] elasticdog dot com<br />
|-<br />
|[http://aur.archlinux.org/packages.php?K=foutrelis&SeB=m foutrelis]||Evangelos Foutras||foutrelis gmail com<br />
|-<br />
|[http://aur.archlinux.org/packages.php?K=gcarrier&SeB=m gcarrier]||Geoffroy Carrier||geoffroy.carrier@koon.fr<br />
|-<br />
|[http://aur.archlinux.org/packages.php?K=Ghost1227&SeB=m Ghost1227]||Dan Griffiths||ghost1227@archlinux.us<br />
|-<br />
|[http://aur.archlinux.org/packages.php?K=louipc&SeB=m louipc]||[[User:louipc|Loui Chang]]||louipc dot ist at gmail company<br />
|-<br />
|[http://aur.archlinux.org/packages.php?K=ornitorrincos&SeB=m ornitorrincos]||Imanol Celaya||ilcra1989@gmail.com<br />
|-<br />
|[http://aur.archlinux.org/packages.php?K=Partition&SeB=m Partition]||Mateusz Herych||heniekk at gmail dot com<br />
|-<br />
|[http://aur.archlinux.org/packages.php?K=pressh&SeB=m pressh]||Ronald van Haren||ronald.archlinux.org<br />
|-<br />
|[http://aur.archlinux.org/packages.php?K=sergej&SeB=m sergej]||Sergej Pupykin||pupykins@gmail.com<br />
|-<br />
|[http://aur.archlinux.org/packages.php?K=StefanHusmann&SeB=m StefanHusmann]||Stefan Husmann||Stefan-husmann@t-online.de<br />
|-<br />
|[http://aur.archlinux.org/packages.php?K=swiergot&SeB=m swiergot]||Jaroslaw Swierczynski||swiergot@gmail.com<br />
|-<br />
|[http://aur.archlinux.org/packages.php?K=thotypous&SeB=m thotypous]||Paulo Matias||matias archlinux-br org<br />
|-<br />
|[http://aur.archlinux.org/packages.php?K=vegai&SeB=m vegai]||Vesa Kaihlavirta||vpkaihla@gmail.com<br />
|-<br />
|[http://aur.archlinux.org/packages.php?SeB=m&K=wonder wonder]||Ionuț Mircea Bîru||ionut at archlinux dot ro<br />
|-<br />
|[http://aur.archlinux.org/packages.php?SeB=m&K=Xyne Xyne]||<--||ca . archlinux @ xyne, in reverse order<br />
|-<br />
|[http://aur.archlinux.org/packages.php?SeB=m&K=Ranguvar Ranguvar] ||Devin Cofer||ranguvar {AT] archlinux {DOT] us<br />
|-<br />
|[http://aur.archlinux.org/packages.php?SeB=m&K=Atsutane Atsutane] ||Thorsten Töpper||atsutane {0x40} freethoughts {0x2E} de<br />
|}<br />
<br />
== Inactive Trusted Users ==<br />
{|<br />
|- style="border-bottom:solid 2px"<br />
|style="font-weight: bold;padding-right:120px"|Nick<br />
|style="font-weight: bold;padding-right:200px"|Name<br />
|style="font-weight: bold;"|E-Mail<br />
|-<br />
|[http://aur.archlinux.org/packages.php?K=even&SeB=m even]||Kessia Pinheiro||kessiapinheiro gmail com<br />
|}<br />
<br />
<br />
<br />
== Some Past Trusted Users ==<br />
{|<br />
|- style="border-bottom:solid 2px"<br />
|style="font-weight: bold;padding-right:120px"|Nick<br />
|style="font-weight: bold;padding-right:200px"|Name<br />
|-<br />
|Allan||Allan McRae<br />
|-<br />
|anders||Anders Bergh<br />
|-<br />
|bfinch||Bob Finch<br />
|-<br />
|brain0||Thomas Bächler<br />
|-<br />
|bjorn||Bjørn Lindeijer<br />
|-<br />
|codemac||Jeff Mickey<br />
|-<br />
|DaNiMoTh||JJ. DaNiMoTh<br />
|-<br />
|dejari||Leslie P. Polzer<br />
|-<br />
|dsa||Douglas Soares de Andrade<br />
|-<br />
|dtw||Phil Dillon-Thiselton<br />
|-<br />
|encelo||Angelo Theodorou<br />
|-<br />
|filoktetes||Robert Emil Berge<br />
|-<br />
|firmicus||François Charette<br />
|-<br />
|ganja_guru||Varun Acharya<br />
|-<br />
|gummibaerchen||Timm Preetz<br />
|-<br />
|hdoria||Hugo Doria<br />
|-<br />
|iphitus||James Rayner<br />
|-<br />
|mOLOk||Alessio Bolognino<br />
|-<br />
|nesl247||Alex Heck<br />
|-<br />
|Neverth||Mikko Seppälä<br />
|-<br />
|phrakture||Aaron Griffin<br />
|-<br />
|Pierre||Pierre Schmitz<br />
|-<br />
|pizzapunk||Alexander Fehr<br />
|-<br />
|pjmattal||Paul Mattal<br />
|-<br />
|Romashka||Roman Kyrylych<br />
|-<br />
|shastry||Vinay S Shastry<br />
|-<br />
|Snowman||Eric Bélanger<br />
|-<br />
|shinlun||Shinlun Hsieh<br />
|-<br />
|STiAT||Georg Grabler<br />
|-<br />
|tardo||Shehzad Qureshi<br />
|-<br />
|voidnull||Giovanni Scafora<br />
|-<br />
|wizzomafizzo||Callan Barrett<br />
|-<br />
|Xilon||Sebastian Nowicki<br />
|-<br />
|xterminus||Charles Mauch<br />
|-<br />
|zeus||Zhukov Pavel<br />
|}</div>Atsutanehttps://wiki.archlinux.org/index.php?title=Comparison_of_tiling_window_managers&diff=82891Comparison of tiling window managers2009-11-10T16:38:52Z<p>Atsutane: /* Comparison Table */</p>
<hr />
<div>[[Category:Desktop environments (English)]]<br />
<br />
=== Comparison Table ===<br />
{| border="1" cellpadding="4" cellspacing="0"<br />
|+ Comparison of tiling window managers. See also [[Common Apps]].<br />
! Window Manager !! Written in !! Configured with !! Management style !! System tray support !! On-the-fly reload !! Information bars !! Compositing<br />
|-<br />
! [[Awesome]]<br />
| C || Lua || Dynamic || Built-in || Yes || Built-in, images and text || Yes, with an external manager such as xcompmgr<br />
|-<br />
! [[dwm]]<br />
| C || C || Dynamic || None || [[Dwm#Restart_dwm_without_logging_out_or_closing_programs | Optional]] || Built-in, reads from root window name || No<br />
|-<br />
! [[i3]] <br />
| C || Text || Manual || None || Yes || [http://aur.archlinux.org/packages.php?ID=26104 i3status] with dzen2 or xmobar || No<br />
|-<br />
! [[Ion3]] <br />
| C || Lua || Manual || trayion || Yes || configurable || ? <br />
|-<br />
! [[Musca]]<br />
| C || C || Manual || None || No, but allows running of musca commands on the fly || None || No<br />
|-<br />
! [[Ratpoison]]<br />
| C || Text || Manual || None || Yes || Yes || No<br />
|-<br />
! [[Scrotwm]]<br />
| C || Text || Dynamic || None || Yes || Built-in || No<br />
|-<br />
! [[Stumpwm]]<br />
| Lisp || Lisp || Manual || None || Yes || Yes || No<br />
|-<br />
! [[subtle]]<br />
| C || Ruby || Manual || Built-in || Yes || Built-in (Ruby) || No<br />
|-<br />
! [[wmii]]<br />
| C || Anything || Manual || None || Yes || Built-in || No<br />
|-<br />
! [[xmonad]]<br />
| Haskell || Haskell || Dynamic || None || Yes || No || Yes, with xmonad-contrib and an external manager<br />
|}<br />
<br />
=== [[Awesome]] ===<br />
[http://awesome.naquadah.org/ awesome] on its own can provide many of the functions of a desktop environment. Configured in Lua, it has a system tray, information bar, and launcher built in. There are extensions available to it written in Lua, but they are less smoothly integrated than those of XMonad. Awesome uses XCB as opposed to Xlib, which may result in a speed increase. Awesome has other features as well, such as an early replacement for notification-daemon, a right-click menu similar to that of the *box window managers, and many other things.<br />
<br />
=== [[dwm]] ===<br />
[http://dwm.suckless.org/ dwm] is by far the simplest of the window managers listed here. It does not include a tray app or automatic launcher, although dmenu integrates well with it, as they are from the same author. Configuration is done in C, and dwm must be recompiled each time the configuration updates. Different from the other WM's, it must be restarted to apply configuration changes. It is more lightweight than the others listed here, at the expense of certain features.<br />
<br />
=== [[i3]] ===<br />
Home: http://i3.zekjur.net/, AUR: http://aur.archlinux.org/packages.php?ID=24720.<br />
i3 was created because wmii, the authors' favorite window manager at the time, didn’t provide some features they wanted. Notable differences are in the areas of Xinerama and the table metaphor. For speed the 9P interface of wmii is not implemented.<br />
<br />
=== [[ion3]] ===<br />
Ion is a tiling window manager with tabbed frames. It uses Lua as an embedded interpreter which handles all of the configuration. It mainly uses the keyboard to access the functions but also supports the mouse for some things.<br />
<br />
=== [[Musca]] ===<br />
A simple dynamic window manager for X, with features nicked from ratpoison and dwm:<br />
[http://aerosuidae.net/musca.html Musca] operates as a tiling window manager by default. It uses manual tiling, which means the user determines how the screen is divided into non-overlapping frames, with no restrictions on layout. Application windows always fill their assigned frame, with the exception of transient windows and popup dialog boxes which float above their parent application at the appropriate size. Once visible, applications do not change frames unless so instructed.<br />
<br />
=== [[Ratpoison]] ===<br />
[http://www.nongnu.org/ratpoison/ Ratpoison] is configured with simple text file, as opposed to the other window managers above, which are configured with programming languages. While this reduces flexibility, it can be easier to understand. The information bar in Ratpoison is somewhat different, as it shows only when needed. It serves as both an application launcher as well as a notification bar. Ratpoison does not include a system tray and is quite lightweight.<br />
<br />
=== [[Scrotwm]] ===<br />
[http://www.scrotwm.org/ scrotwm] is a small dynamic tiling window manager largely inspired by xmonad and dwm. It tries to stay out of the way so that valuable screen real estate can be used for much more important stuff. It has sane defaults and does not require one to learn a language to do any configuration. It was written by hackers for hackers and it strives to be small, compact, and fast.<br />
<br />
=== [[Stumpwm]] ===<br />
[http://www.nongnu.org/stumpwm/ Stumpwm] is similar to [[Ratpoison]] but is written and configured completely in Lisp. It can be reconfigured and reloaded while running. As with wmii and Ratpoison, it is a manual window manager. Its information bar can be set to show constantly or only when needed. It does not include a system tray.<br />
<br />
=== [[subtle]] ===<br />
[http://unexist.scrapping.cc/projects/show/subtle subtle] is a another tiling window manager with a very flexible and dynamical layout, client and view tagging, mouse and keyboard control as well as an extendable statusbar.<br />
<br />
=== [[wmii]] ===<br />
[http://wmii.suckless.org/ wmii] uses a different style of window management than those listed above. The user must manually move windows around. While more work, this also provides more flexibility by default. wmii is configured via the plan 9 file system, which allows any program that can work with text to configure it. The default configuration is in bash and rc (the plan 9 shell), but programs exist written in ruby, for example. It has a status bar and launcher built in, but no system tray.<br />
<br />
=== [[xmonad]] ===<br />
[http://xmonad.org/ xmonad] is written in Haskell, and it is configured in Haskell. This allows great flexibility, although this can be confusing at times. For all configuration changes, xmonad must be recompiled. However, this normally takes ~2 seconds, and can be done without affecting running programs. XMonad, in itself, is quite simple, but there is a large library called xmonad-contrib which provides many other features. XMonad does not include any utility programs, but others, such as [[dzen2]] and xmobar, make it easy to display such things as workspace information. xmonad does not come with an application launcher, but there are modules in xmonad-contrib which provide one, as well as programs like [[dmenu]] and gmrun. There is no system tray, but this can be provided by applications such as stalonetray and trayer.</div>Atsutane