mirror of
https://github.com/mayfrost/guides.git
synced 2024-11-01 07:26:04 +00:00
Create X.md
This commit is contained in:
parent
3392ad8fce
commit
37f1abe86f
267
X.md
Normal file
267
X.md
Normal file
@ -0,0 +1,267 @@
|
||||
#X
|
||||
Set xorg and a desktop environment fast.
|
||||
|
||||
##NO DE
|
||||
To use a window manager without any desktop environment, or even a login manager, you can just install the applications mentioned here.
|
||||
After that you login and simply type:
|
||||
`start`
|
||||
whenever you want to start X.
|
||||
|
||||
|
||||
Next is an example _".xinitrc"_ file:
|
||||
```
|
||||
# load your preferred terminal settings
|
||||
[[ -f ~/.Xresources ]] && xrdb -merge -I$HOME ~/.Xresources
|
||||
|
||||
# load your preferred keybindings
|
||||
xbindkeys
|
||||
|
||||
# set the wallpaper (requires hsetroot to be installed)
|
||||
hsetroot -fill ~/.wallpaper.jpg
|
||||
|
||||
# alternative way to set the wallpaper using imagemagick (DISABLED)
|
||||
#display -size 1280x800 -window root ~/.wallpaper.png
|
||||
|
||||
# launch the window manager (needs to be done at the end)
|
||||
exec dbus-launch --sh-syntax --exit-with-session ratpoison
|
||||
```
|
||||
##RATPOISON
|
||||
|
||||
Productive, automated, scriptable, and minimal, Ratpoison is a strict tiling window manager using similar bindings to GNU Screen. A few of its benefits are.
|
||||
* No mouse used, all done by commands called by typing _"control"_ and _"t"_ at the same time, plus another key.
|
||||
* You can set your own bindings in the file _".ratpoisonrc"_ which is extremely friendly.
|
||||
* Extensible by scripts. The _"rpws"_ script for example adds multiple workspaces (comes by default), another script (_"expose.pl"_) gives a mozaic of current windows.
|
||||
|
||||
|
||||
###A few keys to get you started.
|
||||
|
||||
* Show the help cheatsheet:
|
||||
`Ctrl-t + ?`
|
||||
* Bring an application menu:
|
||||
`Ctrl-t + .`
|
||||
* Get time and date:
|
||||
`Ctrl-t + a`
|
||||
* Clear screen from help cheatsheet or menu:
|
||||
`Esc`
|
||||
|
||||
* Show open windows:
|
||||
`Ctrl-t + w`
|
||||
* Close a window:
|
||||
`Ctrl-t + k`
|
||||
* Swith back between windows:
|
||||
`Ctrl-t + Ctrl-t`
|
||||
* Go to next window:
|
||||
`Ctrl-t + n`
|
||||
`Ctrl-t + Space`
|
||||
* Go to previous window:
|
||||
`Ctrl-t + p`
|
||||
|
||||
|
||||
* Split screen vertically:
|
||||
`Ctrl-t + s`
|
||||
* Split screen horizontally:
|
||||
`Ctrl-t + S`
|
||||
* Go to next frame:
|
||||
`Ctrl-t + Tab`
|
||||
* Go to previous frame:
|
||||
`Ctrl-t + Alt-Tab`
|
||||
* Make a window the only one visible:
|
||||
`Ctrl-t + Q`
|
||||
|
||||
|
||||
The custom _".ratpoisonrc"_ used here can be customized to your need
|
||||
```
|
||||
# text editor
|
||||
bind e exec gjots2
|
||||
bind E exec xterm -e elvis
|
||||
|
||||
# web browser
|
||||
bind y exec palemoon
|
||||
# highlight an url in a window and the url is opened in a new tab
|
||||
bind Y exec palemoon `$RATPOISON -c getsel`
|
||||
|
||||
# MOC as a music player, alsamixer as volume control
|
||||
bind o exec xterm -e mocp
|
||||
bind O exec xterm -e alsamixer
|
||||
|
||||
# file manager
|
||||
bind d exec spacefm
|
||||
bind D exec xterm -e vifm
|
||||
|
||||
# mail
|
||||
bind g exec xterm -e mutt
|
||||
|
||||
# IRC
|
||||
bind h exec xterm -e irssi
|
||||
|
||||
# RSS
|
||||
bind j exec liferea
|
||||
bind J exec xterm -e newsbeuter
|
||||
|
||||
# password manager
|
||||
bind z exec xterm -e kpcli
|
||||
# looks for the JDownloader program under the designated path
|
||||
bind Z exec ~/jd2/JDownloader2
|
||||
|
||||
# expose-like switch window by using "Ctrl-t + ,". Get the script from http://ratpoison.wxcvbn.org/cgi-bin/wiki.pl/expose.pl
|
||||
bind comma exec ~/bin/expose.pl
|
||||
|
||||
# as colon invoke ratpoison commands, semicolon invoke shell commands ("Ctrl-t + ;")
|
||||
bind semicolon exec
|
||||
|
||||
# no startup message announcing what the prefix keys are
|
||||
startup_message off
|
||||
|
||||
# change font, color and position for messages
|
||||
set font "Fixed-11"
|
||||
set fgcolor gray
|
||||
set bgcolor black
|
||||
set bargravity c
|
||||
|
||||
# normal cursor
|
||||
exec xsetroot -cursor_name left_ptr
|
||||
|
||||
# fix java swing, needs wmname from suckless
|
||||
exec wmname LG3D
|
||||
|
||||
# multiple workspaces by using "Alt + FX" (where "FX" is from F1 to F4), needs rpws script
|
||||
exec rpws init 4 -k
|
||||
|
||||
# get rid of the one pixel border around windows
|
||||
set border 0
|
||||
```
|
||||
|
||||
##XBINDKEYS
|
||||
Custom keys can be added with the Xbindkeys program.
|
||||
|
||||
With the help of the default xev program you can check the keys you want:
|
||||
* Start the program and type the key you want to see its information
|
||||
`xev > keys.txt`
|
||||
* Look for the line that says
|
||||
`keycode KEY_NUMBER (keysym INGORE_THIS, KEY_NAME)`
|
||||
* Now on xbindkeysrc you'll be adding the information for each bind you want:
|
||||
```
|
||||
"WHAT_YOU_WANT_HERE_GOES_HERE"
|
||||
m:0x0 + c:KEY_NUMBER
|
||||
KEY_NAME
|
||||
```
|
||||
|
||||
In the example below we'll have the modified keys:
|
||||
* The "windows" key switch windows using dmenu pre-installed.
|
||||
* The "menu" key brings an application launcher you type names into using dmenu.
|
||||
* The "print screen" key takes a screenshot using imagemagick.
|
||||
* The "scroll lock" key records the desktop using either libav-tools or ffmpeg.
|
||||
* The "mute" button if available will mute/unmute volume.
|
||||
* The "lower volume" button if available will lower volume.
|
||||
* The "raise volume" button if available will raise volume.
|
||||
|
||||
|
||||
Now the example _".xbindkeysrc"_ file:
|
||||
```
|
||||
# Enable "Scroll_Lock" for the next keybinding
|
||||
keystate_scrolllock= enable
|
||||
|
||||
# Switch windows using the "windows key" (needs dmenu)
|
||||
"ratpoison -c "select $(ratpoison -c "windows "%t"" | dmenu -nf gray -nb black -sf black -sb gray -b -l 20)""
|
||||
Super_L
|
||||
|
||||
# Launch application using the "menu key" (needs dmenu)
|
||||
"dmenu_run -nf gray -nb black -sf black -sb gray -b"
|
||||
m:0x0 + c:135
|
||||
Menu
|
||||
|
||||
# Take screenshot using the "print screen key" (needs imagemagick)
|
||||
"import -window root png:$HOME/xwz_$(date "+%Y-%m-%d-%H:%M:%S").png"
|
||||
m:0x0 + c:107
|
||||
Print
|
||||
|
||||
# Record desktop (needs libav-tools or ffmpeg)
|
||||
"killall -INT avconv 2>/dev/null || avconv -f x11grab -r 25 -s 1280x720 -i :0.0 $HOME/output.webm &"
|
||||
m:0x0 + c:78
|
||||
Scroll_Lock
|
||||
|
||||
# Mute/unmute volume
|
||||
"amixer set Master toggle"
|
||||
m:0x0 + c:121
|
||||
XF86AudioMute
|
||||
|
||||
# Lower volume
|
||||
"amixer set PCM 5%-"
|
||||
m:0x0 + c:122
|
||||
XF86AudioLowerVolume
|
||||
|
||||
# Raise volume
|
||||
"amixer set PCM 5%+"
|
||||
m:0x0 + c:123
|
||||
XF86AudioRaiseVolume
|
||||
```
|
||||
|
||||
##TERMINAL EMULATOR
|
||||
|
||||
To tweak the theme of your terminal emulator you need to tweak the _".Xresources"_ file. Each time you make changes run
|
||||
`xrdb -merge`
|
||||
|
||||
Next is an example _".Xresources"_ file:
|
||||
```
|
||||
xterm*maximized: true
|
||||
xterm*background: black
|
||||
xterm*foreground: grey
|
||||
xterm*cursorColor: green
|
||||
xterm*cursorBlink: false
|
||||
xterm*faceName: Fixedsys Excelsior 3.01:size=11:antialias=true
|
||||
xterm*faceNameDoublesize: WenQuanYi Zen Hei
|
||||
xterm*termName: xterm-256color
|
||||
xterm*locale: true
|
||||
xterm*utf8Title: true
|
||||
xterm*dynamicColors: true
|
||||
xterm*borderWidth: 0
|
||||
xterm*eightBitInput: false
|
||||
xterm*metaSendsEscape: true
|
||||
xterm*decTerminalID: vt340
|
||||
|
||||
|
||||
urxvt*maximized: true
|
||||
urxvt*background: black
|
||||
urxvt*foreground: white
|
||||
urxvt*cursorColor: green
|
||||
urxvt*cursorBlink: false
|
||||
urxvt*faceName: GNU Unifont:size=12:antialias=true
|
||||
urxvt*faceNameDoublesize: WenQuanYi Zen Hei
|
||||
urxvt*termName: urxvt-256color
|
||||
urxvt*locale: true
|
||||
urxvt*utf8Title: true
|
||||
urxvt*font: fixed
|
||||
urxvt*boldFont: fixed
|
||||
urxvt*dynamicColors: true
|
||||
urxvt*borderWidth: 0
|
||||
```
|
||||
##SCREEN TEARING
|
||||
To solve screen tearing you can use any of these config files in its appropriate directory.
|
||||
|
||||
* In the case you have Intel add these to _"/etc/X11/xorg.conf.d/20-intel.conf"_:
|
||||
```
|
||||
Section "Device"
|
||||
Identifier "Intel Graphics"
|
||||
Driver "intel"
|
||||
Option "TearFree" "true"
|
||||
EndSection
|
||||
```
|
||||
|
||||
* In the case you have AMD add these to _"/etc/X11/xorg.conf.d/20-amdgpu.conf_":
|
||||
```
|
||||
Section "Device"
|
||||
Identifier "AMD Graphics"
|
||||
Driver "amdgpu"
|
||||
Option "TearFree" "true"
|
||||
EndSection
|
||||
```
|
||||
|
||||
Another way to add changes is in the _"/etc/X11/xorg.conf"_ file:
|
||||
```
|
||||
Section "Device"
|
||||
Identifier "Intel Graphics"
|
||||
Driver "intel"
|
||||
Option "AccelMethod" "uxa"
|
||||
Option "TearFree" "true"
|
||||
EndSection
|
||||
```
|
Loading…
Reference in New Issue
Block a user