update zsh configuration files

This commit is contained in:
arcan1s 2014-11-26 12:10:58 +03:00
parent 63bae6ae0b
commit 8071d696d8
25 changed files with 447 additions and 1848 deletions

View File

@ -6,20 +6,18 @@ Some of using configuration files
Description Description
----------- -----------
* `arch_install.sh` - simple script for automatic installation * `arch_install.sh` - simple script for automatic installation
* `Bespin` (directory) - settings for [BESpin](http://kde-look.org/content/show.php/Bespin?content=63928). It is stored in `$HOME/.config/`.
* `awesome` (directory) - settings for Awesome-WM. It is stored in `$HOME/.config/`. * `awesome` (directory) - settings for Awesome-WM. It is stored in `$HOME/.config/`.
* `Bespin` (directory) - settings for [BESpin](http://kde-look.org/content/show.php/Bespin?content=63928). It is stored in `$HOME/.config/`.
* `festival` (directory tree) - settings for festival Russian speaking. * `festival` (directory tree) - settings for festival Russian speaking.
* `get-coord-matrix.py` - python script which calculates xinput coordinate matrix for screens * `get-coord-matrix.py` - python script which calculates xinput coordinate matrix for screens
* `kbdlayout` (files) - settings for Russian language with layout switching on CapsLock. `20-keyboard.conf` (X11 settings) is stored in `/etc/X11/xorg.conf.d/`. `my.map.gz` (keymap) is stored in `/usr/share/kbd/keymaps/i386/qwerty`. * `kbdlayout` (files) - settings for Russian language with layout switching on CapsLock. `20-keyboard.conf` (X11 settings) is stored in `/etc/X11/xorg.conf.d/`. `my.map.gz` (keymap) is stored in `/usr/share/kbd/keymaps/i386/qwerty`.
* `kdmrc` - settings for KDM. It is stored as `/usr/share/config/kdm/kdmrc`.
* `local.conf` - custom settings for fontconfig. It is stored as `/etc/fonts/local.conf` * `local.conf` - custom settings for fontconfig. It is stored as `/etc/fonts/local.conf`
* `qtcurve` (directory) - custom settings for QtCurve (including colors). * `qtcurve` (directory) - custom settings for QtCurve (including colors).
* `repo-update` - simple script for building and updating own repository
* `sakura.conf` - settings for [Sakura terminal](https://launchpad.net/sakura). It is stored in `$HOME/.config/sakura/`. * `sakura.conf` - settings for [Sakura terminal](https://launchpad.net/sakura). It is stored in `$HOME/.config/sakura/`.
* `sddm.conf` - settings for SDDM. It is stored as `/etc/sddm.conf`.
* `themes` - directory with some of my custom color schemas * `themes` - directory with some of my custom color schemas
* `vimrc` - settings for VIM. It is stored as `$HOME/.vimrc`. * `vimrc` - settings for VIM. It is stored as `$HOME/.vimrc`.
* `Xresources` - settings for some Xorg applications (for example, urxvt). It is stored as `$HOME/.Xresources` * `Xresources` - settings for some Xorg applications (for example, urxvt). It is stored as `$HOME/.Xresources`
* `zsh` - directory with different configuration files for zsh. It is stored as `$HOME/.zsh`
* `zlogout` - zsh related script
* `zshrc` - settings (for root and normal user) for zsh. It is stored as `$HOME/.zshrc`. * `zshrc` - settings (for root and normal user) for zsh. It is stored as `$HOME/.zshrc`.
* `zshrc_t440` - settings (for root and normal user) for zsh using on work machine. It is stored as `$HOME/.zshrc`.
* `zshrc_foreing_server` - settings (for root and normal user) for zsh using on foreing server. It is stored as `$HOME/.zshrc`.
* `zshrc_server` - settings (for root and normal user) for zsh using on server. It is stored as `$HOME/.zshrc`.

591
kdmrc
View File

@ -1,591 +0,0 @@
# KDM master configuration file
#
# Definition: the greeter is the login dialog, i.e., the part of KDM
# which the user sees.
#
# You can configure every X-display individually.
# Every display has a display name, which consists of a host name
# (which is empty for local displays specified in {Static|Reserve}Servers),
# a colon, and a display number. Additionally, a display belongs to a
# display class (which can be ignored in most cases; the control center
# does not support this feature at all).
# Sections with display-specific settings have the formal syntax
# "[X-" host [":" number [ "_" class ]] "-" sub-section "]"
# You can use the "*" wildcard for host, number, and class. You may omit
# trailing components; they are assumed to be "*" then.
# The host part may be a domain specification like ".inf.tu-dresden.de".
# It may also be "+", which means non-empty, i.e. remote displays only.
# From which section a setting is actually taken is determined by these
# rules:
# - an exact match takes precedence over a partial match (for the host part),
# which in turn takes precedence over a wildcard ("+" taking precedence
# over "*")
# - precedence decreases from left to right for equally exact matches
# Example: display name "myhost:0", class "dpy".
# [X-myhost:0_dpy] precedes
# [X-myhost:0_*] (same as [X-myhost:0]) precedes
# [X-myhost:*_dpy] precedes
# [X-myhost:*_*] (same as [X-myhost]) precedes
# [X-+:0_dpy] precedes
# [X-*:0_dpy] precedes
# [X-*:0_*] (same as [X-*:0]) precedes
# [X-*:*_*] (same as [X-*])
# These sections do NOT match this display:
# [X-hishost], [X-myhost:0_dec], [X-*:1], [X-:*]
# If a setting is not found in any matching section, the default is used.
#
# Every comment applies to the following section or key. Note that all
# comments will be lost if you change this file with the systemsettings frontend.
# The defaults refer to KDM's built-in values, not anything set in this file.
#
# Special characters need to be backslash-escaped (leading and trailing
# spaces (\s), tab (\t), linefeed (\n), carriage return (\r) and the
# backslash itself (\\)).
# In lists, fields are separated with commas without whitespace in between.
# Some command strings are subject to simplified sh-style word splitting:
# single quotes (') and double quotes (") have the usual meaning; the backslash
# quotes everything (not only special characters). Note that the backslashes
# need to be doubled because of the two levels of quoting.
[General]
# This option exists solely for the purpose of a clean automatic upgrade.
# Do not even think about changing it!
ConfigVersion=2.4
# List of permanent displays. Displays with a hostname are foreign. A display
# class may be specified separated by an underscore.
# Default is ":0"
StaticServers=:0
# List of on-demand displays. See StaticServers for syntax.
# Default is ""
ReserveServers=:1,:2,:3
# VTs to allocate to X-servers. A negative number means that the VT will be
# used only if it is free. If all VTs in this list are used up, the next free
# one greater than the last one in this list will be allocated.
# Default is ""
ServerVTs=-7
# TTYs (without /dev/) to monitor for activity while in console mode.
# Default is ""
ConsoleTTYs=tty1,tty2,tty3,tty4,tty5,tty6
# Where KDM should store its PID (do not store if empty).
# Default is ""
PidFile=/var/run/kdm.pid
# Whether KDM should lock the PID file to prevent having multiple KDM
# instances running at once. Do not change unless you are brave.
# Default is true
#LockPidFile=false
# Where to store authorization files.
# Default is "/var/run/xauth"
#AuthDir=/tmp
# Whether KDM should automatically re-read configuration files, if it
# finds them having changed.
# Default is true
#AutoRescan=false
# Additional environment variables KDM should pass on to all programs it runs.
# LD_LIBRARY_PATH and XCURSOR_THEME are good candidates;
# otherwise, it should not be necessary very often.
# Default is ""
#ExportList=LD_LIBRARY_PATH,ANOTHER_IMPORTANT_VAR
# A character device KDM should read entropy from.
# Empty means use the system's preferred entropy device.
# Default is ""
#RandomDevice=/dev/altrandom
# Where the command sockets should be created; make it empty to disable
# them.
# Default is "/var/run/xdmctl"
#FifoDir=/tmp
# The group to which the global command socket should belong;
# can be either a name or a numerical ID.
# Default is 0
#FifoGroup=xdmctl
# The user the greeter should run as. Empty results in root.
# Consider the impact on LogSource when setting it.
# Default is ""
GreeterUID=kdm
# The directory in which KDM should store persistent working data.
# Default is "/var/lib/kdm"
#DataDir=
# The directory in which KDM should store users' .dmrc files. This is only
# needed if the home directories are not readable before actually logging in
# (like with AFS).
# Default is ""
#DmrcDir=/nfs-shared/var/dmrcs
[Xdmcp]
# Whether KDM should listen to incoming XDMCP requests.
# Default is true
Enable=false
# The UDP port on which KDM should listen for XDMCP requests. Do not change.
# Default is 177
#Port=177
# File with the private keys of X-terminals. Required for XDM authentication.
# Default is ""
#KeyFile=/usr/share/config/kdm/kdmkeys
# XDMCP access control file in the usual XDM-Xaccess format.
# Default is "/usr/share/config/kdm/Xaccess"
Xaccess=/usr/share/config/kdm/Xaccess
# Number of seconds to wait for display to respond after the user has
# selected a host from the chooser.
# Default is 15
#ChoiceTimeout=10
# Strip domain name from remote display names if it is equal to the local
# domain.
# Default is true
#RemoveDomainname=false
# Use the numeric IP address of the incoming connection on multihomed hosts
# instead of the host name.
# Default is false
#SourceAddress=true
# The program which is invoked to dynamically generate replies to XDMCP
# DirectQuery or BroadcastQuery requests.
# If empty, no program is invoked and "Willing to manage" is sent.
# Default is ""
Willing=/usr/share/config/kdm/Xwilling
[Shutdown]
# The command (subject to word splitting) to run to halt the system.
# Default is "/sbin/shutdown -h -P now"
HaltCmd=/usr/bin/systemctl poweroff
# The command (subject to word splitting) to run to reboot the system.
# Default is "/sbin/shutdown -r now"
RebootCmd=/usr/bin/systemctl reboot
# Whether it is allowed to shut down the system via the global command socket.
# Default is false
#AllowFifo=true
# Whether it is allowed to abort active sessions when shutting down the
# system via the global command socket.
# Default is true
#AllowFifoNow=false
# The boot manager KDM should use for offering boot options in the
# shutdown dialog.
# "None" - no boot manager
# "Grub" - Grub boot manager
# "Grub2" - Grub2 boot manager
# "Burg" - Burg boot manager
# "Lilo" - Lilo boot manager (Linux on i386 & x86-64 only)
# Default is None
#BootManager=Grub
# Rough estimations about how many seconds KDM will spend at most on
# - opening a connection to the X-server (OpenTime) if the attempt
# - times out: OpenTimeout
# - is refused: OpenRepeat * OpenDelay
# - starting a local X-server (ServerTime):
# ServerAttempts * (ServerTimeout + OpenDelay)
# - starting a display:
# - local display: ServerTime + OpenTime
# - foreign display: StartAttempts * OpenTime
# - XDMCP display: OpenTime (repeated indefinitely by client)
# Core config for all displays
[X-*-Core]
# How long to wait before retrying to connect a display.
# Default is 15
#OpenDelay=15
# How long to wait before timing out a display connection attempt.
# Default is 120
#OpenTimeout=120
# How many connection attempts to make during a start attempt. Note that
# a timeout aborts the entire start attempt.
# Default is 5
#OpenRepeat=5
# Try at most that many times to start a display. If this fails, the display
# is disabled.
# Default is 4
#StartAttempts=4
# Ping remote display every that many minutes.
# Default is 5
#PingInterval=5
# Wait for a Pong that many minutes.
# Default is 5
#PingTimeout=5
# The name of this X-server's Xauth file.
# If empty, a random name in the AuthDir directory will be used.
# Default is ""
#AuthFile=
# Specify a file with X-resources for the greeter, chooser and background.
# The KDE frontend does not use this file, so you do not need it unless you
# use another background generator than krootimage.
# Default is ""
#Resources=
# The xrdb program to use to read the above specified recources.
# Subject to word splitting.
# Default is "/usr/bin/xrdb"
#Xrdb=
# A program to run before the greeter is shown. Can be used to start an
# xconsole or an alternative background generator. Subject to word splitting.
# Default is ""
Setup=/usr/share/config/kdm/Xsetup
# A program to run before a user session starts. Subject to word splitting.
# Default is ""
Startup=/usr/share/config/kdm/Xstartup
# A program to run after a user session exits. Subject to word splitting.
# Default is ""
Reset=/usr/share/config/kdm/Xreset
# The program which is run as the user which logs in. It is supposed to
# interpret the session argument (see SessionsDirs) and start an appropriate
# session according to it. Subject to word splitting.
# Default is "/usr/bin/xterm -ls -T"
Session=/usr/share/config/kdm/Xsession
# The program to run if Session fails.
# Default is "/usr/bin/xterm"
#FailsafeClient=
# The PATH for the Session program.
# Default is "/usr/local/bin:/usr/bin:/bin:/usr/games"
#UserPath=
# The PATH for Setup, Startup and Reset, etc.
# Default is "/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"
#SystemPath=
# The default system shell.
# Default is "/bin/sh"
#SystemShell=/bin/bash
# Where to put the user's X-server authorization file if ~/.Xauthority
# cannot be created.
# Default is "/tmp"
#UserAuthDir=
# If true, UserAuthDir will be used unconditionally.
# Default is false
#ForceUserAuthDir=true
# Whether to automatically restart sessions after X-server crashes.
# Note that enabling this makes circumventing screen lockers other than
# KDE's built-in one possible!
# Default is false
#AutoReLogin=true
# Allow root logins?
# Default is true
AllowRootLogin=false
# Allow to log in, when user has set an empty password?
# Default is true
AllowNullPasswd=true
# Who is allowed to shut down the system. This applies both to the
# greeter and to the command sockets.
# "None" - no "Shutdown..." menu entry is shown at all
# "Root" - the root password must be entered to shut down
# "All" - everybody can shut down the machine
# Default is All
AllowShutdown=Root
# Who is allowed to abort active sessions when shutting down.
# "None" - no forced shutdown is allowed at all
# "Root" - the root password must be entered to shut down forcibly
# "All" - everybody can shut down the machine forcibly
# Default is All
#AllowSdForceNow=Root
# The default choice for the shutdown condition/timing.
# "Schedule" - shut down after all active sessions exit (possibly at once)
# "TryNow" - shut down, if no active sessions are open; otherwise, do nothing
# "ForceNow" - shut down unconditionally
# Default is Schedule
#DefaultSdMode=ForceNow
# How to offer shutdown scheduling options:
# "Never" - not at all
# "Optional" - as a button in the simple shutdown dialogs
# "Always" - instead of the simple shutdown dialogs
# Default is Never
#ScheduledSd=Optional
# The directories containing session type definitions in .desktop format,
# ordered by falling priority.
# Default is "/usr/share/apps/kdm/sessions"
SessionsDirs=/usr/share/config/kdm/sessions,/usr/share/apps/kdm/sessions
# The file (relative to $HOME) to redirect the session output to. The
# following character pairs are replaced:
# - %d -> current display
# - %u -> current user
# - %r -> empty at first. See below.
# - %% -> a single %
# When the constructed filename cannot be used safely and the specification
# contains %<stuff>r, other names will be tried - this time expanding %<stuff>r
# to <stuff> followed by a random number.
# Default is ".xsession-errors"
ClientLogFile=.xsession-errors-%d
# Fallback when ClientLogFile cannot be used. The same expansions are
# supported. DO NOT use relative paths here.
# Default is "/tmp/xerr-%u-%d%-r"
#ClientLogFallback=/var/log/xsession-errors/%u-%d%-r
# Whether KDM's built-in utmp/wtmp/lastlog registration should be used.
# Default is true
#UseSessReg=false
# Greeter config for all displays
[X-*-Greeter]
# Specify the widget style for the greeter. Empty means to use the
# built-in default which currently is "Oxygen-air".
# Default is ""
GUIStyle=Bespin
# Specify the widget color scheme for the greeter. Empty means to use the
# built-in default which currently is "Oxygen-air".
# Default is ""
#ColorScheme=MidnightMeadow
# What should be shown in the greeter's logo are:
# "None" - nothing
# "Logo" - the image specified by LogoPixmap
# "Clock" - a neat analog clock
# Default is Clock
LogoArea=Logo
# The image to show when LogoArea=Logo.
# Default is ""
LogoPixmap=/usr/share/apps/kdm/pics/kdelogo.png
# The relative coordinates (X,Y in percent) of the center of the greeter.
# Default is "50,50"
#GreeterPos=30,40
# The screen the greeter should be displayed on in multi-headed and Xinerama
# setups. The numbering starts with 0. For Xinerama, it corresponds to the
# listing order in the active ServerLayout section of XF86Config; -1 means
# to use the upper-left screen, -2 means to use the upper-right screen.
# Default is 0
#GreeterScreen=-1
# The headline in the greeter. The following character pairs are replaced:
# - %d -> current display
# - %h -> host name, possibly with domain name
# - %n -> node name, most probably the host name without domain name
# - %s -> the operating system
# - %r -> the operating system's version
# - %m -> the machine (hardware) type
# - %% -> a single %
# Default is "Welcome to %s at %n"
#GreetString=K Desktop Environment (%n)
# Whether the fonts used in the greeter should be antialiased.
# Default is false
#AntiAliasing=true
# The font for the greeter headline. The value is encoded.
# Default is "Serif 20pt bold"
#GreetFont=Serif,20,-1,5,50,0,0,0,0,0
# The normal font used in the greeter. The value is encoded.
# Default is "Sans Serif 10pt"
#StdFont=Sans Serif,10,-1,5,50,0,0,0,0,0
# The font used for the "Login Failed" message. The value is encoded.
# Default is "Sans Serif 10pt bold"
#FailFont=Sans Serif,10,-1,5,75,0,0,0,0,0
# What to do with the Num Lock modifier for the time the greeter is running:
# "Off" - turn off
# "On" - turn on
# "Keep" - do not change the state
# Default is Keep
#NumLock=Off
# Language and locale to use in the greeter, encoded like $LANGUAGE.
# If empty, the settings from the environment are used.
# Default is ""
#Language=de_DE
# Enable autocompletion in the username line edit.
# Default is false
#UserCompletion=true
# Enable user list (names along with images) in the greeter.
# Default is true
#UserList=false
# User selection for UserCompletion and UserList:
# "NotHidden" - all users except those listed in HiddenUsers
# "Selected" - only the users listed in SelectedUsers
# Default is NotHidden
#ShowUsers=Selected
# For ShowUsers=Selected. @<group> means all users in that group.
# Default is ""
#SelectedUsers=root,johndoe
# For ShowUsers=NotHidden. @<group> means all users in that group.
# Default is ""
HiddenUsers=git,i2p,root,secwall,share
# Special case of HiddenUsers: users with a non-zero UID less than this number
# will not be shown as well.
# Default is 0
MinShowUID=500
# Complement to MinShowUID: users with a UID greater than this number will
# not be shown as well.
# Default is 65535
MaxShowUID=65000
# If false, the users are listed in the order they appear in /etc/passwd.
# If true, they are sorted alphabetically.
# Default is true
#SortUsers=false
# Specify, where the users' pictures should be taken from.
# "AdminOnly" - from <FaceDir>/$USER.face[.icon]
# "PreferAdmin" - prefer <FaceDir>, fallback on $HOME
# "PreferUser" - ... and the other way round
# "UserOnly" - from the user's $HOME/.face[.icon]
# Default is AdminOnly
FaceSource=UserOnly
# The directory containing the user images if FaceSource is not UserOnly.
# Default is "/usr/share/apps/kdm/faces"
#FaceDir=/usr/share/faces
# Specify, if/which user should be preselected for log in.
# "None" - do not preselect any user
# "Previous" - the user which successfully logged in last time
# "Default" - the user specified in the DefaultUser option
# Default is None
#PreselectUser=Previous
# If this is true, the password input line is focused automatically if
# a user is preselected.
# Default is false
#FocusPasswd=true
# If this is true, the entered password is echoed as bullets. Otherwise,
# no feedback is given at all.
# Default is true
#EchoPasswd=false
# If true, krootimage will be automatically started by KDM; otherwise, the
# Setup script should be used to setup the background.
# Default is true
#UseBackground=false
# The configuration file to be used by krootimage.
# Default is "/usr/share/config/kdm/backgroundrc"
BackgroundCfg=/usr/share/config/kdm/backgroundrc
# Whether to grab keyboard and mouse while the greeter is visible. Grabs
# may improve security, but make on-screen keyboards, etc. unusable.
# "Never" - never grab
# "IfNoAuth" - grab if the display requires no X authorization
# "Always" - always grab
# Default is IfNoAuth
#GrabInput=Always
# Hold the X-server grabbed the whole time the greeter is visible. This
# may be more secure, but it will disable any background and other
# X-clients started from the Setup script.
# Default is false
#GrabServer=true
# How many seconds to wait for grab to succeed.
# Default is 3
#GrabTimeout=3
# Warn, if display has no X-authorization (local auth cannot be created,
# XDMCP display wants no auth, or display is foreign from StaticServers).
# Default is true
#AuthComplain=false
# Random seed for forging saved session types, etc. of unknown users.
# This value should be random but constant across the login domain.
# Default is 0
ForgingSeed=1367919444
# Specify conversation plugins for the login dialog. Each plugin can be
# specified as a base name (which expands to $kde_modulesdir/kgreet_$base)
# or as a full pathname.
# Default is "classic"
#PluginsLogin=sign
# Same as PluginsLogin, but for the shutdown dialog.
# Default is "classic"
#PluginsShutdown=modern
# A list of options of the form Key=Value. The conversation plugins can query
# these settings; it is up to them what possible keys are.
# Default is ""
#PluginOptions=SomeKey=randomvalue,Foo=bar
# Show the "Console Login" action in the greeter (if ServerTTY/ConsoleTTYs
# is configured).
# Default is true
#AllowConsole=false
# A program to run while the greeter is visible. It is supposed to preload
# as much as possible of the session that is going to be started (most
# probably).
# Default is ""
Preloader=/usr/bin/preloadkde
# Whether the greeter should be themed.
# Default is false
UseTheme=true
# The theme to use for the greeter. Can point to either a directory or an XML
# file.
# Default is ""
Theme=/usr/share/apps/kdm/themes/modernarchlinux
# Enable the Alt-Ctrl-D shortcut to toggle greeter theme debugging.
# Default is false
#AllowThemeDebug=true
# Core config for local displays
[X-:*-Core]
# How often to try to run the X-server. Running includes executing it and
# waiting for it to come up.
# Default is 1
#ServerAttempts=1
# How long to wait for a local X-server to come up.
# Default is 30
#ServerTimeout=30
# The command line to start the X-server, without display number and VT spec.
# This string is subject to word splitting.
# Default is "/usr/bin/X"
ServerCmd=/usr/bin/X -br -novtswitch -quiet
# Additional arguments for the X-servers for local sessions.
# This string is subject to word splitting.
# Default is ""
ServerArgsLocal=-nolisten tcp
# Additional arguments for the X-servers for remote sessions.
# This string is subject to word splitting.
# Default is ""
#ServerArgsRemote=
# The user the X-server should run as. Empty results in root.
# Default is ""
#ServerUID=_x11
# Restart instead of resetting the local X-server after session exit.
# Use it if the server leaks memory etc.
# Default is true
#TerminateServer=false
# Create X-authorizations for local displays.
# Default is true
#Authorize=false
# Which X-authorization mechanisms should be used.
# Default is "MIT-MAGIC-COOKIE-1"
#AuthNames=
# Need to reset the X-server to make it read initial Xauth file.
# Default is false
#ResetForAuth=true
# See above
AllowNullPasswd=true
# See above
AllowShutdown=All
# Enable password-less logins on this display. USE WITH EXTREME CARE!
# Default is false
NoPassEnable=true
# The users that do not need to provide a password to log in. NEVER list root!
# "*" means all non-root users. @<group> means all users in that group.
# Default is ""
NoPassUsers=arcanis
# Greeter config for local displays
[X-:*-Greeter]
# See above
PreselectUser=Previous
# See above
FocusPasswd=true
# Specify whether the greeter of local displays should start up in host chooser
# (remote) or login (local) mode and whether it is allowed to switch to the
# other mode.
# "LocalOnly" - only local login possible
# "DefaultLocal" - start up in local mode, but allow switching to remote mode
# "DefaultRemote" - ... and the other way round
# "RemoteOnly" - only choice of remote host possible
# Default is LocalOnly
LoginMode=DefaultLocal
# A list of hosts to be automatically added to the remote login menu. The
# special name "*" means broadcast.
# Default is "*"
#ChooserHosts=*,host1,host2,host3.local,login.domain.com
# Show the "Restart X Server"/"Close Connection" action in the greeter.
# Default is true
AllowClose=false
# Core config for 1st local display
[X-:0-Core]
# The VT the X-server should run on; auto-assign if zero, don't assign if -1.
# Better leave it zero and use ServerVTs.
# Default is 0
#ServerVT=7
# Enable automatic login. USE WITH EXTREME CARE!
# Default is false
AutoLoginEnable=true
# If true, auto-login after logout. If false, auto-login is performed only
# when a display session starts up.
# Default is false
#AutoLoginAgain=true
# The delay in seconds before automatic login kicks in.
# Default is 0
#AutoLoginDelay=10
# The user to log in automatically. NEVER specify root!
# Default is ""
AutoLoginUser=arcanis
# The password for the user to log in automatically. This is NOT required
# unless the user is logged into a NIS or Kerberos domain. If you use this
# option, you should "chmod 600 kdmrc" for obvious reasons.
# Default is ""
#AutoLoginPass=secret!
# Immediately lock the automatically started session. This works only with
# KDE sessions.
# Default is false
#AutoLoginLocked=true
# See above
ClientLogFile=.xsession-errors
# Greeter config for 1st local display
[X-:0-Greeter]
# See above
PreselectUser=Default
# The user to preselect if PreselectUser=Default.
# Default is ""
DefaultUser=arcanis

32
sddm.conf Normal file
View File

@ -0,0 +1,32 @@
[General]
HaltCommand=/usr/bin/systemctl poweroff
RebootCommand=/usr/bin/systemctl reboot
Numlock=none
[Theme]
ThemeDir=/usr/share/sddm/themes
Current=archlinux
FacesDir=/usr/share/sddm/faces
CursorTheme=Pulse-Glass
[XDisplay]
ServerPath=/usr/bin/X
XauthPath=/usr/bin/xauth
SessionDir=/usr/share/xsessions
SessionCommand=/usr/share/sddm/scripts/Xsession
DisplayCommand=/usr/share/sddm/scripts/Xsetup
MinimumVT=7
[Users]
DefaultPath=/bin:/usr/bin:/usr/local/bin
MinimumUid=1000
MaximumUid=65000
HideUsers=secwall,share
HideShells=
RememberLastUser=true
RememberLastSession=true
[Autologin]
User=arcanis
Session=kde-plasma.desktop
Relogin=false

1
zlogout Normal file
View File

@ -0,0 +1 @@
clear

50
zsh/archive_functions Normal file
View File

@ -0,0 +1,50 @@
# function to extract archives
# EXAMPLE: unpack file
unpack() {
if [[ -f $1 ]]; then
case $1 in
*.tar.bz2) tar xjfv $1 ;;
*.tar.gz) tar xzfv $1 ;;
*.tar.xz) tar xvJf $1 ;;
*.bz2) bunzip2 $1 ;;
*.gz) gunzip $1 ;;
*.rar) unrar x $1 ;;
*.tar) tar xf $1 ;;
*.tbz) tar xjvf $1 ;;
*.tbz2) tar xjf $1 ;;
*.tgz) tar xzf $1 ;;
*.zip) unzip $1 ;;
*.Z) uncompress $1 ;;
*.7z) 7z x $1 ;;
*) echo "I don't know how to extract '$1'" ;;
esac
else
case $1 in
*help) echo "Usage: unpack ARCHIVE_NAME" ;;
*) echo "'$1' is not a valid file" ;;
esac
fi
}
# function to create archives
# EXAMPLE: pack tar file
pack() {
if [ $1 ]; then
case $1 in
tar.bz2) tar -cjvf $2.tar.bz2 $2 ;;
tar.gz) tar -czvf $2.tar.bz2 $2 ;;
tar.xz) tar -cf - $2 | xz -9 -c - > $2.tar.xz ;;
bz2) bzip $2 ;;
gz) gzip -c -9 -n $2 > $2.gz ;;
tar) tar cpvf $2.tar $2 ;;
tbz) tar cjvf $2.tar.bz2 $2 ;;
tgz) tar czvf $2.tar.gz $2 ;;
zip) zip -r $2.zip $2 ;;
7z) 7z a $2.7z $2 ;;
*help) echo "Usage: pack TYPE FILES" ;;
*) echo "'$1' cannot be packed via pack()" ;;
esac
else
echo "'$1' is not a valid file"
fi
}

