Gentoo Forums
Gentoo Forums
Gentoo Forums
Quick Search: in
too many and too less terminal-emulators
View unanswered posts
View posts from last 24 hours

Goto page 1, 2, 3  Next  
Reply to topic    Gentoo Forums Forum Index Off the Wall
View previous topic :: View next topic  
Author Message
LoTeK
Apprentice
Apprentice


Joined: 26 Jul 2012
Posts: 270

PostPosted: Tue Jan 22, 2013 1:42 pm    Post subject: too many and too less terminal-emulators Reply with quote

I think I'm going mad while searching for a good terminal emulator...!

Until now I was quite satisfied with terminator as a drop-down terminal (with the hidden keybinding), 4 urxvt to edit text files with vim and to start/compile programs, but now this damn solarized theme won't work with urxvt. I saw that terminator has at least 5 times as much RAM usage as urxvt and although I really like terminator it would be a waste to start 4 terminators only to do basic stuff (I know of course that one can launch one terminator with multiple terminals inside, but I want 4 windows for aesthetic reasons :) ).

Moreover I like yakuake but don't want to install a billion of dependencies (I'm using openbox with gtk+ applications). What I definitely need is real transparency and 256 colors, but nothing else. No GUI configuration, pure lightweight...!

What do you use? Am I missing an important emulator beside lxterminal, gnometerminal, konsole, guake, tilda, yakuake, terminator, urxvt, xterm, evilvte?
_________________
"I want to see gamma rays! I want to hear X-rays! Do you see the absurdity of what I am? I can't even express these things properly because I have to conceptualize complex ideas in this stupid limiting spoken language!"


Last edited by LoTeK on Tue Jan 22, 2013 1:58 pm; edited 2 times in total
Back to top
View user's profile Send private message
sikpuppy
n00b
n00b


Joined: 12 Jun 2012
Posts: 34
Location: Central Coast, NSW

PostPosted: Tue Jan 22, 2013 1:53 pm    Post subject: Reply with quote

Have a look here. It has some variants of xterm and some links to other terminals. It also has some more information you may or may not find useful.

To have true transparency you need a composite manager of some description, with openbox you are maybe limited to something like x11-misc/xcompmgr. That's if I recall correctly.
Back to top
View user's profile Send private message
ppurka
Advocate
Advocate


Joined: 26 Dec 2004
Posts: 3182

PostPosted: Tue Jan 22, 2013 1:54 pm    Post subject: Reply with quote

yeahconsole - a dropdown console.

It can embed either xterm or urxvt, but you get at most tabbed windows with urxvt, not tiled. Also no transparency. But it is extremely lightweight and consists of only one C file.
_________________
emerge --quiet redefined | E17 vids: I, II
Back to top
View user's profile Send private message
LoTeK
Apprentice
Apprentice


Joined: 26 Jul 2012
Posts: 270

PostPosted: Tue Jan 22, 2013 2:13 pm    Post subject: Reply with quote

Is it true that transparency only depends on the composite manager? because I use compton (before that I've used xcompmgr, but it couldn't draw shadow around window boarders) and I just used
Code:
compton-trans -o 80
with a mouse click on yeahconsole and it's transparent now!!

(it also works with transset)

yeahconsole is truly nice... One single C-file sounds like an enlightenment :)
_________________
"I want to see gamma rays! I want to hear X-rays! Do you see the absurdity of what I am? I can't even express these things properly because I have to conceptualize complex ideas in this stupid limiting spoken language!"


Last edited by LoTeK on Wed Jan 23, 2013 11:16 am; edited 1 time in total
Back to top
View user's profile Send private message
sikpuppy
n00b
n00b


Joined: 12 Jun 2012
Posts: 34
Location: Central Coast, NSW

PostPosted: Tue Jan 22, 2013 2:15 pm    Post subject: Reply with quote

LoTeK wrote:
Is it true that transparency only depends on the composite manager? because I have compton (before that I had xcompmgr, but it couldn't draw shadow around window boarders) and I just used
Code:
compton-trans -o 80
with a mouse click on yeahconsole and it's transparent now!!

(it also works with transset)

yeahconsole is truly nice... One single C-file sounds like an enlightenment :)

You can get pseudo transparency without compositing, but when you move a window the background remains static until you release the window. Then the background is redrawn under the window.
Back to top
View user's profile Send private message
LoTeK
Apprentice
Apprentice


Joined: 26 Jul 2012
Posts: 270

PostPosted: Tue Jan 22, 2013 2:22 pm    Post subject: Reply with quote

yes I know, but that unacceptable ugly! If I have to work without compositing (which is the resource-hungriest process when I don't do anything) then without any transparency..
_________________
"I want to see gamma rays! I want to hear X-rays! Do you see the absurdity of what I am? I can't even express these things properly because I have to conceptualize complex ideas in this stupid limiting spoken language!"
Back to top
View user's profile Send private message
sikpuppy
n00b
n00b


Joined: 12 Jun 2012
Posts: 34
Location: Central Coast, NSW

PostPosted: Tue Jan 22, 2013 2:35 pm    Post subject: Reply with quote

erm67 wrote:
sikpuppy wrote:

To have true transparency you need a composite manager of some description, with openbox you are maybe limited to something like x11-misc/xcompmgr. That's if I recall correctly.

https://github.com/chjj/compton

Its called compton now ;-)

very good I have to say ....

Wow thanks. I knew work on xcompmgr was patchy so this is good. *edit* talking to myself now :S
Back to top
View user's profile Send private message
_brian_
n00b
n00b


Joined: 02 Aug 2011
Posts: 16

PostPosted: Tue Jan 22, 2013 5:46 pm    Post subject: Reply with quote

