mirror of
https://github.com/balkian/dotfiles.git
synced 2024-12-23 17:18:11 +00:00
Several improvements.
* Tmux is not started by default anymore * Added functions for i3 - Awesome!! * zsh to start tmux
This commit is contained in:
parent
a134c2210f
commit
7bbcb17419
@ -42,7 +42,7 @@ URxvt.scrollBar: false
|
||||
! Perl extensions
|
||||
URxvt.perl-ext-common: default,matcher
|
||||
URxvt.matcher.button: 1
|
||||
URxvt.urlLauncher: google-chrome
|
||||
URxvt.url-launcher: google-chrome
|
||||
|
||||
! Cursor
|
||||
URxvt.cursorBlink: true
|
||||
|
@ -1,7 +1,7 @@
|
||||
#!/bin/zsh
|
||||
python2 $HOME/.bin/i3-wm-scripts/nextmatch.py urxvt
|
||||
python2 $HOME/.bin/i3-wm-scripts/nextmatch.py tmux
|
||||
if [ $? -gt 0 ]; then
|
||||
urxvt & sleep 0.1 && python2 $HOME/.bin/i3-wm-scripts/nextmatch.py urxvt
|
||||
urxvt -e tmux attach & sleep 0.1 && python2 $HOME/.bin/i3-wm-scripts/nextmatch.py tmux
|
||||
fi
|
||||
if [ "$#" -gt 0 ]; then
|
||||
eval "tmux neww"
|
||||
|
61
bin/i3-winmenu.py
Executable file
61
bin/i3-winmenu.py
Executable file
@ -0,0 +1,61 @@
|
||||
#!/usr/bin/env python
|
||||
# dmenu script to jump to windows in i3.
|
||||
#
|
||||
# using ziberna's i3-py library: https://github.com/ziberna/i3-py
|
||||
# depends: dmenu (vertical patch), i3.
|
||||
# released by joepd under WTFPLv2-license:
|
||||
# http://sam.zoy.org/wtfpl/COPYING
|
||||
#
|
||||
# edited by Jure Ziberna for i3-py's examples section
|
||||
|
||||
import i3
|
||||
import subprocess
|
||||
|
||||
|
||||
def i3clients():
|
||||
"""
|
||||
Returns a dictionary of key-value pairs of a window text and window id.
|
||||
Each window text is of format "[workspace] window title (instance number)"
|
||||
"""
|
||||
clients = {}
|
||||
for ws_num in range(1, 11):
|
||||
workspace = i3.filter(num=ws_num)
|
||||
if not workspace:
|
||||
continue
|
||||
workspace = workspace[0]
|
||||
windows = i3.filter(workspace, nodes=[])
|
||||
instances = {}
|
||||
# Adds windows and their ids to the clients dictionary
|
||||
for window in windows:
|
||||
win_str = '[%s] %s' % (workspace['name'], window['name'])
|
||||
# Appends an instance number if other instances are present
|
||||
if win_str in instances:
|
||||
instances[win_str] += 1
|
||||
win_str = '%s (%d)' % (win_str, instances[win_str])
|
||||
else:
|
||||
instances[win_str] = 1
|
||||
clients[win_str] = window['id']
|
||||
return clients
|
||||
|
||||
|
||||
def win_menu(clients, l=10):
|
||||
"""
|
||||
Displays a window menu using dmenu. Returns window id.
|
||||
"""
|
||||
dmenu = subprocess.Popen(['/usr/bin/dmenu', '-i', '-l', str(l),
|
||||
'-fn', '"-*-cure-medium-*-*-*-11-*-*-*-*-*-*-*"',
|
||||
'-nb', '#101010', '-nf', '#5f5f5f', '-sb', '#191919',
|
||||
'-sf', '#b72f62'],
|
||||
stdin=subprocess.PIPE,
|
||||
stdout=subprocess.PIPE)
|
||||
menu_str = '\n'.join(sorted(clients.keys()))
|
||||
# Popen.communicate returns a tuple stdout, stderr
|
||||
win_str = dmenu.communicate(menu_str.encode('utf-8'))[0].decode('utf-8')\
|
||||
.rstrip()
|
||||
return clients.get(win_str, None)
|
||||
|
||||
if __name__ == '__main__':
|
||||
clients = i3clients()
|
||||
win_id = win_menu(clients)
|
||||
if win_id:
|
||||
i3.focus(con_id=win_id)
|
61
i3/config
61
i3/config
@ -21,12 +21,14 @@ floating_modifier $mod
|
||||
#/exec
|
||||
# start a terminal
|
||||
bindsym $mod+Return exec i3-one-tmux
|
||||
bindsym Control+Mod1+t exec urxvt
|
||||
|
||||
# start lock
|
||||
bindsym Control+Mod1+l exec i3lock
|
||||
bindsym Control+Mod1+l exec i3lock -c 000000 -t -i ~/Pictures/Wallpapers/Game\ Over\ Hacker.png
|
||||
|
||||
bindsym Control+Mod1+w exec i3-one-instance google-chrome
|
||||
bindsym Control+Mod1+g exec i3-one-instance gvim
|
||||
bindsym $mod+o exec i3-winmenu.py
|
||||
bindsym Control+Mod1+f exec pcmanfm
|
||||
|
||||
# Spotify
|
||||
@ -34,6 +36,11 @@ bindsym XF86AudioPlay exec spotify-remote.py -a playPause
|
||||
bindsym XF86AudioNext exec spotify-remote.py -a next
|
||||
bindsym XF86AudioPrev exec spotify-remote.py -a previous
|
||||
|
||||
# Volume
|
||||
bindsym XF86AudioRaiseVolume exec volume-up.sh
|
||||
bindsym XF86AudioLowerVolume exec volume-down.sh
|
||||
bindsym XF86AudioMute exec volume-toggle-mute.sh
|
||||
|
||||
# kill focused window
|
||||
bindsym $mod+q kill
|
||||
|
||||
@ -96,30 +103,30 @@ bindsym $mod+a focus parent
|
||||
bindsym $mod+d focus child
|
||||
|
||||
# switch to workspace
|
||||
bindsym $mod+1 workspace number 1
|
||||
bindsym $mod+2 workspace number 2
|
||||
bindsym $mod+3 workspace number 3
|
||||
bindsym $mod+4 workspace number 4
|
||||
bindsym $mod+5 workspace number 5
|
||||
bindsym $mod+6 workspace number 6
|
||||
bindsym $mod+7 workspace number 7
|
||||
bindsym $mod+8 workspace number 8
|
||||
bindsym $mod+9 workspace number 9
|
||||
bindsym $mod+1 workspace 1: Term
|
||||
bindsym $mod+2 workspace 2: Web
|
||||
bindsym $mod+3 workspace 3: Edit
|
||||
bindsym $mod+4 workspace 4: Viewer
|
||||
bindsym $mod+5 workspace 5: Files
|
||||
bindsym $mod+6 workspace 6: Music
|
||||
bindsym $mod+7 workspace 7: Chat
|
||||
bindsym $mod+8 workspace 8: Misc Big
|
||||
bindsym $mod+9 workspace 9: Misc Small
|
||||
bindsym $mod+0 workspace number 10
|
||||
bindsym $mod+Control+h workspace prev
|
||||
bindsym $mod+Control+l workspace next
|
||||
|
||||
# move focused container to workspace
|
||||
bindsym $mod+Shift+exclam move container to workspace number 1
|
||||
bindsym $mod+Shift+at move container to workspace number 2
|
||||
bindsym $mod+Shift+numbersign move container to workspace number 3
|
||||
bindsym $mod+Shift+dollar move container to workspace number 4
|
||||
bindsym $mod+Shift+percent move container to workspace number 5
|
||||
bindsym $mod+Shift+asciicircum move container to workspace number 6
|
||||
bindsym $mod+Shift+ampersand move container to workspace number 7
|
||||
bindsym $mod+Shift+asterisk move container to workspace number 8
|
||||
bindsym $mod+Shift+parenleft move container to workspace number 9
|
||||
bindsym $mod+Shift+parenright move container to workspace number 10
|
||||
bindsym $mod+Shift+exclam move container to workspace 1: Term
|
||||
bindsym $mod+Shift+at move container to workspace 2: Web
|
||||
bindsym $mod+Shift+numbersign move container to workspace 3: Edit
|
||||
bindsym $mod+Shift+dollar move container to workspace 4: Viewer
|
||||
bindsym $mod+Shift+percent move container to workspace 5: Files
|
||||
bindsym $mod+Shift+asciicircum move container to workspace 6: Music
|
||||
bindsym $mod+Shift+ampersand move container to workspace 7: Chat
|
||||
bindsym $mod+Shift+asterisk move container to workspace 8: Misc Big
|
||||
bindsym $mod+Shift+parenleft move container to workspace 9: Misc Small
|
||||
bindsym $mod+Shift+parenright move container to workspace number 10
|
||||
|
||||
# reload the configuration file
|
||||
bindsym $mod+Shift+C reload
|
||||
@ -186,11 +193,13 @@ client.urgent #2f343a #101010 #93a1a1 #900000
|
||||
for_window [class="^Google-chrome$"] border none
|
||||
assign [class="Google-chrome" window_role="browser"] 2: Web
|
||||
for_window [class="^URxvt$"] border 1px
|
||||
assign [class="^URxvt$"] 1: Term
|
||||
assign [title="^tmux$"] 1: Term
|
||||
assign [class="^Gvim$"] 3: Edit
|
||||
assign [class="^Evince$"] 4: Viewer
|
||||
assign [class="^Spotify$"] 6: Music
|
||||
assign [class="^Audacious$"] 6: Music
|
||||
assign [class="^Audacious$"] 6: Music
|
||||
assign [class="^Xchat$"] 7: Chat
|
||||
|
||||
workspace "1: Term" output DP1
|
||||
workspace "2: Web" output DP1
|
||||
@ -198,7 +207,13 @@ workspace "3: Edit" output DP1
|
||||
workspace "4: Viewer" output eDP1
|
||||
workspace "5: Files" output eDP1
|
||||
workspace "6: Music" output eDP1
|
||||
workspace "7: Misc Big" output DP1
|
||||
workspace "8: Misc Small" output eDP1
|
||||
workspace "7: Chat" output eDP1
|
||||
workspace "8: Misc Big" output DP1
|
||||
workspace "9: Misc Small" output eDP1
|
||||
|
||||
exec --no-startup-id nm-applet
|
||||
exec --no-startup-id dropbox start
|
||||
exec --no-startup-id volti
|
||||
exec --no-startup-id clipit
|
||||
exec xautolock -time 10 -locker 'i3lock -t -c 000000 -i ~/Pictures/Wallpapers/Game\ Over\ Hacker.png' &
|
||||
exec urxvt -e tmux attach
|
||||
|
9
not_dots/clipboard
Normal file
9
not_dots/clipboard
Normal file
@ -0,0 +1,9 @@
|
||||
#! /usr/bin/perl
|
||||
# /usr/lib/urxvt/perl/clipboard
|
||||
|
||||
sub on_sel_grab {
|
||||
my $query=quotemeta $_[0]->selection;
|
||||
$query=~ s/\n/\\n/g;
|
||||
$query=~ s/\r/\\r/g;
|
||||
system( "echo " . $query . " | xsel -i -b -p" );
|
||||
}
|
@ -1,3 +1,4 @@
|
||||
#!/bin/zsh
|
||||
# TMUX
|
||||
# if [[ -z "$KONSOLE_DBUS_SERVICE" & `which tmux` ]]; then
|
||||
# if no session is started, start a new session
|
||||
|
@ -19,10 +19,6 @@ bind j select-pane -D
|
||||
bind k select-pane -U
|
||||
bind l select-pane -R
|
||||
|
||||
|
||||
bind-key -t vi-copy 'v' begin-selection
|
||||
bind-key -t vi-copy 'y' copy-selection
|
||||
|
||||
# use vim motion keys while in copy mode
|
||||
setw -g mode-keys vi
|
||||
# use the vim resize keys.
|
||||
@ -83,8 +79,9 @@ unbind [
|
||||
bind Escape copy-mode
|
||||
unbind p
|
||||
bind p paste-buffer
|
||||
bind-key -t vi-copy 'v' begin-selection
|
||||
bind-key -t vi-copy 'y' copy-selection
|
||||
bind-key -t vi-copy v begin-selection
|
||||
bind-key -t vi-copy y copy-selection
|
||||
bind-key -t vi-copy C-v rectangle-toggle
|
||||
unbind C-s
|
||||
# copy tmux buffer to clipboard
|
||||
#bind-key Y save-buffer ~/.tmux/buffer \; run-shell "xsel -i -p <~/.tmux/buffer && rm ~/.tmux/buffer"
|
||||
|
2
vimrc
2
vimrc
@ -76,7 +76,7 @@ noremap \ ,
|
||||
" noremap <silent> ,cc :<C-B>silent <C-E>s/^/<C-R>=escape(b:comment_leader,'\/')<CR>/<CR>:nohlsearch<CR>
|
||||
" noremap <silent> ,cu :<C-B>silent <C-E>s/^\V<C-R>=escape(b:comment_leader,'\/')<CR>//e<CR>:nohlsearch<CR>
|
||||
"
|
||||
imap <C-v> <C-O>"+gp
|
||||
imap <C-v> <C-O>"+gP
|
||||
noremap <C-S> :w<CR>
|
||||
imap <C-S> <C-O>:w<CR>
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user