40
zsh/custom_rm Normal file
View File

@ -0,0 +1,40 @@
# redefine rm command
rm() {
# error check
[ $# -eq 0 ] && { echo "Files are not set"; return 1 }
echo "$@" | grep -qe '-h\|--help' && { echo "Usage: rm FILE..."; return 0 }
echo "$@" | grep -q " -" && echo "Warning: this function doesn't support any flags"
# set trash path
TRASHDIR="$HOME/.local/share/Trash"
TRASHFILE="${TRASHDIR}/files"
TRASHINFO="${TRASHDIR}/info"
for DIRECTORY in "${TRASHDIR}" "${TRASHFILE}" "${TRASHINFO}"; do
if [ -e "${DIRECTORY}" ]; then
[ -d "${DIRECTORY}" ] || { echo "'${DIRECTORY}' is a file"; return 1 }
else
mkdir -p -m755 "${DIRECTORY}"
fi
done
# confirm
CONFIRM=""
echo -n "Do you realy want to remove '$@'? [ny] "; read -k1 CONFIRM; echo
[[ ! $CONFIRM =~ [yY] ]] && return 1
# move
for FILE in "$@"; do
DESTFILE="$(basename -- "${FILE}")"
SUFFIX='';
ITER=0;
while [ -e "${TRASHFILE}/${DESTFILE}${SUFFIX}" ]; do
SUFFIX="_${ITER}";
ITER=$(expr ${ITER} + 1)
done
echo "Remove '${FILE}'"
if [ "$(dirname -- "$(realpath -- "${FILE}")")" == "${TRASHFILE}" ]; then
/usr/bin/rm -rf -- "${FILE}"
/usr/bin/rm -rf -- "${TRASHINFO}/${DESTFILE}.trashinfo"
else
mv -- "${FILE}" "${TRASHFILE}/${DESTFILE}${SUFFIX}" || return 1
echo "[Trash Info]\nPath=$(realpath -- "${FILE}")\nDeletionDate=$(date +%Y-%m-%dT%H:%M:%S)" > "${TRASHINFO}/${DESTFILE}${SUFFIX}.trashinfo" || return 1
fi
done
}

15
zsh/custom_su Normal file
View File

@ -0,0 +1,15 @@
# redefine su command
su() {
CHECKSU=0
for FLAG in $*; do
[[ $FLAG == "-" ]] && CHECKSU=1
[[ $FLAG == "-l" ]] && CHECKSU=1
[[ $FLAG == "--login" ]] && CHECKSU=1
done
if [[ $CHECKSU == 0 ]]; then
echo "Use 'su -', Luke"
/usr/bin/su - $*
else
/usr/bin/su $*
fi
}

7
zsh/filetypes_aliases Normal file
View File

@ -0,0 +1,7 @@
# alias -s
alias -s {avi,mpeg,mpg,mov,m2v,mkv}=mpv
alias -s {mp3,flac}=qmmp
alias -s {odt,doc,xls,ppt,docx,xlsx,pptx,csv}=libreoffice
alias -s {pdf}=okular
autoload -U pick-web-browser
alias -s {html,htm}=firefox

4
zsh/hash_common Normal file
View File

@ -0,0 +1,4 @@
# common hashs
hash -d iso="/mnt/iso"
hash -d u1="/mnt/usbdev1"
hash -d u2="/mnt/usbdev2"

3
zsh/hash_desktop Normal file
View File

@ -0,0 +1,3 @@
# hash
hash -d global="/mnt/global"
hash -d windows="/mnt/windows"

44
zsh/highlighting Normal file
View File

@ -0,0 +1,44 @@
# highlighting
source "/usr/share/zsh/plugins/zsh-syntax-highlighting/zsh-syntax-highlighting.zsh"
ZSH_HIGHLIGHT_HIGHLIGHTERS=(main brackets pattern)
# brackets
ZSH_HIGHLIGHT_STYLES[bracket-level-1]='fg=blue,bold'
ZSH_HIGHLIGHT_STYLES[bracket-level-2]='fg=red,bold'
ZSH_HIGHLIGHT_STYLES[bracket-level-3]='fg=yellow,bold'
ZSH_HIGHLIGHT_STYLES[bracket-level-4]='fg=magenta,bold'
# cursor
#ZSH_HIGHLIGHT_STYLES[cursor]='bg=blue'
# main
# default
ZSH_HIGHLIGHT_STYLES[default]='none'
# unknown
ZSH_HIGHLIGHT_STYLES[unknown-token]='fg=red'
# command
ZSH_HIGHLIGHT_STYLES[reserved-word]='fg=magenta,bold'
ZSH_HIGHLIGHT_STYLES[alias]='fg=yellow,bold'
ZSH_HIGHLIGHT_STYLES[builtin]='fg=green,bold'
ZSH_HIGHLIGHT_STYLES[function]='fg=green,bold'
ZSH_HIGHLIGHT_STYLES[command]='fg=green'
ZSH_HIGHLIGHT_STYLES[precommand]='fg=blue,bold'
ZSH_HIGHLIGHT_STYLES[commandseparator]='fg=yellow'
ZSH_HIGHLIGHT_STYLES[hashed-command]='fg=green'
ZSH_HIGHLIGHT_STYLES[single-hyphen-option]='fg=blue,bold'
ZSH_HIGHLIGHT_STYLES[double-hyphen-option]='fg=blue,bold'
# path
ZSH_HIGHLIGHT_STYLES[path]='fg=cyan,bold'
ZSH_HIGHLIGHT_STYLES[path_prefix]='fg=cyan'
ZSH_HIGHLIGHT_STYLES[path_approx]='fg=cyan'
# shell
ZSH_HIGHLIGHT_STYLES[globbing]='fg=cyan'
ZSH_HIGHLIGHT_STYLES[history-expansion]='fg=blue'
ZSH_HIGHLIGHT_STYLES[assign]='fg=magenta'
ZSH_HIGHLIGHT_STYLES[dollar-double-quoted-argument]='fg=cyan'
ZSH_HIGHLIGHT_STYLES[back-double-quoted-argument]='fg=cyan'
ZSH_HIGHLIGHT_STYLES[back-quoted-argument]='fg=blue'
# quotes
ZSH_HIGHLIGHT_STYLES[single-quoted-argument]='fg=yellow,underline'
ZSH_HIGHLIGHT_STYLES[double-quoted-argument]='fg=yellow'
# pattern
ZSH_HIGHLIGHT_PATTERNS+=('\~b/rm ' 'fg=green')
# root
#ZSH_HIGHLIGHT_STYLES[root]='bg=red'

7
zsh/pacman_common Normal file
View File

@ -0,0 +1,7 @@
# redefine pacman and yaourt
pacman() {
/usr/bin/sudo /usr/bin/pacman $* && echo "$*" | grep -q "S\|R\|U" && rehash
}
yaourt() {
/usr/bin/yaourt $* && echo "$*" | grep -q "S\|R\|U" && rehash
}

7
zsh/pacman_test Normal file
View File

@ -0,0 +1,7 @@
# pacman commands with repo variations
yatest() {
/usr/bin/yaourt --config /etc/pactest.conf $* && echo "$*" | grep -q "S\|R\|U" && rehash
}
yaaur() {
/usr/bin/yaourt --config /etc/pacaur.conf $* && echo "$*" | grep -q "S\|R\|U" && rehash
}

2
zsh/pkgfile Normal file
View File

@ -0,0 +1,2 @@
# pkgfile
source "/usr/share/doc/pkgfile/command-not-found.zsh"

41
zsh/prompt Normal file
View File

@ -0,0 +1,41 @@
# PROMPT && RPROMPT
if [[ $EUID == 0 ]]; then
# [root@host dir]#
PROMPT="%{$fg_bold[white]%}[%{$reset_color%}\
%{$fg_bold[red]%}%n%{$reset_color%}\
%{$fg_bold[white]%}@%{$reset_color%}\
%{$fg_no_bold[red]%}%m %{$reset_color%}\
%{$fg_bold[yellow]%}%1/%{$reset_color%}\
%{$fg_bold[white]%}]# %{$reset_color%}"
else
# [user@host dir]$
PROMPT="%{$fg_bold[white]%}[%{$reset_color%}\
%{$fg_bold[green]%}%n%{$reset_color%}\
%{$fg_bold[white]%}@%{$reset_color%}\
%{$fg_no_bold[green]%}%m %{$reset_color%}\
%{$fg_bold[yellow]%}%1/%{$reset_color%}\
%{$fg_bold[white]%}]$ %{$reset_color%}"
fi
precmd() {
# battery charge
function batcharge {
bat_perc=$(acpi | awk {'print $4;'} | sed -e "s/\s//" -e "s/%.*//")
if [[ ${bat_perc} < 15 ]]; then
col="%{$fg_bold[red]%}"
elif [[ ${bat_perc} < 50 ]]; then
col="%{$fg_bold[yellow]%}"
else
col="%{$fg_bold[green]%}"
fi
echo "%{$fg_bold[white]%}["$col$bat_perc"%{$fg_bold[white]%}%%]%{$reset_color%}"
}
# last command
returncode="%(?.%{$fg[green]%}.%{$fg[red]%})%?%{$resetcolor%}"
RPROMPT="%{$fg_bold[white]%}[%{$reset_color%}\
%{$fg_bold[cyan]%}%T%{$reset_color%}\
%{$fg_bold[white]%}]%{$reset_color%}"\
$(batcharge)\
"%{$fg_bold[white]%}[%{$reset_color%}"\
${returncode}\
"%{$fg_bold[white]%}]%{$reset_color%}"
}

27
zsh/prompt_server Normal file
View File

@ -0,0 +1,27 @@
# PROMPT && RPROMPT
if [[ $EUID == 0 ]]; then
# [root@host dir]#
PROMPT="%{$fg_bold[white]%}[%{$reset_color%}\
%{$fg_bold[red]%}%n%{$reset_color%}\
%{$fg_bold[white]%}@%{$reset_color%}\
%{$fg_no_bold[blue]%}%m %{$reset_color%}\
%{$fg_bold[yellow]%}%1/%{$reset_color%}\
%{$fg_bold[white]%}]# %{$reset_color%}"
else
# [user@host dir]$
PROMPT="%{$fg_bold[white]%}[%{$reset_color%}\
%{$fg_bold[green]%}%n%{$reset_color%}\
%{$fg_bold[white]%}@%{$reset_color%}\
%{$fg_no_bold[blue]%}%m %{$reset_color%}\
%{$fg_bold[yellow]%}%1/%{$reset_color%}\
%{$fg_bold[white]%}]$ %{$reset_color%}"
fi
precmd() {
# last command
returncode="%(?.%{$fg[green]%}.%{$fg[red]%})%?%{$resetcolor%}"
RPROMPT="%{$fg_bold[white]%}[%{$reset_color%}\
%{$fg_bold[cyan]%}%T%{$reset_color%}\
%{$fg_bold[white]%}][%{$reset_color%}"\
${returncode}\
"%{$fg_bold[white]%}]%{$reset_color%}"
}

12
zsh/sudo_aliases_pc Normal file
View File

@ -0,0 +1,12 @@
# sudo alias
if [[ ${EUID} == 0 ]]; then
alias mts_3g='eject /dev/sr1 && sleep 5 && wvdial mts3g && disown'
alias sddm='systemctl start sddm && exit'
else
alias cpu='sudo cpu'
alias backlight='sudo backlight'
alias exante='sudo netctl start exante && sudo systemctl start exante-vpn && sddm'
alias mts_3g='sudo eject /dev/sr1 && sleep 5 && sudo wvdial mts3g && disown'
alias sddm='sudo systemctl start sddm && exit'
alias wifi-menu='sudo wifi-menu'
fi

28
zsh/sudo_aliases_server Normal file
View File

@ -0,0 +1,28 @@
# sudo alias
if [[ ${EUID} == 0 ]]; then
alias fat32mnt='mount -t vfat -o codepage=866,iocharset=utf8,umask=000'
alias synctime='{ ntpd -qg; hwclock -w; date; }'
else
alias dhcpcd='sudo dhcpcd'
alias extra-i686-build='sudo extra-i686-build'
alias extra-x86_64-build='sudo extra-x86_64-build'
alias fat32mnt='sudo mount -t vfat -o codepage=866,iocharset=utf8,umask=000'
alias modprobe='sudo modprobe'
alias mount='sudo mount'
alias multilib-build='sudo multilib-build'
alias multilib-staging-build='sudo multilib-staging-build'
alias multilib-testing-build='sudo multilib-testing-build'
alias netctl='sudo netctl'
alias pacdiff='sudo pacdiff'
alias rmmod='sudo rmmod'
alias scat='sudo cat'
alias sgrep='sudo grep'
alias staging-i686-build='sudo staging-i686-build'
alias staging-x86_64-build='sudo staging-x86_64-build'
alias svim='sudo vim'
alias synctime='{ sudo ntpd -qg; sudo hwclock -w; date; }'
alias systemctl='sudo systemctl'
alias testing-i686-build='sudo testing-i686-build'
alias testing-x86_64-build='sudo testing-x86_64-build'
alias umount='sudo umount'
fi

5
zsh/vimpager Normal file
View File

@ -0,0 +1,5 @@
# use vimpager instead of less
alias less='vimpager'
alias zless='vimpager'
export PAGER="vimpager"

48
zsh/xrandr_e530 Normal file
View File

@ -0,0 +1,48 @@
# xrandr functions for ThinkPad E530
# functions to contorl xrandr
# EXAMPLE: projctl 1024x768
projctl() {
MONITORS="$(xrandr | grep connected | cut -d ' ' -f 1 | tr '\n' ' ')"
echo "Available monitors are: ${MONITORS}"
FIRSTMON="LVDS1"
SECONDMON="VGA1"
RESOLUTION="1366x768"
until [ -z $1 ]; do
case "$1" in
"-h" | "--help" ) echo "Usage: projctl [ off/resol ] [ -o MON | --output MON ]" && return 0 ;;
"-o" | "--output" ) [ -z "$2" ] || SECONDMON="$2" && shift ;;
* ) RESOLUTION="$1" ;;
esac
shift
done
if [[ "${RESOLUTION}" == "off" ]]; then
echo "Disable ${SECONDMON}"
xrandr --output ${FIRSTMON} --mode ${RESOLUTION} --output ${SECONDMON} --off
else
echo "Using resolution: ${RESOLUTION}"
xrandr --output ${FIRSTMON} --mode ${RESOLUTION} --output ${SECONDMON} --mode ${RESOLUTION}
fi
}
twinmon() {
MONITORS="$(xrandr | grep connected | cut -d ' ' -f 1 | tr '\n' ' ')"
echo "Available monitors are: ${MONITORS}"
FIRSTMON="LVDS1"
SECONDMON="VGA1"
MODE="on"
until [ -z $1 ]; do
case "$1" in
"-h" | "--help" ) echo "Usage: twinmon [ off ] [ -o MON | --output MON ]" && return 0 ;;
"-o" | "--output" ) [ -z "$2" ] || SECONDMON="$2" && shift ;;
"off" ) MODE="off" ;;
esac
shift
done
if [[ "${MODE}" == "off" ]]; then
echo "Disable ${SECONDMON}"
xrandr --output ${FIRSTMON} --auto --primary --output ${SECONDMON} --off
else
echo "Enable ${SECONDMON}"
xrandr --output ${FIRSTMON} --auto --primary --output ${SECONDMON} --auto --left-of ${FIRSTMON}
fi
}