sikpuppy wrote:
erm67 wrote:
sikpuppy wrote:

To have true transparency you need a composite manager of some description, with openbox you are maybe limited to something like x11-misc/xcompmgr. That's if I recall correctly.

https://github.com/chjj/compton

Its called compton now ;-)

very good I have to say ....

Wow thanks. I knew work on xcompmgr was patchy so this is good. *edit* talking to myself now :S


This is exponentially better than xcompmgr... it has configuration options for everything and it doesn't lag or crash. I thought there would never be a good standalone compositor, thanks :D
Back to top
View user's profile Send private message
LoTeK
Apprentice
Apprentice


Joined: 26 Jul 2012
Posts: 270

PostPosted: Tue Jan 22, 2013 6:30 pm    Post subject: Reply with quote

yes I also like compton very much, but it would be nice if there were even more features like wobbing- and animated windows etc...
_________________
"I want to see gamma rays! I want to hear X-rays! Do you see the absurdity of what I am? I can't even express these things properly because I have to conceptualize complex ideas in this stupid limiting spoken language!"
Back to top
View user's profile Send private message
Bones McCracker
Veteran
Veteran


Joined: 14 Mar 2006
Posts: 1553
Location: U.S.A.

PostPosted: Wed Jan 23, 2013 7:42 am    Post subject: Reply with quote

I use urxvt. It's fast, flexible, reliable, and efficient. Configured to run as urxvtd/urxvt, instances open in the blink of an eye and use negligible RAM. Transparency is counterproductive in a terminal emulator, and wobbly windows are for children. :wink:
Back to top
View user's profile Send private message
LoTeK
Apprentice
Apprentice


Joined: 26 Jul 2012
Posts: 270

PostPosted: Wed Jan 23, 2013 8:53 am    Post subject: Reply with quote

Quote:
I use urxvt. It's fast, flexible, reliable, and efficient. Configured to run as urxvtd/urxvt, instances open in the blink of an eye and use negligible RAM.

yes I know, I will go on using urxvt too...

Quote:
Transparency is counterproductive in a terminal emulator, and wobbly windows are for children. :wink:

well I agree with the wobbly windows but transparency can be practical. When I dig into a tutorial than it's often useful to move a transparent terminal over the pdf, then one can read and try things out even with limited monitor space. A webbrowser is always open too and with more then one programtextfile open at the same time I can't live without transparency...

EDIT: btw, what colorscheme do you use with urxvt? I want to set up this solarized theme but I have really hard problems, can you post your .Xdefault?
_________________
"I want to see gamma rays! I want to hear X-rays! Do you see the absurdity of what I am? I can't even express these things properly because I have to conceptualize complex ideas in this stupid limiting spoken language!"
Back to top
View user's profile Send private message
Bones McCracker
Veteran
Veteran


Joined: 14 Mar 2006
Posts: 1553
Location: U.S.A.

PostPosted: Wed Jan 23, 2013 9:30 am    Post subject: Reply with quote

I use .Xresources (which works with xrdb). Same format. Doesn't look like the old way is going away, though.

I'm not at my computer, but can send it later.
Back to top
View user's profile Send private message
LoTeK
Apprentice
Apprentice


Joined: 26 Jul 2012
Posts: 270

PostPosted: Wed Jan 23, 2013 9:34 am    Post subject: Reply with quote

ok, thanks..

What is the difference between .Xresources and .Xdefault? I have to put
Code:
xrdb .Xdefaults
in my autostart file, otherwise my settings don't work, is this normal?
_________________
"I want to see gamma rays! I want to hear X-rays! Do you see the absurdity of what I am? I can't even express these things properly because I have to conceptualize complex ideas in this stupid limiting spoken language!"
Back to top
View user's profile Send private message
erm67
Tux's lil' helper
Tux's lil' helper


Joined: 01 Nov 2005
Posts: 130
Location: somewhere in Berlusconia.

PostPosted: Wed Jan 23, 2013 11:03 am    Post subject: Reply with quote

sikpuppy wrote:
erm67 wrote:
sikpuppy wrote:

To have true transparency you need a composite manager of some description, with openbox you are maybe limited to something like x11-misc/xcompmgr. That's if I recall correctly.

https://github.com/chjj/compton

Its called compton now ;-)

very good I have to say ....

Wow thanks. I knew work on xcompmgr was patchy so this is good. *edit* talking to myself now :S


:lol: :lol: :lol: Sorry, reading further I noticed that loTek was also using compton so I thought everybody knows already about the project, let's delete the useless reply ....
_________________
Truck!!
A posse ad esse non valet consequentia
Πάντα ῥεῖ
Back to top
View user's profile Send private message
Bones McCracker
Veteran
Veteran


Joined: 14 Mar 2006
Posts: 1553
Location: U.S.A.

PostPosted: Wed Jan 23, 2013 8:10 pm    Post subject: Reply with quote

LoTeK wrote:
ok, thanks..

What is the difference between .Xresources and .Xdefault? I have to put
Code:
xrdb .Xdefaults
in my autostart file, otherwise my settings don't work, is this normal?

That's because the system scripts (specifically /etc/X11/xinit/xinitrc) are looking for Xresources files. You can cram an Xdefaults file into xrdb (it will read pretty much all of the Xdefaults file), but people who tell you to use "Xdefaults" are a decade out of date.
Code:
#!/bin/sh

userresources=$HOME/.Xresources
usermodmap=$HOME/.Xmodmap
sysresources=/etc/X11/xinit/Xresources
sysmodmap=/etc/X11/xinit/Xmodmap

# merge in defaults and keymaps

if [ -f $sysresources ]; then

    xrdb -merge $sysresources