50
zsh/xrandr_t440 Normal file
View File

@ -0,0 +1,50 @@
# xrandr functions for ThinkPad T440
# functions to contorl xrandr
# EXAMPLE: projctl 1024x768
projctl() {
MONITORS="$(xrandr | grep connected | cut -d ' ' -f 1 | tr '\n' ' ')"
echo "Available monitors are: ${MONITORS}"
FIRSTMON="eDP1"
SECONDMON="DP2"
RESOLUTION="1600x900"
until [ -z $1 ]; do
case "$1" in
"-h" | "--help" ) echo "Usage: projctl [ off/resol ] [ -o MON | --output MON ]" && return 0 ;;
"-o" | "--output" ) [ -z "$2" ] || SECONDMON="$2" && shift ;;
* ) RESOLUTION="$1" ;;
esac
shift
done
if [[ "${RESOLUTION}" == "off" ]]; then
echo "Disable ${SECONDMON}"
xrandr --output ${FIRSTMON} --mode ${RESOLUTION} --output ${SECONDMON} --off
else
echo "Using resolution: ${RESOLUTION}"
xrandr --output ${FIRSTMON} --mode ${RESOLUTION} --output ${SECONDMON} --mode ${RESOLUTION}
fi
xinput set-prop 10 137 $(get-coord-matrix.py)
}
twinmon() {
MONITORS="$(xrandr | grep connected | cut -d ' ' -f 1 | tr '\n' ' ')"
echo "Available monitors are: ${MONITORS}"
FIRSTMON="eDP1"
SECONDMON="DP2"
MODE="on"
until [ -z $1 ]; do
case "$1" in
"-h" | "--help" ) echo "Usage: twinmon [ off ] [ -o MON | --output MON ]" && return 0 ;;
"-o" | "--output" ) [ -z "$2" ] || SECONDMON="$2" && shift ;;
"off" ) MODE="off" ;;
esac
shift
done
if [[ "${MODE}" == "off" ]]; then
echo "Disable ${SECONDMON}"
xrandr --output ${FIRSTMON} --auto --primary --output ${SECONDMON} --off
else
echo "Enable ${SECONDMON}"
xrandr --output ${FIRSTMON} --auto --primary --output ${SECONDMON} --auto --left-of ${FIRSTMON}
fi
xinput set-prop 10 137 $(get-coord-matrix.py)
}

354
zshrc
View File

@ -1,53 +1,9 @@
## global settings
# history # history
HISTFILE=~/.zsh_history HISTFILE="${HOME}/.zsh_history"
HISTSIZE=500000 HISTSIZE=500000
SAVEHIST=500000 SAVEHIST=500000
# highlighting
source /usr/share/zsh/plugins/zsh-syntax-highlighting/zsh-syntax-highlighting.zsh
ZSH_HIGHLIGHT_HIGHLIGHTERS=(main brackets pattern)
# brackets
ZSH_HIGHLIGHT_STYLES[bracket-level-1]='fg=blue,bold'
ZSH_HIGHLIGHT_STYLES[bracket-level-2]='fg=red,bold'
ZSH_HIGHLIGHT_STYLES[bracket-level-3]='fg=yellow,bold'
ZSH_HIGHLIGHT_STYLES[bracket-level-4]='fg=magenta,bold'
# cursor
#ZSH_HIGHLIGHT_STYLES[cursor]='bg=blue'
# main
# default
ZSH_HIGHLIGHT_STYLES[default]='none'
# unknown
ZSH_HIGHLIGHT_STYLES[unknown-token]='fg=red'
# command
ZSH_HIGHLIGHT_STYLES[reserved-word]='fg=magenta,bold'
ZSH_HIGHLIGHT_STYLES[alias]='fg=yellow,bold'
ZSH_HIGHLIGHT_STYLES[builtin]='fg=green,bold'
ZSH_HIGHLIGHT_STYLES[function]='fg=green,bold'
ZSH_HIGHLIGHT_STYLES[command]='fg=green'
ZSH_HIGHLIGHT_STYLES[precommand]='fg=blue,bold'
ZSH_HIGHLIGHT_STYLES[commandseparator]='fg=yellow'
ZSH_HIGHLIGHT_STYLES[hashed-command]='fg=green'
ZSH_HIGHLIGHT_STYLES[single-hyphen-option]='fg=blue,bold'
ZSH_HIGHLIGHT_STYLES[double-hyphen-option]='fg=blue,bold'
# path
ZSH_HIGHLIGHT_STYLES[path]='fg=cyan,bold'
ZSH_HIGHLIGHT_STYLES[path_prefix]='fg=cyan'
ZSH_HIGHLIGHT_STYLES[path_approx]='fg=cyan'
# shell
ZSH_HIGHLIGHT_STYLES[globbing]='fg=cyan'
ZSH_HIGHLIGHT_STYLES[history-expansion]='fg=blue'
ZSH_HIGHLIGHT_STYLES[assign]='fg=magenta'
ZSH_HIGHLIGHT_STYLES[dollar-double-quoted-argument]='fg=cyan'
ZSH_HIGHLIGHT_STYLES[back-double-quoted-argument]='fg=cyan'
ZSH_HIGHLIGHT_STYLES[back-quoted-argument]='fg=blue'
# quotes
ZSH_HIGHLIGHT_STYLES[single-quoted-argument]='fg=yellow,underline'
ZSH_HIGHLIGHT_STYLES[double-quoted-argument]='fg=yellow'
# pattern
ZSH_HIGHLIGHT_PATTERNS+=('\~b/rm ' 'fg=green')
# root
#ZSH_HIGHLIGHT_STYLES[root]='bg=red'
# bindkeys # bindkeys
bindkey '^[[A' up-line-or-search # up arrow for back-history-search bindkey '^[[A' up-line-or-search # up arrow for back-history-search
bindkey '^[[B' down-line-or-search # down arrow for fwd-history-search bindkey '^[[B' down-line-or-search # down arrow for fwd-history-search
@ -67,7 +23,7 @@ bashcompinit
zstyle ':completion:*' insert-tab false zstyle ':completion:*' insert-tab false
zstyle ':completion:*' max-errors 2 zstyle ':completion:*' max-errors 2
# correct host complete # correct host complete
[[ -f ~/.ssh/config ]] && zstyle ':completion:*' hosts $(awk '/^Host .*$/ { print $2 }' ~/.ssh/config) [[ -f ${HOME}/.ssh/config ]] && zstyle ':completion:*' hosts $(awk '/^Host .*$/ { print $2 }' "${HOME}/.ssh/config")
# prompt # prompt
autoload -U promptinit autoload -U promptinit
@ -108,129 +64,11 @@ autoload zcalc
# automatically log of on 10*60 sec inactivity # automatically log of on 10*60 sec inactivity
export TMOUT=600 export TMOUT=600
# PROMPT && RPROMPT ## common alias
if [[ $EUID == 0 ]]; then
# [root@host dir]#
PROMPT="%{$fg_bold[white]%}[%{$reset_color%}\
%{$fg_bold[red]%}%n%{$reset_color%}\
%{$fg_bold[white]%}@%{$reset_color%}\
%{$fg_no_bold[red]%}%m %{$reset_color%}\
%{$fg_bold[yellow]%}%1/%{$reset_color%}\
%{$fg_bold[white]%}]# %{$reset_color%}"
else
# [user@host dir]$
PROMPT="%{$fg_bold[white]%}[%{$reset_color%}\
%{$fg_bold[green]%}%n%{$reset_color%}\
%{$fg_bold[white]%}@%{$reset_color%}\
%{$fg_no_bold[green]%}%m %{$reset_color%}\
%{$fg_bold[yellow]%}%1/%{$reset_color%}\
%{$fg_bold[white]%}]$ %{$reset_color%}"
fi
precmd() {
# battery charge
function batcharge {
bat_perc=`acpi | awk {'print $4;'} | sed -e "s/\s//" -e "s/%.*//"`
if [[ $bat_perc < 15 ]]; then
col="%{$fg_bold[red]%}"
elif [[ $bat_perc < 50 ]]; then
col="%{$fg_bold[yellow]%}"
else
col="%{$fg_bold[green]%}"
fi
echo "%{$fg_bold[white]%}["$col$bat_perc"%{$fg_bold[white]%}%%]%{$reset_color%}"
}
# last command
returncode="%(?.%{$fg[green]%}.%{$fg[red]%})%?%{$resetcolor%}"
RPROMPT="%{$fg_bold[white]%}[%{$reset_color%}\
%{$fg_bold[cyan]%}%T%{$reset_color%}\
%{$fg_bold[white]%}]%{$reset_color%}"\
$(batcharge)\
"%{$fg_bold[white]%}[%{$reset_color%}"\
$returncode\
"%{$fg_bold[white]%}]%{$reset_color%}"
}
show_which() {
OUTPUT=$(which $1 | cut -d " " -f7-)
echo "Running '$OUTPUT'" 1>&2
}
## alias
alias grep='grep --colour=auto' alias grep='grep --colour=auto'
alias top='htop' alias top='htop'
alias chrommsu='chromium --proxy-server=cache.msu:3128'
alias chromtor='chromium --proxy-server="socks://localhost:9050" --incognito'
alias chromi2p='chromium --proxy-server="http=127.0.0.1:4444;http=127.0.0.1:4444" --incognito'
alias df='df -k --print-type --human-readable' alias df='df -k --print-type --human-readable'
alias du='du -k --total --human-readable' alias du='du -k --total --human-readable'
alias less='vimpager'
alias zless='vimpager'
rm() {
# error check
[ $# -eq 0 ] && { echo "Files are not set"; return 1 }
echo "$@" | grep -qe '-h\|--help' && { echo "Usage: rm FILE..."; return 0 }
echo "$@" | grep -q "-" && echo "Warning: this function doesn't support any flags"
# set trash path
TRASHDIR="$HOME/.local/share/Trash"
TRASHFILE="${TRASHDIR}/files"
TRASHINFO="${TRASHDIR}/info"
for DIRECTORY in "${TRASHDIR}" "${TRASHFILE}" "${TRASHINFO}"; do
if [ -e "${DIRECTORY}" ]; then
[ -d "${DIRECTORY}" ] || { echo "'${DIRECTORY}' is a file"; return 1 }
else
mkdir -p -m755 "${DIRECTORY}"
fi
done
# confirm
CONFIRM=""
echo -n "Do you realy want to remove '$@'? [ny] "; read -k1 CONFIRM; echo
[[ ! $CONFIRM =~ [yY] ]] && return 1
# move
for FILE in "$@"; do
DESTFILE="$(basename -- "${FILE}")"
SUFFIX='';
ITER=0;
while [ -e "${TRASHFILE}/${DESTFILE}${SUFFIX}" ]; do
SUFFIX="_${ITER}";
ITER=$(expr ${ITER} + 1)
done
echo "Remove '${FILE}'"
if [ "$(dirname -- "$(realpath -- "${FILE}")")" == "${TRASHFILE}" ]; then
/usr/bin/rm -rf -- "${FILE}"
/usr/bin/rm -rf -- "${TRASHINFO}/${DESTFILE}.trashinfo"
else
mv -- "${FILE}" "${TRASHFILE}/${DESTFILE}${SUFFIX}" || return 1
echo "[Trash Info]\nPath=$(realpath -- "${FILE}")\nDeletionDate=$(date +%Y-%m-%dT%H:%M:%S)" > "${TRASHINFO}/${DESTFILE}${SUFFIX}.trashinfo" || return 1
fi
done
}
su() {
CHECKSU=0
for FLAG in $*; do
[[ $FLAG == "-" ]] && CHECKSU=1
[[ $FLAG == "-l" ]] && CHECKSU=1
[[ $FLAG == "--login" ]] && CHECKSU=1
done
if [[ $CHECKSU == 0 ]]; then
echo "Use 'su -', Luke"
/usr/bin/su - $*
else
/usr/bin/su $*
fi
}
pacman() {
/usr/bin/sudo /usr/bin/pacman $* && echo "$*" | grep -q "S\|R\|U" && rehash
}
yaourt() {
/usr/bin/yaourt $* && echo "$*" | grep -q "S\|R\|U" && rehash
}
yatest() {
/usr/bin/yaourt --config /etc/pactest.conf $* && echo "$*" | grep -q "S\|R\|U" && rehash
}
yaaur() {
/usr/bin/yaourt --config /etc/pacaur.conf $* && echo "$*" | grep -q "S\|R\|U" && rehash
}
alias ls='ls --color=auto --group-directories-first' alias ls='ls --color=auto --group-directories-first'
alias ll='ls -l --human-readable' alias ll='ls -l --human-readable'
@ -241,186 +79,34 @@ alias lz='ll -S --reverse'
alias lt='ll -t --reverse' alias lt='ll -t --reverse'
alias lm='la | more' alias lm='la | more'
# alias -s
alias -s {avi,mpeg,mpg,mov,m2v,mkv}=mpv
alias -s {mp3,flac}=qmmp
alias -s {odt,doc,xls,ppt,docx,xlsx,pptx,csv}=libreoffice
alias -s {pdf}=okular
autoload -U pick-web-browser
alias -s {html,htm}=qupzilla
# function to extract archives
# EXAMPLE: unpack file
unpack() {
if [[ -f $1 ]]; then
case $1 in
*.tar.bz2) tar xjfv $1 ;;
*.tar.gz) tar xzfv $1 ;;
*.tar.xz) tar xvJf $1 ;;
*.bz2) bunzip2 $1 ;;
*.gz) gunzip $1 ;;
*.rar) unrar x $1 ;;
*.tar) tar xf $1 ;;
*.tbz) tar xjvf $1 ;;
*.tbz2) tar xjf $1 ;;
*.tgz) tar xzf $1 ;;
*.zip) unzip $1 ;;
*.Z) uncompress $1 ;;
*.7z) 7z x $1 ;;
*) echo "I don't know how to extract '$1'" ;;
esac
else
case $1 in
*help) echo "Usage: unpack ARCHIVE_NAME" ;;
*) echo "'$1' is not a valid file" ;;
esac
fi
}
# function to create archives
# EXAMPLE: pack tar file
pack() {
if [ $1 ]; then
case $1 in
tar.bz2) tar -cjvf $2.tar.bz2 $2 ;;
tar.gz) tar -czvf $2.tar.bz2 $2 ;;
tar.xz) tar -cf - $2 | xz -9 -c - > $2.tar.xz ;;
bz2) bzip $2 ;;
gz) gzip -c -9 -n $2 > $2.gz ;;
tar) tar cpvf $2.tar $2 ;;
tbz) tar cjvf $2.tar.bz2 $2 ;;
tgz) tar czvf $2.tar.gz $2 ;;
zip) zip -r $2.zip $2 ;;
7z) 7z a $2.7z $2 ;;
*help) echo "Usage: pack TYPE FILES" ;;
*) echo "'$1' cannot be packed via pack()" ;;
esac
else
echo "'$1' is not a valid file"
fi
}
# functions to contorl xrandr
# EXAMPLE: projctl 1024x768
projctl() {
MONITORS="$(xrandr | grep connected | cut -d ' ' -f 1 | tr '\n' ' ')"
echo "Available monitors are: ${MONITORS}"
FIRSTMON="LVDS1"
SECONDMON="VGA1"
RESOLUTION="1366x768"
until [ -z $1 ]; do
case "$1" in
"-h" | "--help" ) echo "Usage: projctl [ off/resol ] [ -o MON | --output MON ]" && exit 0 ;;
"-o" | "--output" ) [ -z "$2" ] || SECONDMON="$2" && shift ;;
* ) RESOLUTION="$1" ;;
esac
shift
done
if [[ "${RESOLUTION}" == "off" ]]; then
echo "Disable ${SECONDMON}"
xrandr --output ${FIRSTMON} --mode ${RESOLUTION} --output ${SECONDMON} --off
else
echo "Using resolution: ${RESOLUTION}"
xrandr --output ${FIRSTMON} --mode ${RESOLUTION} --output ${SECONDMON} --mode ${RESOLUTION}
fi
}
twinmon() {
MONITORS="$(xrandr | grep connected | cut -d ' ' -f 1 | tr '\n' ' ')"
echo "Available monitors are: ${MONITORS}"
FIRSTMON="LVDS1"
SECONDMON="VGA1"
MODE="on"
until [ -z $1 ]; do
case "$1" in
"-h" | "--help" ) echo "Usage: twinmon [ off ] [ -o MON | --output MON ]" && exit 0 ;;
"-o" | "--output" ) [ -z "$2" ] || SECONDMON="$2" && shift ;;
"off" ) MODE="off" ;;
esac
shift
done
if [[ "${MODE}" == "off" ]]; then
echo "Disable ${SECONDMON}"
xrandr --output ${FIRSTMON} --auto --primary --output ${SECONDMON} --off
else
echo "Enable ${SECONDMON}"
xrandr --output ${FIRSTMON} --auto --primary --output ${SECONDMON} --auto --left-of ${FIRSTMON}
fi
}
# sudo alias
if [[ $EUID == 0 ]]; then
alias fat32mnt='mount -t vfat -o codepage=866,iocharset=utf8,umask=000'
# MTS 3G modem
alias mts_3g='eject /dev/sr1 && sleep 5 && wvdial mts3g && disown'
alias sddm='systemctl start sddm && exit'
alias synctime='{ ntpd -qg; hwclock -w; date; }'
else
alias fat32mnt='sudo mount -t vfat -o codepage=866,iocharset=utf8,umask=000'
alias umount='sudo umount'
alias mount='sudo mount'
alias netctl='sudo netctl'
# MTS 3G modem
alias mts_3g='sudo eject /dev/sr1 && sleep 5 && sudo wvdial mts3g && disown'
alias desktop='sudo systemctl start sshd && sudo systemctl start sddm && exit'
alias sddm='sudo systemctl start sddm && exit'
alias synctime='{ sudo ntpd -qg; sudo hwclock -w; date; }'
alias wifi-menu='sudo wifi-menu'
alias dhcpcd='sudo dhcpcd'
alias systemctl='sudo systemctl'
alias modprobe='sudo modprobe'
alias rmmod='sudo rmmod'
alias pacdiff='sudo pacdiff'
alias staging-i686-build='sudo staging-i686-build'
alias staging-x86_64-build='sudo staging-x86_64-build'
alias extra-i686-build='sudo extra-i686-build'
alias extra-x86_64-build='sudo extra-x86_64-build'
alias multilib-staging-build='sudo multilib-staging-build'
alias backlight='sudo backlight'
alias cpu='sudo cpu'
alias svim='sudo vim'
alias scat='sudo cat'
alias sgrep='sudo grep'
fi
# global alias # global alias
alias -g g="| grep" alias -g g='| grep'
alias -g l="| less" alias -g l='| less'
alias -g t="| tail" alias -g t='| tail'
alias -g h="| head" alias -g h='| head'
alias -g n="| wc -l" alias -g n='| wc -l'
alias -g dn="&> /dev/null &" alias -g dn='&> /dev/null &'
# pkgfile
source /usr/share/doc/pkgfile/command-not-found.zsh
# editor
export EDITOR="vim"
export PAGER="vimpager"
# hash
hash -d global=/mnt/global
hash -d windows=/mnt/windows
hash -d iso=/mnt/iso
hash -d u1=/mnt/usbdev1
hash -d u2=/mnt/usbdev2
# to run command ignoring aliases # to run command ignoring aliases
hash -d b=/usr/bin hash -d b="/usr/bin"
# umask # umask
umask 022 umask 022
# path ## environment
export PATH="$HOME/.local/bin/:$HOME/.local/bin/namd:$HOME/.local/bin/namd_gpu:$PATH" # editor
export EDITOR="vim"
# color gcc # color gcc
export GCC_COLOR="auto" export GCC_COLOR="auto"
# path
for _DIR in $(find "${HOME}/.local/bin" -type d 2> /dev/null); do export PATH="${_DIR}:${PATH}"; done
# fix urxvt # fix urxvt
if [[ ${TERM} =~ "rxvt-unicode-*" ]] export TERM="xterm" if [[ ${TERM} =~ "rxvt-unicode-*" ]] export TERM="xterm"
# ssh-agent # ssh-agent
if [[ $EUID != 0 ]]; then if [[ ${EUID} != 0 ]]; then
eval $(ssh-agent) > /dev/null eval $(ssh-agent) > /dev/null
ssh-add -l > /dev/null || alias ssh='ssh-add -l >/dev/null || ssh-add && unalias ssh; ssh' ssh-add -l > /dev/null || alias ssh='ssh-add -l >/dev/null || ssh-add && unalias ssh; ssh'
fi fi
## load custom settings from $HOME/.zsh
for _SCR in $(find "${HOME}/.zsh" -type f 2> /dev/null); do source "${_SCR}"; done

View File

@ -1,181 +0,0 @@
# history
HISTFILE=~/.zsh_history
HISTSIZE=500000
SAVEHIST=500000
# bindkeys
bindkey '^[[A' up-line-or-search # up arrow for back-history-search
bindkey '^[[B' down-line-or-search # down arrow for fwd-history-search
bindkey '\e[1~' beginning-of-line # home
bindkey '\e[2~' overwrite-mode # insert
bindkey '\e[3~' delete-char # del
bindkey '\e[4~' end-of-line # end
bindkey '\e[5~' up-line-or-history # page-up
bindkey '\e[6~' down-line-or-history # page-down
# autocomplit
autoload -U compinit
compinit
autoload -U bashcompinit
bashcompinit
# first symbol autocomplete
zstyle ':completion:*' insert-tab false
zstyle ':completion:*' max-errors 2
# correct host complete
[[ -f ~/.ssh/config ]] && zstyle ':completion:*' hosts $(awk '/^Host .*$/ { print $2 }' ~/.ssh/config)
# prompt
autoload -U promptinit
promptinit
# colors
autoload -U colors
colors
# autocd
setopt autocd
# correct
setopt CORRECT_ALL
SPROMPT="Correct '%R' to '%r' ? (nyae) "
# append history
setopt APPEND_HISTORY
# ignore dups in history
setopt HIST_IGNORE_ALL_DUPS
# ighore additional space in history
setopt HIST_IGNORE_SPACE
# reduce blanks in history
setopt HIST_REDUCE_BLANKS
# =cmd without autocomplit
unsetopt EQUALS
# disable beeps
unsetopt beep
# autoload calc
autoload zcalc
# automatically log of on 10*60 sec inactivity
export TMOUT=600
# PROMPT && RPROMPT
if [[ $EUID == 0 ]]; then
# [root@host dir]#
PROMPT="%{$fg_bold[white]%}[%{$reset_color%}\
%{$fg_bold[red]%}%n%{$reset_color%}\
%{$fg_bold[white]%}@%{$reset_color%}\
%{$fg_no_bold[blue]%}%m %{$reset_color%}\
%{$fg_bold[yellow]%}%1/%{$reset_color%}\
%{$fg_bold[white]%}]# %{$reset_color%}"
else
# [user@host dir]$
PROMPT="%{$fg_bold[white]%}[%{$reset_color%}\
%{$fg_bold[green]%}%n%{$reset_color%}\
%{$fg_bold[white]%}@%{$reset_color%}\
%{$fg_no_bold[blue]%}%m %{$reset_color%}\
%{$fg_bold[yellow]%}%1/%{$reset_color%}\
%{$fg_bold[white]%}]$ %{$reset_color%}"
fi
precmd() {
# last command
returncode="%(?.%{$fg[green]%}.%{$fg[red]%})%?%{$resetcolor%}"
RPROMPT="%{$fg_bold[white]%}[%{$reset_color%}\
%{$fg_bold[cyan]%}%T%{$reset_color%}\
%{$fg_bold[white]%}][%{$reset_color%}"\
$returncode\
"%{$fg_bold[white]%}]%{$reset_color%}"
}
## alias
alias grep='grep --colour=auto'
alias top='htop'
alias df='df -k --print-type --human-readable'
alias du='du -k --total --human-readable'
alias ls='ls --color=auto --group-directories-first'
alias ll='ls -l --human-readable'
alias lr='ls --recursive'
alias la='ll --almost-all'
alias lx='ll -X --ignore-backups'
alias lz='ll -S --reverse'
alias lt='ll -t --reverse'
alias lm='la | more'
# function to extract archives
# EXAMPLE: unpack file
unpack() {
if [[ -f $1 ]]; then
case $1 in
*.tar.bz2) tar xjfv $1 ;;
*.tar.gz) tar xzfv $1 ;;
*.tar.xz) tar xvJf $1 ;;
*.bz2) bunzip2 $1 ;;
*.gz) gunzip $1 ;;
*.rar) unrar x $1 ;;
*.tar) tar xf $1 ;;
*.tbz) tar xjvf $1 ;;
*.tbz2) tar xjf $1 ;;
*.tgz) tar xzf $1 ;;
*.zip) unzip $1 ;;
*.Z) uncompress $1 ;;
*.7z) 7z x $1 ;;
*) echo "I don't know how to extract '$1'" ;;
esac
else
case $1 in
*help) echo "Usage: unpack ARCHIVE_NAME" ;;
*) echo "'$1' is not a valid file" ;;
esac
fi
}
# function to create archives
# EXAMPLE: pack tar file
pack() {
if [ $1 ]; then
case $1 in
tar.bz2) tar -cjvf $2.tar.bz2 $2 ;;
tar.gz) tar -czvf $2.tar.bz2 $2 ;;
tar.xz) tar -cf - $2 | xz -9 -c - > $2.tar.xz ;;
bz2) bzip $2 ;;
gz) gzip -c -9 -n $2 > $2.gz ;;
tar) tar cpvf $2.tar $2 ;;
tbz) tar cjvf $2.tar.bz2 $2 ;;
tgz) tar czvf $2.tar.gz $2 ;;
zip) zip -r $2.zip $2 ;;
7z) 7z a $2.7z $2 ;;
*help) echo "Usage: pack TYPE FILES" ;;
*) echo "'$1' cannot be packed via pack()" ;;
esac
else
echo "'$1' is not a valid file"
fi
}
# global alias
alias -g g="| grep"
alias -g l="| less"
alias -g t="| tail"
alias -g h="| head"
alias -g n="| wc -l"
alias -g dn="&> /dev/null &"
# to run command ignoring aliases
hash -d b=/usr/bin
# editor
export EDITOR="vim"
# umask
umask 022
# path
export PATH="$PATH:$HOME/.local/bin/"
# fix urxvt
if [[ ${TERM} =~ "rxvt-unicode-*" ]] export TERM="xterm"

View File

@ -1,317 +0,0 @@
# history
HISTFILE=~/.zsh_history
HISTSIZE=500000
SAVEHIST=500000
# highlighting
source /usr/share/zsh/plugins/zsh-syntax-highlighting/zsh-syntax-highlighting.zsh
ZSH_HIGHLIGHT_HIGHLIGHTERS=(main brackets pattern)
# brackets
ZSH_HIGHLIGHT_STYLES[bracket-level-1]='fg=blue,bold'
ZSH_HIGHLIGHT_STYLES[bracket-level-2]='fg=red,bold'
ZSH_HIGHLIGHT_STYLES[bracket-level-3]='fg=yellow,bold'
ZSH_HIGHLIGHT_STYLES[bracket-level-4]='fg=magenta,bold'
# cursor
#ZSH_HIGHLIGHT_STYLES[cursor]='bg=blue'
# main
# default
ZSH_HIGHLIGHT_STYLES[default]='none'
# unknown
ZSH_HIGHLIGHT_STYLES[unknown-token]='fg=red'
# command
ZSH_HIGHLIGHT_STYLES[reserved-word]='fg=magenta,bold'
ZSH_HIGHLIGHT_STYLES[alias]='fg=yellow,bold'
ZSH_HIGHLIGHT_STYLES[builtin]='fg=green,bold'
ZSH_HIGHLIGHT_STYLES[function]='fg=green,bold'
ZSH_HIGHLIGHT_STYLES[command]='fg=green'
ZSH_HIGHLIGHT_STYLES[precommand]='fg=blue,bold'
ZSH_HIGHLIGHT_STYLES[commandseparator]='fg=yellow'
ZSH_HIGHLIGHT_STYLES[hashed-command]='fg=green'
ZSH_HIGHLIGHT_STYLES[single-hyphen-option]='fg=blue,bold'
ZSH_HIGHLIGHT_STYLES[double-hyphen-option]='fg=blue,bold'
# path
ZSH_HIGHLIGHT_STYLES[path]='fg=cyan,bold'
ZSH_HIGHLIGHT_STYLES[path_prefix]='fg=cyan'
ZSH_HIGHLIGHT_STYLES[path_approx]='fg=cyan'
# shell
ZSH_HIGHLIGHT_STYLES[globbing]='fg=cyan'
ZSH_HIGHLIGHT_STYLES[history-expansion]='fg=blue'
ZSH_HIGHLIGHT_STYLES[assign]='fg=magenta'
ZSH_HIGHLIGHT_STYLES[dollar-double-quoted-argument]='fg=cyan'
ZSH_HIGHLIGHT_STYLES[back-double-quoted-argument]='fg=cyan'
ZSH_HIGHLIGHT_STYLES[back-quoted-argument]='fg=blue'
# quotes
ZSH_HIGHLIGHT_STYLES[single-quoted-argument]='fg=yellow,underline'
ZSH_HIGHLIGHT_STYLES[double-quoted-argument]='fg=yellow'
# pattern
ZSH_HIGHLIGHT_PATTERNS+=('\~b/rm' 'fg=green')
# root
#ZSH_HIGHLIGHT_STYLES[root]='bg=red'
# bindkeys
bindkey '^[[A' up-line-or-search # up arrow for back-history-search
bindkey '^[[B' down-line-or-search # down arrow for fwd-history-search
bindkey '\e[1~' beginning-of-line # home
bindkey '\e[2~' overwrite-mode # insert
bindkey '\e[3~' delete-char # del
bindkey '\e[4~' end-of-line # end
bindkey '\e[5~' up-line-or-history # page-up
bindkey '\e[6~' down-line-or-history # page-down
# autocomplit
autoload -U compinit
compinit
autoload -U bashcompinit
bashcompinit
# first symbol autocomplete
zstyle ':completion:*' insert-tab false
zstyle ':completion:*' max-errors 2
# correct host complete
[[ -f ~/.ssh/config ]] && zstyle ':completion:*' hosts $(awk '/^Host .*$/ { print $2 }' ~/.ssh/config)
# prompt
autoload -U promptinit
promptinit
# colors
autoload -U colors
colors
# autocd
setopt autocd
# correct
setopt CORRECT_ALL
SPROMPT="Correct '%R' to '%r' ? [nyae] "
# append history
setopt APPEND_HISTORY
# ignore dups in history
setopt HIST_IGNORE_ALL_DUPS
# ighore additional space in history
setopt HIST_IGNORE_SPACE
# reduce blanks in history
setopt HIST_REDUCE_BLANKS
# =cmd without autocomplit
unsetopt EQUALS
# disable beeps
unsetopt beep
# autoload calc
autoload zcalc
# automatically log of on 10*60 sec inactivity
export TMOUT=600
# PROMPT && RPROMPT
if [[ $EUID == 0 ]]; then
# [root@host dir]#
PROMPT="%{$fg_bold[white]%}[%{$reset_color%}\
%{$fg_bold[red]%}%n%{$reset_color%}\
%{$fg_bold[white]%}@%{$reset_color%}\
%{$fg_no_bold[blue]%}%m %{$reset_color%}\
%{$fg_bold[yellow]%}%1/%{$reset_color%}\
%{$fg_bold[white]%}]# %{$reset_color%}"
else
# [user@host dir]$
PROMPT="%{$fg_bold[white]%}[%{$reset_color%}\
%{$fg_bold[green]%}%n%{$reset_color%}\
%{$fg_bold[white]%}@%{$reset_color%}\
%{$fg_no_bold[blue]%}%m %{$reset_color%}\
%{$fg_bold[yellow]%}%1/%{$reset_color%}\
%{$fg_bold[white]%}]$ %{$reset_color%}"
fi
precmd() {
# last command
returncode="%(?.%{$fg[green]%}.%{$fg[red]%})%?%{$resetcolor%}"
RPROMPT="%{$fg_bold[white]%}[%{$reset_color%}\
%{$fg_bold[cyan]%}%T%{$reset_color%}\
%{$fg_bold[white]%}][%{$reset_color%}"\
$returncode\
"%{$fg_bold[white]%}]%{$reset_color%}"
}
## alias
alias grep='grep --colour=auto'
alias top='htop'
alias df='df -k --print-type --human-readable'
alias du='du -k --total --human-readable'
alias less='vimpager'
alias zless='vimpager'
rm() {
# error check
[ $# -eq 0 ] && { echo "Files are not set"; return 1 }
echo "$@" | grep -qe '-h\|--help' && { echo "Usage: rm FILE..."; return 0 }
echo "$@" | grep -q "-" && echo "Warning: this function doesn't support any flags"
# set trash path
TRASHDIR="$HOME/.local/share/Trash"
TRASHFILE="${TRASHDIR}/files"
TRASHINFO="${TRASHDIR}/info"
for DIRECTORY in "${TRASHDIR}" "${TRASHFILE}" "${TRASHINFO}"; do
if [ -e "${DIRECTORY}" ]; then
[ -d "${DIRECTORY}" ] || { echo "'${DIRECTORY}' is a file"; return 1 }
else
mkdir -p -m755 "${DIRECTORY}"
fi
done
# confirm
CONFIRM=""
echo -n "Do you realy want to remove '$@'? [ny] "; read -k1 CONFIRM; echo
[[ ! $CONFIRM =~ [yY] ]] && return 1
# move
for FILE in "$@"; do
DESTFILE="$(basename -- "${FILE}")"
SUFFIX='';
ITER=0;
while [ -e "${TRASHFILE}/${DESTFILE}${SUFFIX}" ]; do
SUFFIX="_${ITER}";
ITER=$(expr ${ITER} + 1)
done
echo "Remove '${FILE}'"
if [ "$(dirname -- "$(realpath -- "${FILE}")")" == "${TRASHFILE}" ]; then
/usr/bin/rm -rf -- "${FILE}"
/usr/bin/rm -rf -- "${TRASHINFO}/${DESTFILE}.trashinfo"
else
mv -- "${FILE}" "${TRASHFILE}/${DESTFILE}${SUFFIX}" || return 1
echo "[Trash Info]\nPath=$(realpath -- "${FILE}")\nDeletionDate=$(date +%Y-%m-%dT%H:%M:%S)" > "${TRASHINFO}/${DESTFILE}${SUFFIX}.trashinfo" || return 1
fi
done
}
su() {
CHECKSU=0
for FLAG in $*; do
[[ $FLAG == "-" ]] && CHECKSU=1
[[ $FLAG == "-l" ]] && CHECKSU=1
[[ $FLAG == "--login" ]] && CHECKSU=1
done
if [[ $CHECKSU == 0 ]]; then
echo "Use 'su -', Luke"
/usr/bin/su - $*
else
/usr/bin/su $*
fi
}
pacman() {
/usr/bin/sudo /usr/bin/pacman $* && echo "$*" | grep -q "S\|R\|U" && rehash
}
yaourt() {
/usr/bin/yaourt $* && echo "$*" | grep -q "S\|R\|U" && rehash
}
alias ls='ls --color=auto --group-directories-first'
alias ll='ls -l --human-readable'
alias lr='ls --recursive'
alias la='ll --almost-all'
alias lx='ll -X --ignore-backups'
alias lz='ll -S --reverse'
alias lt='ll -t --reverse'
alias lm='la | more'
# function to extract archives
# EXAMPLE: unpack file
unpack() {
if [[ -f $1 ]]; then
case $1 in
*.tar.bz2) tar xjfv $1 ;;
*.tar.gz) tar xzfv $1 ;;
*.tar.xz) tar xvJf $1 ;;
*.bz2) bunzip2 $1 ;;
*.gz) gunzip $1 ;;
*.rar) unrar x $1 ;;
*.tar) tar xf $1 ;;
*.tbz) tar xjvf $1 ;;
*.tbz2) tar xjf $1 ;;
*.tgz) tar xzf $1 ;;
*.zip) unzip $1 ;;
*.Z) uncompress $1 ;;
*.7z) 7z x $1 ;;
*) echo "I don't know how to extract '$1'" ;;
esac
else
case $1 in
*help) echo "Usage: unpack ARCHIVE_NAME" ;;
*) echo "'$1' is not a valid file" ;;
esac
fi
}
# function to create archives
# EXAMPLE: pack tar file
pack() {
if [ $1 ]; then
case $1 in
tar.bz2) tar -cjvf $2.tar.bz2 $2 ;;
tar.gz) tar -czvf $2.tar.bz2 $2 ;;
tar.xz) tar -cf - $2 | xz -9 -c - > $2.tar.xz ;;
bz2) bzip $2 ;;
gz) gzip -c -9 -n $2 > $2.gz ;;
tar) tar cpvf $2.tar $2 ;;
tbz) tar cjvf $2.tar.bz2 $2 ;;
tgz) tar czvf $2.tar.gz $2 ;;
zip) zip -r $2.zip $2 ;;
7z) 7z a $2.7z $2 ;;
*help) echo "Usage: pack TYPE FILES" ;;
*) echo "'$1' cannot be packed via pack()" ;;
esac
else
echo "'$1' is not a valid file"
fi
}
# sudo alias
if [[ $EUID == 0 ]]; then
alias fat32mnt='mount -t vfat -o codepage=866,iocharset=utf8,umask=000'
alias synctime='{ ntpd -qg; hwclock -w; date; }'
else
alias fat32mnt='sudo mount -t vfat -o codepage=866,iocharset=utf8,umask=000'
alias umount='sudo umount'
alias mount='sudo mount'
alias netctl='sudo netctl'
alias synctime='{ sudo ntpd -qg; sudo hwclock -w; date; }'
alias dhcpcd='sudo dhcpcd'
alias systemctl='sudo systemctl'
alias modprobe='sudo modprobe'
alias rmmod='sudo rmmod'
alias pacdiff='sudo pacdiff'
alias staging-i686-build='sudo staging-i686-build'
alias staging-x86_64-build='sudo staging-x86_64-build'
alias multilib-staging-build='sudo multilib-staging-build'
alias svim='sudo vim'
alias scat='sudo cat'
alias sgrep='sudo grep'
fi
# global alias
alias -g g="| grep"
alias -g l="| less"
alias -g t="| tail"
alias -g h="| head"
alias -g n="| wc -l"
alias -g dn="&> /dev/null &"
# to run command ignoring aliases
hash -d b=/usr/bin
# pkgfile
source /usr/share/doc/pkgfile/command-not-found.zsh
# editor
export EDITOR="vim"
export PAGER="vimpager"
# umask
umask 022
# path
export PATH="$PATH:$HOME/.local/bin/"
# color gcc
export GCC_COLOR="auto"
# fix urxvt
if [[ ${TERM} =~ "rxvt-unicode-*" ]] export TERM="xterm"

View File

@ -1,419 +0,0 @@
# history
HISTFILE=~/.zsh_history
HISTSIZE=500000
SAVEHIST=500000
# highlighting
source /usr/share/zsh/plugins/zsh-syntax-highlighting/zsh-syntax-highlighting.zsh
ZSH_HIGHLIGHT_HIGHLIGHTERS=(main brackets pattern)
# brackets
ZSH_HIGHLIGHT_STYLES[bracket-level-1]='fg=blue,bold'
ZSH_HIGHLIGHT_STYLES[bracket-level-2]='fg=red,bold'
ZSH_HIGHLIGHT_STYLES[bracket-level-3]='fg=yellow,bold'
ZSH_HIGHLIGHT_STYLES[bracket-level-4]='fg=magenta,bold'
# cursor
#ZSH_HIGHLIGHT_STYLES[cursor]='bg=blue'
# main
# default
ZSH_HIGHLIGHT_STYLES[default]='none'
# unknown
ZSH_HIGHLIGHT_STYLES[unknown-token]='fg=red'
# command
ZSH_HIGHLIGHT_STYLES[reserved-word]='fg=magenta,bold'
ZSH_HIGHLIGHT_STYLES[alias]='fg=yellow,bold'
ZSH_HIGHLIGHT_STYLES[builtin]='fg=green,bold'
ZSH_HIGHLIGHT_STYLES[function]='fg=green,bold'
ZSH_HIGHLIGHT_STYLES[command]='fg=green'
ZSH_HIGHLIGHT_STYLES[precommand]='fg=blue,bold'
ZSH_HIGHLIGHT_STYLES[commandseparator]='fg=yellow'
ZSH_HIGHLIGHT_STYLES[hashed-command]='fg=green'
ZSH_HIGHLIGHT_STYLES[single-hyphen-option]='fg=blue,bold'
ZSH_HIGHLIGHT_STYLES[double-hyphen-option]='fg=blue,bold'
# path
ZSH_HIGHLIGHT_STYLES[path]='fg=cyan,bold'
ZSH_HIGHLIGHT_STYLES[path_prefix]='fg=cyan'
ZSH_HIGHLIGHT_STYLES[path_approx]='fg=cyan'
# shell
ZSH_HIGHLIGHT_STYLES[globbing]='fg=cyan'
ZSH_HIGHLIGHT_STYLES[history-expansion]='fg=blue'
ZSH_HIGHLIGHT_STYLES[assign]='fg=magenta'
ZSH_HIGHLIGHT_STYLES[dollar-double-quoted-argument]='fg=cyan'
ZSH_HIGHLIGHT_STYLES[back-double-quoted-argument]='fg=cyan'
ZSH_HIGHLIGHT_STYLES[back-quoted-argument]='fg=blue'
# quotes
ZSH_HIGHLIGHT_STYLES[single-quoted-argument]='fg=yellow,underline'
ZSH_HIGHLIGHT_STYLES[double-quoted-argument]='fg=yellow'
# pattern
ZSH_HIGHLIGHT_PATTERNS+=('\~b/rm ' 'fg=green')
# root
#ZSH_HIGHLIGHT_STYLES[root]='bg=red'
# bindkeys
bindkey '^[[A' up-line-or-search # up arrow for back-history-search
bindkey '^[[B' down-line-or-search # down arrow for fwd-history-search
bindkey '\e[1~' beginning-of-line # home
bindkey '\e[2~' overwrite-mode # insert
bindkey '\e[3~' delete-char # del
bindkey '\e[4~' end-of-line # end
bindkey '\e[5~' up-line-or-history # page-up
bindkey '\e[6~' down-line-or-history # page-down
# autocomplit
autoload -U compinit
compinit
autoload -U bashcompinit
bashcompinit
# first symbol autocomplete
zstyle ':completion:*' insert-tab false
zstyle ':completion:*' max-errors 2
# correct host complete
[[ -f ~/.ssh/config ]] && zstyle ':completion:*' hosts $(awk '/^Host .*$/ { print $2 }' ~/.ssh/config)
# prompt
autoload -U promptinit
promptinit
# colors
autoload -U colors
colors
# autocd
setopt autocd
# correct
setopt CORRECT_ALL
SPROMPT="Correct '%R' to '%r' ? [nyae] "
# append history
setopt APPEND_HISTORY
# ignore dups in history
setopt HIST_IGNORE_ALL_DUPS
# ighore additional space in history
setopt HIST_IGNORE_SPACE
# reduce blanks in history
setopt HIST_REDUCE_BLANKS
# =cmd without autocomplit
unsetopt EQUALS
# disable beeps
unsetopt beep
# autoload calc
autoload zcalc
# automatically log of on 10*60 sec inactivity
export TMOUT=600
# PROMPT && RPROMPT
if [[ $EUID == 0 ]]; then
# [root@host dir]#
PROMPT="%{$fg_bold[white]%}[%{$reset_color%}\
%{$fg_bold[red]%}%n%{$reset_color%}\
%{$fg_bold[white]%}@%{$reset_color%}\
%{$fg_no_bold[red]%}%m %{$reset_color%}\
%{$fg_bold[yellow]%}%1/%{$reset_color%}\
%{$fg_bold[white]%}]# %{$reset_color%}"
else
# [user@host dir]$
PROMPT="%{$fg_bold[white]%}[%{$reset_color%}\
%{$fg_bold[green]%}%n%{$reset_color%}\
%{$fg_bold[white]%}@%{$reset_color%}\
%{$fg_no_bold[green]%}%m %{$reset_color%}\
%{$fg_bold[yellow]%}%1/%{$reset_color%}\
%{$fg_bold[white]%}]$ %{$reset_color%}"
fi
precmd() {
# battery charge
function batcharge {
bat_perc=$((($(cat /sys/class/power_supply/BAT0/capacity)+$(cat /sys/class/power_supply/BAT1/capacity))/2))
if [[ $bat_perc < 15 ]]; then
col="%{$fg_bold[red]%}"
elif [[ $bat_perc < 50 ]]; then
col="%{$fg_bold[yellow]%}"
else
col="%{$fg_bold[green]%}"
fi
echo "%{$fg_bold[white]%}["$col$bat_perc"%{$fg_bold[white]%}%%]%{$reset_color%}"
}
# last command
returncode="%(?.%{$fg[green]%}.%{$fg[red]%})%?%{$resetcolor%}"
RPROMPT="%{$fg_bold[white]%}[%{$reset_color%}\
%{$fg_bold[cyan]%}%T%{$reset_color%}\
%{$fg_bold[white]%}]%{$reset_color%}"\
$(batcharge)\
"%{$fg_bold[white]%}[%{$reset_color%}"\
$returncode\
"%{$fg_bold[white]%}]%{$reset_color%}"
}
## alias
alias grep='grep --colour=auto'
alias top='htop'
alias df='df -k --print-type --human-readable'
alias du='du -k --total --human-readable'
alias less='vimpager'
alias zless='vimpager'
rm() {
# error check
[ $# -eq 0 ] && { echo "Files are not set"; return 1 }
echo "$@" | grep -qe '-h\|--help' && { echo "Usage: rm FILE..."; return 0 }
echo "$@" | grep -q "-" && echo "Warning: this function doesn't support any flags"
# set trash path
TRASHDIR="$HOME/.local/share/Trash"
TRASHFILE="${TRASHDIR}/files"
TRASHINFO="${TRASHDIR}/info"
for DIRECTORY in "${TRASHDIR}" "${TRASHFILE}" "${TRASHINFO}"; do
if [ -e "${DIRECTORY}" ]; then
[ -d "${DIRECTORY}" ] || { echo "'${DIRECTORY}' is a file"; return 1 }
else
mkdir -p -m755 "${DIRECTORY}"
fi
done
# confirm
CONFIRM=""
echo -n "Do you realy want to remove '$@'? [ny] "; read -k1 CONFIRM; echo
[[ ! $CONFIRM =~ [yY] ]] && return 1
# move
for FILE in "$@"; do
DESTFILE="$(basename -- "${FILE}")"
SUFFIX='';
ITER=0;
while [ -e "${TRASHFILE}/${DESTFILE}${SUFFIX}" ]; do
SUFFIX="_${ITER}";
ITER=$(expr ${ITER} + 1)
done
echo "Remove '${FILE}'"
if [ "$(dirname -- "$(realpath -- "${FILE}")")" == "${TRASHFILE}" ]; then
/usr/bin/rm -rf -- "${FILE}"
/usr/bin/rm -rf -- "${TRASHINFO}/${DESTFILE}.trashinfo"
else
mv -- "${FILE}" "${TRASHFILE}/${DESTFILE}${SUFFIX}" || return 1
echo "[Trash Info]\nPath=$(realpath -- "${FILE}")\nDeletionDate=$(date +%Y-%m-%dT%H:%M:%S)" > "${TRASHINFO}/${DESTFILE}${SUFFIX}.trashinfo" || return 1
fi
done
}
su() {
CHECKSU=0
for FLAG in $*; do
[[ $FLAG == "-" ]] && CHECKSU=1
[[ $FLAG == "-l" ]] && CHECKSU=1
[[ $FLAG == "--login" ]] && CHECKSU=1
done
if [[ $CHECKSU == 0 ]]; then
echo "Use 'su -', Luke"
/usr/bin/su - $*
else
/usr/bin/su $*
fi
}
pacman() {
/usr/bin/sudo /usr/bin/pacman $* && echo "$*" | grep -q "S\|R\|U" && rehash
}
yaourt() {
/usr/bin/yaourt $* && echo "$*" | grep -q "S\|R\|U" && rehash
}
yatest() {
/usr/bin/yaourt --config /etc/pactest.conf $* && echo "$*" | grep -q "S\|R\|U" && rehash
}
yaaur() {
/usr/bin/yaourt --config /etc/pacaur.conf $* && echo "$*" | grep -q "S\|R\|U" && rehash
}
alias ls='ls --color=auto --group-directories-first'
alias ll='ls -l --human-readable'
alias lr='ls --recursive'
alias la='ll --almost-all'
alias lx='ll -X --ignore-backups'
alias lz='ll -S --reverse'
alias lt='ll -t --reverse'
alias lm='la | more'
# alias -s
alias -s {avi,mpeg,mpg,mov,m2v,mkv}=mpv
alias -s {mp3,flac}=qmmp
alias -s {odt,doc,xls,ppt,docx,xlsx,pptx,csv}=libreoffice
alias -s {pdf}=okular
autoload -U pick-web-browser
alias -s {html,htm}=firefox
# function to extract archives
# EXAMPLE: unpack file
unpack() {
if [[ -f $1 ]]; then
case $1 in
*.tar.bz2) tar xjfv $1 ;;
*.tar.gz) tar xzfv $1 ;;
*.tar.xz) tar xvJf $1 ;;
*.bz2) bunzip2 $1 ;;
*.gz) gunzip $1 ;;
*.rar) unrar x $1 ;;
*.tar) tar xf $1 ;;
*.tbz) tar xjvf $1 ;;
*.tbz2) tar xjf $1 ;;
*.tgz) tar xzf $1 ;;
*.zip) unzip $1 ;;
*.Z) uncompress $1 ;;
*.7z) 7z x $1 ;;
*) echo "I don't know how to extract '$1'" ;;
esac
else
case $1 in
*help) echo "Usage: unpack ARCHIVE_NAME" ;;
*) echo "'$1' is not a valid file" ;;
esac
fi
}
# function to create archives
# EXAMPLE: pack tar file
pack() {
if [ $1 ]; then
case $1 in
tar.bz2) tar -cjvf $2.tar.bz2 $2 ;;
tar.gz) tar -czvf $2.tar.bz2 $2 ;;
tar.xz) tar -cf - $2 | xz -9 -c - > $2.tar.xz ;;
bz2) bzip $2 ;;
gz) gzip -c -9 -n $2 > $2.gz ;;
tar) tar cpvf $2.tar $2 ;;
tbz) tar cjvf $2.tar.bz2 $2 ;;
tgz) tar czvf $2.tar.gz $2 ;;
zip) zip -r $2.zip $2 ;;
7z) 7z a $2.7z $2 ;;
*help) echo "Usage: pack TYPE FILES" ;;
*) echo "'$1' cannot be packed via pack()" ;;
esac
else
echo "'$1' is not a valid file"
fi
}
# functions to contorl xrandr
# EXAMPLE: projctl 1024x768
projctl() {
MONITORS="$(xrandr | grep connected | cut -d ' ' -f 1 | tr '\n' ' ')"
echo "Available monitors are: ${MONITORS}"
FIRSTMON="eDP1"
SECONDMON="DP2"
RESOLUTION="1600x900"
until [ -z $1 ]; do
case "$1" in
"-h" | "--help" ) echo "Usage: projctl [ off/resol ] [ -o MON | --output MON ]" && return 0 ;;
"-o" | "--output" ) [ -z "$2" ] || SECONDMON="$2" && shift ;;
* ) RESOLUTION="$1" ;;
esac
shift
done
if [[ "${RESOLUTION}" == "off" ]]; then
echo "Disable ${SECONDMON}"
xrandr --output ${FIRSTMON} --mode ${RESOLUTION} --output ${SECONDMON} --off
else
echo "Using resolution: ${RESOLUTION}"
xrandr --output ${FIRSTMON} --mode ${RESOLUTION} --output ${SECONDMON} --mode ${RESOLUTION}
fi
xinput set-prop 10 137 $(get-coord-matrix.py)
}
twinmon() {
MONITORS="$(xrandr | grep connected | cut -d ' ' -f 1 | tr '\n' ' ')"
echo "Available monitors are: ${MONITORS}"
FIRSTMON="eDP1"
SECONDMON="DP2"
MODE="on"
until [ -z $1 ]; do
case "$1" in
"-h" | "--help" ) echo "Usage: twinmon [ off ] [ -o MON | --output MON ]" && return 0 ;;
"-o" | "--output" ) [ -z "$2" ] || SECONDMON="$2" && shift ;;
"off" ) MODE="off" ;;
esac
shift
done
if [[ "${MODE}" == "off" ]]; then
echo "Disable ${SECONDMON}"
xrandr --output ${FIRSTMON} --auto --primary --output ${SECONDMON} --off
else
echo "Enable ${SECONDMON}"
xrandr --output ${FIRSTMON} --auto --primary --output ${SECONDMON} --auto --left-of ${FIRSTMON}
fi
xinput set-prop 10 137 $(get-coord-matrix.py)
}
# sudo alias
if [[ $EUID == 0 ]]; then
alias fat32mnt='mount -t vfat -o codepage=866,iocharset=utf8,umask=000'
# MTS 3G modem
alias mts_3g='eject /dev/sr1 && sleep 5 && wvdial mts3g && disown'
alias sddm='systemctl start sddm && exit'
alias synctime='{ ntpd -qg; hwclock -w; date; }'
else
alias fat32mnt='sudo mount -t vfat -o codepage=866,iocharset=utf8,umask=000'
alias umount='sudo umount'
alias mount='sudo mount'
alias netctl='sudo netctl'
# MTS 3G modem
alias mts_3g='sudo eject /dev/sr1 && sleep 5 && sudo wvdial mts3g && disown'
alias sddm='sudo systemctl start sddm && exit'
alias synctime='{ sudo ntpd -qg; sudo hwclock -w; date; }'
alias wifi-menu='sudo wifi-menu'
alias dhcpcd='sudo dhcpcd'
alias systemctl='sudo systemctl'
alias modprobe='sudo modprobe'
alias rmmod='sudo rmmod'
alias pacdiff='sudo pacdiff'
alias staging-i686-build='sudo staging-i686-build'
alias staging-x86_64-build='sudo staging-x86_64-build'
alias extra-i686-build='sudo extra-i686-build'
alias extra-x86_64-build='sudo extra-x86_64-build'
alias multilib-staging-build='sudo multilib-staging-build'
alias multilib-build='sudo multilib-build'
alias svim='sudo vim'
alias scat='sudo cat'
alias sgrep='sudo grep'
alias cpu='sudo cpu'
alias cpu='sudo backlight'
fi
# global alias
alias -g g="| grep"
alias -g l="| less"
alias -g t="| tail"
alias -g h="| head"
alias -g n="| wc -l"
alias -g dn="&> /dev/null &"
# pkgfile
source /usr/share/doc/pkgfile/command-not-found.zsh
# editor
export EDITOR="vim"
export PAGER="vimpager"
# hash
hash -d iso=/mnt/iso
hash -d u1=/mnt/usbdev1
hash -d u2=/mnt/usbdev2
# to run command ignoring aliases
hash -d b=/usr/bin
# umask
umask 022
# path
export PATH="$HOME/.local/bin/:$HOME/.local/bin/exante:$PATH"
# color gcc
export GCC_COLOR="auto"
# fix urxvt
if [[ ${TERM} =~ "rxvt-unicode-*" ]] export TERM="xterm"
# ssh-agent
if [[ $EUID != 0 ]]; then
eval $(ssh-agent) > /dev/null
ssh-add -l > /dev/null || alias ssh='ssh-add -l >/dev/null || ssh-add && unalias ssh; ssh'
fi