fi

if [ -f $sysmodmap ]; then
    xmodmap $sysmodmap
fi

if [ -f "$userresources" ]; then

    xrdb -merge "$userresources"
fi


You probably followed some old advice you found, or the advice of some uninformed person (there seem to be a lot of them propagating the old way of doing things, just passing on what they read from some other uninformed person, and this seems to have been going on for a full decade -- the .Xdefaults way of doing things has been deprecated for about 10 years).

Note that the scripts that start up X are a confused bowl of spaghetti, and accommodate numerous ways of doing things (e.g., using a display manager versus using 'startx', using system-wide settings versus user-specific settings). Fully understanding how it works requires wading through the various scripts (including what's in /etc/X11, various scripts they invoke, and /etc/init.d/xdm. Some people prefer to use 'startx', which follows a different path through the various scripts.

Here's a fairly recent discussion of Xresources:
https://wiki.archlinux.org/index.php/X_resources

Here is the urxvt-related section of my ~/.Xresources file. Years ago, I painstakingly hand-tuned these colors for easy reading, maximum contrast, etc. Later I realized they were very similar to the Tango colors. So, be advised, there are also "tango" Xresources files out there which are probably quite usable. You can do this at system and/or user level:
Code:
! URxvt settings (class="URxvt"; instance="urxvt")

URxvt*font: xft:DejaVuSansMono:pixelsize=13
!URxvt*font: xft:Bitstream Vera Sans Mono:size=9
!URxvt*font: x:-*-fixed-medium-r-normal-*-14-*-*-*-*-*-*-*

URxvt*scrollstyle: plain
URxvt*scrollBar: true
URxvt*scrollBar_right: true
URxvt*iconFile: /usr/share/pixmaps/gnome-color-xterm.png

URxvt*color0: #000010       // black -> black russian
URxvt*color1: #9e1828       // red -> tamarillo
URxvt*color2: #aece92       // green -> pine glade
URxvt*color3: #968a38       // yello -> sycamore
URxvt*color4: #414171       // blue -> east bay
URxvt*color5: #963c59       // magenta -> vin rouge
URxvt*color6: #418179       // cyan -> viridian
URxvt*color7: #bebebe       // white -> silver
URxvt*color8: #666666       // bright black -> dove gray
URxvt*color9: #cf6171       // bright red -> chestnut rose
URxvt*color10: #c5f779      // gright green -> sulu
URxvt*color11: #fff796      // bright yellow -> witch haze
URxvt*color12: #4186be      // bright blue -> steel blue
URxvt*color13: #cf9ebe      // bright magenta -> viola
URxvt*color14: #71bebe      // bright cyan -> neptune
URxvt*color15: #ffffff      // bright white -> white
URxvt*background: 0
URxvt*foreground: 15
URxvt*cursorColor: magenta


Here is my ~/.xsession file (you can do this at system or user level (user level preempts system level). Most of mine here pertains to the wm I use (dwm), but the first line is how I start the urxvt back end (urxvtd), which allows me to later call up multiple urxvtc instances. If you're somebody who typically has multiple terminal emulation windows open at a time, this is a very memory-efficient way to go, and it makes opening terminal windows happen instantaneously (literally).
Code:
#!/bin/sh

# start X terminal emulation daemon
/usr/bin/urxvtd -q -o -f

# set color of desktop
xsetroot -solid "#333333"

# if not already running, start status bar app
pgrep -f dwmstat >/dev/null || /usr/local/bin/dwmstat &

# start dwm, having the process replace this shell
exec /usr/bin/dwm
Back to top
View user's profile Send private message
LoTeK
Apprentice
Apprentice


Joined: 26 Jul 2012
Posts: 270

PostPosted: Wed Jan 23, 2013 9:17 pm    Post subject: Reply with quote

Quote:

That's because the system scripts (specifically /etc/X11/xinit/xinitrc) are looking for Xresources files. You can cram an Xdefaults file into xrdb (it will read pretty much all of the Xdefaults file), but people who tell you to use "Xdefaults" are a decade out of date.

so it's save and better to delete the .Xdefaults file and move everything into an .Xresource file !?
Quote:
You probably followed some old advice you found, or the advice of some uninformed person (there seem to be a lot of them propagating the old way of doing things, just passing on what they read from some other uninformed person, and this seems to have been going on for a full decade -- the .Xdefaults way of doing things has been deprecated for about 10 years).
hehe yes, thats a very common phenomena...

Quote:
Note that the scripts that start up X are a confused bowl of spaghetti, and accommodate numerous ways of doing things (e.g., using a display manager versus using 'startx', using system-wide settings versus user-specific settings). Fully understanding how it works requires wading through the various scripts (including what's in /etc/X11, various scripts they invoke, and /etc/init.d/xdm. Some people prefer to use 'startx', which follows a different path through the various scripts.

Well I use "startx" because I don't want an Xserver running every time I log in. With tmux/screen and vim one can program and do everything else except pdf-viewing/graphical webbrowsing (AFAIK), I recognized a few weeks ago that I can listen to music with mplayer in the CLI-environment :)
Do you use a login-manager like slim? the main reason why I don't start an X-server every time is that I think the system uses less power and the boot time is a few seconds faster but even so my akku is empty very fast... and maybe my system is a bit saver this way, or is this bullshit?

Quote:
Here is the urxvt-related section of my ~/.Xresources file. Years ago, I painstakingly hand-tuned these colors for easy reading, maximum contrast, etc. Later I realized they were very similar to the Tango colors. So, be advised, there are also "tango" Xresources files out there which are probably quite usable. You can do this at system and/or user level:
Yesterday I've tuned my colors nearly the whole day and was ready for a mental hospital... :) I recently discovered the solarized scheme that I didn't like at first sight but its very practical for programming and the eyes won't hurt after 12 hours starring at the screen.. I don't like the tango theme much, but thanks anyway...

Quote:
Here is my ~/.xsession file (you can do this at system or user level (user level preempts system level). Most of mine here pertains to the wm I use (dwm), but the first line is how I start the urxvt back end (urxvtd), which allows me to later call up multiple urxvtc instances. If you're somebody who typically has multiple terminal emulation windows open at a time, this is a very memory-efficient way to go, and it makes opening terminal windows happen instantaneously (literally).

I just googled dwm a bit, seems to be very cool.. are there many differences between openbox and dwm? although I'm quite comfortable with openbox I'd like to try other wms.. The speed of urxvt (urxvtd) is really insane, especially when compared with terminator...
_________________
"I want to see gamma rays! I want to hear X-rays! Do you see the absurdity of what I am? I can't even express these things properly because I have to conceptualize complex ideas in this stupid limiting spoken language!"
Back to top
View user's profile Send private message
Fran
Guru
Guru


Joined: 29 Feb 2004
Posts: 518
Location: Coruña (Spain)

PostPosted: Wed Jan 23, 2013 9:30 pm    Post subject: Reply with quote

BoneKracker wrote:
Code:

URxvt*color0: #000010       // black -> black russian
URxvt*color1: #9e1828       // red -> tamarillo
URxvt*color2: #aece92       // green -> pine glade
URxvt*color3: #968a38       // yello -> sycamore
URxvt*color4: #414171       // blue -> east bay
URxvt*color5: #963c59       // magenta -> vin rouge
URxvt*color6: #418179       // cyan -> viridian
URxvt*color7: #bebebe       // white -> silver
URxvt*color8: #666666       // bright black -> dove gray
URxvt*color9: #cf6171       // bright red -> chestnut rose
URxvt*color10: #c5f779      // gright green -> sulu
URxvt*color11: #fff796      // bright yellow -> witch haze
URxvt*color12: #4186be      // bright blue -> steel blue
URxvt*color13: #cf9ebe      // bright magenta -> viola
URxvt*color14: #71bebe      // bright cyan -> neptune
URxvt*color15: #ffffff      // bright white -> white
URxvt*background: 0
URxvt*foreground: 15
URxvt*cursorColor: magenta


I've been using those colors since you posted them long ago :P. Thanks, they are still the nicest I've found.
Back to top
View user's profile Send private message
LoTeK
Apprentice
Apprentice


Joined: 26 Jul 2012
Posts: 270

PostPosted: Wed Jan 23, 2013 10:11 pm    Post subject: Reply with quote

Is there a way to set the size of the urxvt window with pixel and not with character sizes? and if not how can I find the exact ratio from the font? I'm using xft fonts (liberation mono)
_________________
"I want to see gamma rays! I want to hear X-rays! Do you see the absurdity of what I am? I can't even express these things properly because I have to conceptualize complex ideas in this stupid limiting spoken language!"
Back to top
View user's profile Send private message
Bones McCracker
Veteran
Veteran


Joined: 14 Mar 2006
Posts: 1553
Location: U.S.A.

PostPosted: Wed Jan 23, 2013 10:53 pm    Post subject: Reply with quote

LoTeK wrote:
Quote:

That's because the system scripts (specifically /etc/X11/xinit/xinitrc) are looking for Xresources files. You can cram an Xdefaults file into xrdb (it will read pretty much all of the Xdefaults file), but people who tell you to use "Xdefaults" are a decade out of date.

so it's save and better to delete the .Xdefaults file and move everything into an .Xresource file !?

I would try just renaming it .Xresources, delete the shell statement you added to load it (scripts called by startx should do that for you).

If you want to double-check your file or understand more, read the link I provided above, and read the article at the link below and follow the external links at the bottom:
http://en.wikipedia.org/wiki/X_resources

That won't help you understand how Gentoo's scripts which start X are set up, but it will help you understand how X uses the resources, the correct format of the file, neat stuff you can do, etc.

LoTeK wrote:
Quote:
Note that the scripts that start up X are a confused bowl of spaghetti, and accommodate numerous ways of doing things (e.g., using a display manager versus using 'startx', using system-wide settings versus user-specific settings). Fully understanding how it works requires wading through the various scripts (including what's in /etc/X11, various scripts they invoke, and /etc/init.d/xdm. Some people prefer to use 'startx', which follows a different path through the various scripts.

Well I use "startx" because I don't want an Xserver running every time I log in. With tmux/screen and vim one can program and do everything else except pdf-viewing/graphical webbrowsing (AFAIK), I recognized a few weeks ago that I can listen to music with mplayer in the CLI-environment :)

A man who feels as I do.

LoTeK wrote:
Do you use a login-manager like slim? the main reason why I don't start an X-server every time is that I think the system uses less power and the boot time is a few seconds faster but even so my akku is empty very fast... and maybe my system is a bit saver this way, or is this bullshit?

I actually use xdm (the real xdm, which comes with X). It's probably a waste of resources, and I've been thinking lately about not doing this any more. After abandoning Gnome and KDE years ago, and trying to understand how X Windows runs, it seemed like some of it (including some security-related things) assumed a "display manager" was in use. So I opted to use theirs, even though it's ugly and was originally built just to serve as an example. However, I have come to think it really doesn't add much value, unless you use X over the network, use a "session manager" (e.g., open what you had open last time), want a graphical way to choose between various window managers, etc. I think Gentoo configures X to ignore network connections by default.

LoTeK wrote:
Quote:
Here is my ~/.xsession file (you can do this at system or user level (user level preempts system level). Most of mine here pertains to the wm I use (dwm), but the first line is how I start the urxvt back end (urxvtd), which allows me to later call up multiple urxvtc instances. If you're somebody who typically has multiple terminal emulation windows open at a time, this is a very memory-efficient way to go, and it makes opening terminal windows happen instantaneously (literally).

I just googled dwm a bit, seems to be very cool.. are there many differences between openbox and dwm? although I'm quite comfortable with openbox I'd like to try other wms.. The speed of urxvt (urxvtd) is really insane, especially when compared with terminator...

dwm is extremely minimalist. Most people would be better off with something similar that comes more fully-featured out of the box (such as Awesome or Xmonad. All three of these (and a few others too) are "tiling" window managers. That's the main difference with something like the *box window managers (and most window managers in general). A tiling window manager works kind of like tmux, to break up your screen into windows that fully occupy the screen. It happens automatically, though, and you can easily move and resize them, move them amongst workspaces, etc.

If you can do a little C programming, then you might like dwm (which is very bare-bones). I'd recommend first checking out Awesome or Xmonad. (By the way, if you want to google Awesome, try "Awesome window manager" or you'll get a million pages of nothing relevant.)

If you are obsessively minimalist, however, dwm is unique in that it's only about 2,000 lines of C and very efficient.
Back to top
View user's profile Send private message
NotQuiteSane
Guru
Guru


Joined: 30 Jan 2005
Posts: 471
Location: Klamath Falls, Jefferson, USA, North America, Midgarth

PostPosted: Thu Jan 24, 2013 2:17 am    Post subject: Reply with quote

BoneKracker wrote:
I use urxvt. It's fast, flexible, reliable, and efficient. Configured to run as urxvtd/urxvt, instances open in the blink of an eye and use negligible RAM. Transparency is counterproductive in a terminal emulator, and wobbly windows are for children. :wink:


You don't need transparency if all your backgrounds are black. Fancy backgrounds are for children. And Those who don't actually use their computers

NQS
_________________
These opinions are mine, mine I say! Piss off and get your own.

As I see it -- An irregular blog, Improved with new location

To delete French language packs from system use 'sudo rm -fr /'
Back to top
View user's profile Send private message
LoTeK
Apprentice
Apprentice


Joined: 26 Jul 2012
Posts: 270

PostPosted: Thu Jan 24, 2013 2:30 am    Post subject: Reply with quote

NotQuiteSane wrote:
BoneKracker wrote:
I use urxvt. It's fast, flexible, reliable, and efficient. Configured to run as urxvtd/urxvt, instances open in the blink of an eye and use negligible RAM. Transparency is counterproductive in a terminal emulator, and wobbly windows are for children. :wink:


You don't need transparency if all your backgrounds are black. Fancy backgrounds are for children. And Those who don't actually use their computers

NQS


yes, except you want to see a window behind your terminals or if you have 8 terminals open with a small laptop monitor... but I feel you... read: http://www.pbm.com/~lindahl/real.programmers.html if you don't know it already... I just want to have a puristic, minimalistic interface but also a futuristic foreign style that a apple-windows housewife don't even recognize, and transparency is practice and nice!! ... but if you are real hardcore, then...
Quote:
Some programming tools NOT used by Real Programmers:

Source language debuggers. Real Programmers can read core dumps.

Compilers with array bounds checking. They stifle creativity, destroy most of the interesting uses for EQUIVALENCE, and make it impossible to modify the operating system code with negative subscripts. Worst of all, bounds checking is inefficient.

_________________
"I want to see gamma rays! I want to hear X-rays! Do you see the absurdity of what I am? I can't even express these things properly because I have to conceptualize complex ideas in this stupid limiting spoken language!"
Back to top
View user's profile Send private message
LoTeK
Apprentice
Apprentice


Joined: 26 Jul 2012
Posts: 270

PostPosted: Thu Jan 24, 2013 2:34 am    Post subject: Reply with quote

well I have to thank you very much BK for showing me the way to dwm:
Quote:
....dwm is written purely in C and, for simplicity, lacks any configuration interface besides editing the source code....

Quote:
...Because dwm is customized through editing its source code, it’s pointless to make binary packages of it. This keeps its userbase small and elitist....

I mean, how real is this..!? :D
_________________
"I want to see gamma rays! I want to hear X-rays! Do you see the absurdity of what I am? I can't even express these things properly because I have to conceptualize complex ideas in this stupid limiting spoken language!"
Back to top
View user's profile Send private message
Bones McCracker
Veteran
Veteran


Joined: 14 Mar 2006
Posts: 1553
Location: U.S.A.

PostPosted: Thu Jan 24, 2013 3:34 am    Post subject: Reply with quote

It's not a joke, if that's what you're asking. Like I said, unless you're comfortable at least looking at some C variable declarations, you're probably better off with Awesome window manager or Xmonad.

Basic settings are made in the form of a C source file intended for that purpose (it contains some variable declarations), which is included into the other source files. Some people find it obvious how to use it, others don't. Gentoo nicely puts it in /etc/portage/savedconfig for you, so you can edit it once and leave it there across multiple emerges (sometimes a version upgrade requires editing or re-doing the file, much like any .conf file). Really it's no harder than screwing around with an Xdefaults file. Here's an example:
Code:
/* See LICENSE file for copyright and license details. */

/* appearance */
static const char font[]            = "-*-terminus-medium-r-*-*-14-*-*-*-*-*-*-*";
static const char normbordercolor[] = "#333333";
static const char normbgcolor[]     = "#938573";
static const char normfgcolor[]     = "#000000";
static const char selbordercolor[]  = "#4c7899";
static const char selbgcolor[]      = "#285577";
static const char selfgcolor[]      = "#fdf5e6";
static const unsigned int borderpx  = 1;        /* border pixel of windows */
static const unsigned int snap      = 32;       /* snap pixel */
static const Bool showbar           = True;     /* False means no bar */
static const Bool topbar            = True;     /* False means bottom bar */

/* tagging */
static const char *tags[] = { "1", "2", "3", "4", "5", "6", "7", "8", "9" };

static const Rule rules[] = {
    /* class      instance    title       tags mask     isfloating   monitor */
    { "Gimp",     NULL,       NULL,       0,            True,        -1 },
    { NULL,       NULL,       "pinentry", 0,            True,        -1 },
//  { "Firefox",  NULL,       NULL,       1 << 8,       False,       -1 },
};

/* layout(s) */
static const float mfact      = 0.5; /* factor of master area size [0.05..0.95] */
static const int nmaster      = 1;    /* number of clients in master area */
static const Bool resizehints = True; /* True means respect size hints in tiled resizals */

static const Layout layouts[] = {
    /* symbol     arrange function */
    { "[]=",      tile },    /* first entry is default */
    { "><>",      NULL },    /* no layout function means floating behavior */
    { "[M]",      monocle },
};

/* key definitions */
#define MODKEY Mod4Mask
#define TAGKEYS(KEY,TAG) \
    { MODKEY,                       KEY,      view,           {.ui = 1 << TAG} }, \
    { MODKEY|ControlMask,           KEY,      toggleview,     {.ui = 1 << TAG} }, \
    { MODKEY|ShiftMask,             KEY,      tag,            {.ui = 1 << TAG} }, \
    { MODKEY|ControlMask|ShiftMask, KEY,      toggletag,      {.ui = 1 << TAG} },

/* helper for spawning shell commands in the pre dwm-5.0 fashion */
#define SHCMD(cmd) { .v = (const char*[]){ "/bin/sh", "-c", cmd, NULL } }

/* commands */
static const char *dmenucmd[] = { "dmenu_run", "-fn", font, "-nb", normbgcolor, "-nf", normfgcolor, "-sb", selbgcolor, "-sf", selfgcolor, NULL };
static const char *termcmd[]  = { "urxvtc", NULL };
static const char *emailcmd[] = { "claws-mail", NULL };
static const char *webcmd[] = { "dwb", NULL };
static const char *lockcmd[] = { "slock", NULL };


static Key keys[] = {
    /* modifier                     key        function        argument */
    { MODKEY,                       XK_Menu,   spawn,          {.v = dmenucmd } },
    { MODKEY|ShiftMask,             XK_Return, spawn,          {.v = termcmd } },
    { MODKEY,                       XK_e,      spawn,          {.v = emailcmd } },
    { MODKEY,                       XK_w,      spawn,          {.v = webcmd } },
    { MODKEY,                       XK_b,      togglebar,      {0} },
    { MODKEY,                       XK_j,      focusstack,     {.i = +1 } },
    { MODKEY,                       XK_k,      focusstack,     {.i = -1 } },
    { MODKEY,                       XK_i,      incnmaster,     {.i = +1 } },
    { MODKEY,                       XK_d,      incnmaster,     {.i = -1 } },
    { MODKEY,                       XK_h,      setmfact,       {.f = -0.05} },
    { MODKEY,                       XK_l,      setmfact,       {.f = +0.05} },
    { MODKEY,                       XK_Return, zoom,           {0} },
    { MODKEY,                       XK_Tab,    view,           {0} },
    { MODKEY|ShiftMask,             XK_c,      killclient,     {0} },
    { MODKEY,                       XK_t,      setlayout,      {.v = &layouts[0]} },
    { MODKEY,                       XK_f,      setlayout,      {.v = &layouts[1]} },
    { MODKEY,                       XK_m,      setlayout,      {.v = &layouts[2]} },
    { MODKEY,                       XK_space,  setlayout,      {0} },
    { MODKEY|ShiftMask,             XK_space,  togglefloating, {0} },
    { MODKEY,                       XK_0,      view,           {.ui = ~0 } },
    { MODKEY|ShiftMask,             XK_0,      tag,            {.ui = ~0 } },
    { MODKEY,                       XK_comma,  focusmon,       {.i = -1 } },
    { MODKEY,                       XK_period, focusmon,       {.i = +1 } },
    { MODKEY|ShiftMask,             XK_comma,  tagmon,         {.i = -1 } },
    { MODKEY|ShiftMask,             XK_period, tagmon,         {.i = +1 } },
    TAGKEYS(                        XK_1,                      0)
    TAGKEYS(                        XK_2,                      1)
    TAGKEYS(                        XK_3,                      2)
    TAGKEYS(                        XK_4,                      3)
    TAGKEYS(                        XK_5,                      4)
    TAGKEYS(                        XK_6,                      5)
    TAGKEYS(                        XK_7,                      6)
    TAGKEYS(                        XK_8,                      7)
    TAGKEYS(                        XK_9,                      8)
    { MODKEY|ShiftMask,             XK_q,      quit,           {0} },
};

/* button definitions */
/* click can be ClkLtSymbol, ClkStatusText, ClkWinTitle, ClkClientWin, or ClkRootWin */
static Button buttons[] = {
    /* click                event mask          button          function        argument */
    { ClkLtSymbol,          0,                  Button1,        setlayout,      {0} },
    { ClkLtSymbol,          0,                  Button3,        setlayout,      {.v = &layouts[2]} },
    { ClkWinTitle,          0,                  Button2,        zoom,           {0} },
    { ClkStatusText,        0,                  Button1,        spawn,          {.v = termcmd } },
    { ClkStatusText,        MODKEY|ShiftMask,   Button3,        spawn,          {.v = lockcmd } },
    { ClkClientWin,         MODKEY,             Button1,        movemouse,      {0} },
    { ClkClientWin,         MODKEY,             Button2,        togglefloating, {0} },
    { ClkClientWin,         MODKEY,             Button3,        resizemouse,    {0} },
    { ClkTagBar,            0,                  Button1,        view,           {0} },
    { ClkTagBar,            0,                  Button3,        toggleview,     {0} },
    { ClkTagBar,            MODKEY,             Button1,        tag,            {0} },
    { ClkTagBar,            MODKEY,             Button3,        toggletag,      {0} },
};


That's pretty self-evident to a C programmer, or to anyone willing to pick their way through it and cautiously make changes which don't look very different from the original entries.

Where it gets a bit hairier is that many people like to modify dwm itself, and while the basic functionality is adequate as of recent updates (which have incorporated some good ideas while still leaving the source small and functionality minimal), many people add functionality by applying patches other people have written and share. So to use dwm, you should probably also be comfortable applying patches in gentoo (either by using a local portage overlay and modified ebuild, or the new /etc/portage/patches functionality, which I personally have not tried yet). This is likely to involve tweaking patches created by others before they will apply cleanly in gentoo (e.g., basic things, such as modifying the 'patch' command to have the correct path).

If that sounds like stuff you've done before or are willing to do, then dwm may be great for you.

However, if it sounds ugly, or: if you want a status tray (for application icons to show up and tell you you've got a new chat message or whatever); if you want compositing; or, if you want a little more eye candy, then go with one of the others.

Remember, a tiling window manager covers your whole screen, automatically breaking it up into multiple windows that are automatically arranged for you edge-to-edge, making maximal use of the screen. You can choose different patterns for the system to follow (e.g., two windows on right half, one window on left -- these are referred to as "layouts"), and you can move windows around and change their size. Use of multiple displays is supported by some and not others, using Xinerama. You typically have multiple workspaces (virtual screens) to use (e.g., dwm provides 9 by default, although that's entirely up to you, and dwm counter-intuitively calls these "tags").

There are many tiling wm, and I can confidently recommend Awesome and Xmonad. wmii is cool if you like Plan 9 stuff. dwm is cool if you want to be super-minimalist, super-fast. Here is an article and some alternatives:
http://en.wikipedia.org/wiki/Tiling_window_manager
https://wiki.archlinux.org/index.php/Comparison_of_Tiling_Window_Managers
Back to top
View user's profile Send private message
NotQuiteSane
Guru
Guru


Joined: 30 Jan 2005
Posts: 471
Location: Klamath Falls, Jefferson, USA, North America, Midgarth

PostPosted: Thu Jan 24, 2013 4:41 am    Post subject: Reply with quote

BoneKracker wrote:
Here's an example:

BK, Is this yours, or a default example?

LoTek, here's mine for another example:

Code:
/* See LICENSE file for copyright and license details. */

/* appearance */
static const char font[]            = "-*-terminus-medium-r-*-*-16-*-*-*-*-*-*-*";
static const char normbordercolor[] = "#444444";
static const char normbgcolor[]     = "#222222";
static const char normfgcolor[]     = "#bbbbbb";
static const char selbordercolor[]  = "#005577";
static const char selbgcolor[]      = "#005577";
static const char selfgcolor[]      = "#eeeeee";
static const unsigned int borderpx  = 1;        /* border pixel of windows */
static const unsigned int snap      = 32;       /* snap pixel */
static const unsigned int systrayspacing = 2;   /* systray spacing */
static const Bool showsystray       = True;     /* False means no systray */
static const Bool showbar           = True;     /* False means no bar */
static const Bool topbar            = True;     /* False means bottom bar */
static const unsigned int marginbottom  = 10;   /* battom bar height */

/* tagging */
static const char *tags[] = { "Mail", "Web", "Development", "Chat", "Media", "Other" };

static const Rule rules[] = {
        /* xprop(1):
         *      WM_CLASS(STRING) = instance, class
         *      WM_NAME(STRING) = title
         */
        /* class      instance    title       tags mask     isfloating   monitor */
        { "Pidgin",     NULL,       NULL,       1 << 3,         True,        -1 },
        { "xxxterm",    NULL,       NULL,       1 << 1,       False,       -1 },
        { "mplayer2",   NULL,       NULL,       1 << 4,       True,        -1 },
        { "dvdstyler",  NULL,       NULL,       1 << 4,       False,       -1 },
        { "opera",      NULL,       NULL,       1 << 1,       False,       -1 },
};

/* layout(s) */
static const float mfact      = 0.55; /* factor of master area size [0.05..0.95] */
static const int nmaster      = 1;    /* number of clients in master area */
static const Bool resizehints = True; /* True means respect size hints in tiled resizals */

static const Layout layouts[] = {
        /* symbol     arrange function */
        { "[]=",      tile },    /* first entry is default */
        { "><>",      NULL },    /* no layout function means floating behavior */
        { "[M]",      monocle },
};

/* key definitions */
#define MODKEY Mod4Mask
#define TAGKEYS(KEY,TAG) \
        { MODKEY,                       KEY,      view,           {.ui = 1 << TAG} }, \
        { MODKEY|ControlMask,           KEY,      toggleview,     {.ui = 1 << TAG} }, \
        { MODKEY|ShiftMask,             KEY,      tag,            {.ui = 1 << TAG} }, \
        { MODKEY|ControlMask|ShiftMask, KEY,      toggletag,      {.ui = 1 << TAG} },

/* helper for spawning shell commands in the pre dwm-5.0 fashion */
#define SHCMD(cmd) { .v = (const char*[]){ "/bin/sh", "-c", cmd, NULL } }

/* commands */
static const char *dmenucmd[] = { "dmenu_run", "-fn", font, "-nb", normbgcolor, "-nf", normfgcolor, "-sb", selbgcolor, "-sf", selfgcolor, NULL };
static const char *termcmd[]  = { "mrxvt", NULL };

static Key keys[] = {
        /* modifier                     key        function        argument */
        { MODKEY,                       XK_p,      spawn,          {.v = dmenucmd } },
        { MODKEY|ShiftMask,             XK_Return, spawn,          {.v = termcmd } },
        { MODKEY,                       XK_b,      togglebar,      {0} },
        { MODKEY,                       XK_j,      focusstack,     {.i = +1 } },
        { MODKEY,                       XK_k,      focusstack,     {.i = -1 } },
        { MODKEY,                       XK_i,      incnmaster,     {.i = +1 } },
        { MODKEY,                       XK_d,      incnmaster,     {.i = -1 } },
        { MODKEY,                       XK_h,      setmfact,       {.f = -0.05} },
        { MODKEY,                       XK_l,      setmfact,       {.f = +0.05} },
        { MODKEY,                       XK_Return, zoom,           {0} },
        { MODKEY,                       XK_Tab,    view,           {0} },
        { MODKEY|ShiftMask,             XK_c,      killclient,     {0} },
        { MODKEY,                       XK_t,      setlayout,      {.v = &layouts[0]} },
        { MODKEY,                       XK_f,      setlayout,      {.v = &layouts[1]} },
        { MODKEY,                       XK_m,      setlayout,      {.v = &layouts[2]} },
        { MODKEY,                       XK_space,  setlayout,      {0} },
        { MODKEY|ShiftMask,             XK_space,  togglefloating, {0} },
        { MODKEY,                       XK_0,      view,           {.ui = ~0 } },
        { MODKEY|ShiftMask,             XK_0,      tag,            {.ui = ~0 } },
        { MODKEY,                       XK_comma,  focusmon,       {.i = -1 } },
        { MODKEY,                       XK_period, focusmon,       {.i = +1 } },
        { MODKEY|ShiftMask,             XK_comma,  tagmon,         {.i = -1 } },
        { MODKEY|ShiftMask,             XK_period, tagmon,         {.i = +1 } },
        TAGKEYS(                        XK_1,                      0)
        TAGKEYS(                        XK_2,                      1)
        TAGKEYS(                        XK_3,                      2)
        TAGKEYS(                        XK_4,                      3)
        TAGKEYS(                        XK_5,                      4)
        TAGKEYS(                        XK_6,                      5)
        TAGKEYS(                        XK_7,                      6)
        TAGKEYS(                        XK_8,                      7)
        TAGKEYS(                        XK_9,                      8)
        { MODKEY|ShiftMask,             XK_q,      quit,           {0} },
};

/* button definitions */
/* click can be ClkLtSymbol, ClkStatusText, ClkWinTitle, ClkClientWin, or ClkRootWin */
static Button buttons[] = {
        /* click                event mask      button          function        argument */
        { ClkLtSymbol,          0,              Button1,        setlayout,      {0} },
        { ClkLtSymbol,          0,              Button3,        setlayout,      {.v = &layouts[2]} },
        { ClkWinTitle,          0,              Button2,        zoom,           {0} },
        { ClkStatusText,        0,              Button2,        spawn,          {.v = termcmd } },
        { ClkClientWin,         MODKEY,         Button1,        movemouse,      {0} },
        { ClkClientWin,         MODKEY,         Button2,        togglefloating, {0} },
        { ClkClientWin,         MODKEY,         Button3,        resizemouse,    {0} },
        { ClkTagBar,            0,              Button1,        view,           {0} },
        { ClkTagBar,            0,              Button3,        toggleview,     {0} },
        { ClkTagBar,            MODKEY,         Button1,        tag,            {0} },
        { ClkTagBar,            MODKEY,         Button3,        toggletag,      {0} },
};


I need to clean up, maybe make some minor changes. possibly a weekend project

BoneKracker wrote:
However, if you want a status tray (for application icons to show up and tell you you've got a new chat message or whatever), if you want compositing, if you want a little more eye candy, then go with one of the others.


You can find a status tray here.

NQS
_________________
These opinions are mine, mine I say! Piss off and get your own.

As I see it -- An irregular blog, Improved with new location

To delete French language packs from system use 'sudo rm -fr /'
Back to top
View user's profile Send private message
Bones McCracker
Veteran
Veteran


Joined: 14 Mar 2006
Posts: 1553
Location: U.S.A.

PostPosted: Thu Jan 24, 2013 5:01 am    Post subject: Reply with quote

Nice tip. However, status trays are exactly the kind of thing I use dwm to get rid of. :lol:

I haven't looked at that, but I would expect it to be a kludge compared to the status trays offered by Awesome and Xmonad. Frankly, I don't see the point; I want maximum screen real estate, and no distractions by pointless bells and whistles. If I want to be notified of something, I'll code that in to my own status bar (which is fed by an efficient little C application I wrote).

Yeah, that's my file. There are just a few deviations from the default (fonts, colors, 50-50 division, use of the Windows Key as the "mod key" for this purpose, a few key-bindings, etc.)
Back to top
View user's profile Send private message
Display posts from previous:   
Reply to topic    Gentoo Forums Forum Index Off the Wall All times are GMT
Goto page 1, 2, 3  Next
Page 1 of 3

 
Jump to:  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum