You are not logged in.

#1226 2014-12-16 12:45:35

windowsrefund
Member
Registered: 2010-11-13
Posts: 16

Re: The i3 thread

is anyone using a tabbed layout for uzbl-core or vimb? If so, could I peek at your config? Just wondering how close anyone has gotten to simulating a "tab friendly" browser experience found in other players such as vimprobable, luakit, and others.

Offline

#1227 2014-12-16 18:39:07

ANOKNUSA
Member
Registered: 2010-10-22
Posts: 2,141

Re: The i3 thread

What do you mean by "tab-friendly browser eperience?" i3 just manages windows, not your web browsing habits. It will place multiple windows in a tabbed container, and that's it. Using multiple uzbl windows in a tabbed container won't work any differently than using multiple terminal windows in a tabbed container.

Offline

#1228 2014-12-17 01:16:42

windowsrefund
Member
Registered: 2010-11-13
Posts: 16

Re: The i3 thread

That's what I figured but I can't help but wonder how worthwhile it might be to "simulate" a tabbed browser's behavior using (class|role)-specific keybinds.

Offline

#1229 2014-12-17 09:16:25

t0m5k1
Member
From: overthere
Registered: 2012-02-10
Posts: 324

Re: The i3 thread

you will get the same behaviour from all stacking & tiling wm's with tabbing.


ROG Strix (GD30CI) - Intel Core i5-7400 CPU - 32Gb 2400Mhz - GTX1070 8GB - AwesomeWM (occasionally XFCE, i3)

If everything in life was easy, we would learn nothing!
Linux User: 401820  Steam-HearThis.at-Last FM-Reddit

Offline

#1230 2014-12-17 09:31:59

rikn00
Member
Registered: 2014-06-26
Posts: 21

Re: The i3 thread

If I understand correctly, you said you're using i3's tabbed layout. You could try tabbed by Suckless: http://tools.suckless.org/tabbed/
It places multiple windows in one window much like i3's tabbed but for window manager it is only one window.

Offline

#1231 2014-12-17 14:59:37

windowsrefund
Member
Registered: 2010-11-13
Posts: 16

Re: The i3 thread

rikn00 wrote:

If I understand correctly, you said you're using i3's tabbed layout. You could try tabbed by Suckless: http://tools.suckless.org/tabbed/
It places multiple windows in one window much like i3's tabbed but for window manager it is only one window.

Thanks for the tabbed link but I know all about it. I was simply looking into the potential to avoid it by exploiting the wm itself.

Offline

#1232 2014-12-17 15:04:53

ANOKNUSA
Member
Registered: 2010-10-22
Posts: 2,141

Re: The i3 thread

rikn00, there's really no difference between using suckless tabbed and i3's tabbed containers. Using tabbed in i3 doesn't make much sense. wink

windowsrefund wrote:

I can't help but wonder how worthwhile it might be to "simulate" a tabbed browser's behavior using (class|role)-specific keybinds.

You could definitely create a special "browser mode" that maps keybindings to specific actions you'd use while manipulating browser windows. There's an example of how to create modes in the i3 User's Guide. You'd also need some sort of IPC script in order to do anything overly fancy, but you might be able to get some basic, browser-specific functionality through vanilla i3. Using unique marks to quickly jump between tabbed windows comes to mind.

Offline

#1233 2014-12-17 15:08:49

windowsrefund
Member
Registered: 2010-11-13
Posts: 16

Re: The i3 thread

so onto another question...

The last line of my ~/.config/i3/config is:

  exec i3-msg 'workspace 2; exec urxvt; split vertical; exec urxvt;'

This gives me 2 terminals; each using 50% of the total height. How can I expand the above command so that the topmost terminal occupies a third of the total height? I've tried many variations of 'resize grow height 10 px' and such but nothing is working. Logs are telling me I can't resize in that direction because I am focused on a horizonal container despite my attempts to add 'focus up'

Does anyone have a working solution?

Thanks

Offline

#1234 2014-12-17 15:11:13

windowsrefund
Member
Registered: 2010-11-13
Posts: 16

Re: The i3 thread

You could definitely create a special "browser mode" that maps keybindings to specific actions you'd use while manipulating browser windows. There's an example of how to create modes in the i3 User's Guide. You'd also need some sort of IPC script in order to do anything overly fancy, but you might be able to get some basic, browser-specific functionality through vanilla i3. Using unique marks to quickly jump between tabbed windows comes to mind.

Very interesting... reading...

Offline

#1235 2014-12-17 15:24:28

tzoi516
Member
Registered: 2014-05-02
Posts: 76

Re: The i3 thread

windowsrefund wrote:

so onto another question...

The last line of my ~/.config/i3/config is:

  exec i3-msg 'workspace 2; exec urxvt; split vertical; exec urxvt;'

This gives me 2 terminals; each using 50% of the total height. How can I expand the above command so that the topmost terminal occupies a third of the total height? I've tried many variations of 'resize grow height 10 px' and such but nothing is working. Logs are telling me I can't resize in that direction because I am focused on a horizonal container despite my attempts to add 'focus up'

Does anyone have a working solution?

Thanks

http://i3wm.org/docs/layout-saving.html

If you look at the json you'll see the options.

Offline

#1236 2014-12-17 15:30:09

windowsrefund
Member
Registered: 2010-11-13
Posts: 16

Re: The i3 thread

tzoi516 wrote:

http://i3wm.org/docs/layout-saving.html

If you look at the json you'll see the options.

Brilliant!

Offline

#1237 2015-01-02 09:54:06

kozaki
Member
From: London >. < Paris
Registered: 2005-06-13
Posts: 673
Website

Re: The i3 thread

I'm looking for some proper way to source $HOME/.profile (with bash agnostic environement variables in it) from within a i3 session.
The way I do it atm, loads environment variables but somehow gets in the way. Eg urxvtc launches nothing (even though the daemon _is_ running. Works back without sourcing $HOME/.profile in $HOME/.xinitrc but all work and no play makes Oli a dull boy.

$HOME/.bash_profile:

if [ -r ~/.profile ]; then . ~/.profile; fi
case "$-" in *i*) if [ -r ~/.bashrc ]; then . ~/.bashrc; fi;; esac

$HOME/.xinitrc:

...
#urxvt daemon
urxvtd &
# utilities
systemd --user &
...
# source ~/.profile
if [[ -e $HOME/.profile && -z $(echo $XDG_CONFIG_HOME|grep -o $HOME/.config) ]]
    then
        source ~/.profile
    fi
# start wm
exec dbus-launch i3

$ ps aux|grep urxv (~/.profile sourced as above):

kozaki    2574  0.0  0.0  52764  2576 tty1     S    10:23   0:00 urxvtd

$ urxvtc

unable to connect to the rxvt-unicode daemon: Connection refused

Came out of luck searching the forum with "source $HOME/.profile" OR "source ~/.profile" site:bbs.archlinux.org.

Following i3 FAQ's Session's environment variables, $HOME/profile-invocations confirms it's called by ~/.xinitrc, errr

Caller: /home/kozaki/.xinitrc
DESKTOP_SESSION: 
GDMSESSION:

or when commented out in ~/.xinitrc and sourced from the shell:

Caller: -bash
DESKTOP_SESSION: 
GDMSESSION:

Any hints please?

Last edited by kozaki (2015-01-02 09:55:45)


Seeded last month: Arch 50 gig, derivatives 1 gig
Desktop @3.3GHz 8 gig RAM, linux-ck
laptop #1 Atom 2 gig RAM, Arch linux stock i686 (6H w/ 6yrs old battery smile) #2: ARM Tegra K1, 4 gig RAM, ChrOS
Atom Z520 2 gig RAM, OMV (Debian 7) kernel 3.16 bpo on SDHC | PGP Key: 0xFF0157D9

Offline

#1238 2015-01-02 16:06:14

okraits
Member
From: Germany
Registered: 2006-03-02
Posts: 142
Website

Re: The i3 thread

windowsrefund wrote:

is anyone using a tabbed layout for uzbl-core or vimb? If so, could I peek at your config? Just wondering how close anyone has gotten to simulating a "tab friendly" browser experience found in other players such as vimprobable, luakit, and others.

I use the tabbed layout of i3 with lariza:

http://fc04.deviantart.net/fs71/f/2014/ … 88shdz.png

This tabbed layout is one thing i was missing in other tiling window managers i tried out. I tried to avoid using tabbed by suckless in the past and i3 helped in that respect smile
Which further features would you need in a tabbed layout, apart from the things that i3 already provides?

Last edited by okraits (2015-01-02 16:08:42)

Offline

#1239 2015-01-02 16:12:37

ANOKNUSA
Member
Registered: 2010-10-22
Posts: 2,141

Re: The i3 thread

@ kozaki: Your terminals are crashing because the shell executed within them is crashing, because you're unnecessarily complicating a basic system process. Unless you have an exceptionally good reason to do this (and I mean have absolutely no choice in the matter, for whatever bizarre reason), you should just set environment variables via your login shell's defined method. Any variables set in ~/.xinitrc are in fact parsed and set by Bash, as the "startx" command is just a Bourne shell (sh) script, /usr/bin/sh is just a symlink to /usr/bin/bash, and unless I'm mistaken, GDM is just a fancy front-end to "startx". In any case the environment is separate from your user shell---any shell can set, read and inherit any environment variable---and no window manager should have any effect on the environment, save for reporting its existence to the system. So this isn't really an i3 issue, and there's really no such thing as "Bash-agnostic" environment variables.

Last edited by ANOKNUSA (2015-01-02 16:12:59)

Offline

#1240 2015-01-02 23:05:57

kozaki
Member
From: London >. < Paris
Registered: 2005-06-13
Posts: 673
Website

Re: The i3 thread

Meaning there's no way to get an i3 session reads ~/.profile, and one has to duplicate the environment varialble definitions he puts in this standard place (like hibou57 on i3 FAQ question about Session's environment variables)

/me beginning to appreciate standards and giving them more attention, since I realized they give you back the attention one put in them. $HOME/*profile (and $XDG* which I started workin on) being part of them I believe.

But as quoted here by Gilles,

« If you log in in a graphical environment, you don't automatically get a login shell that reads ~/.profile. Depending on the graphical login program, on the window manager or desktop environment you run afterwards, and on how your distribution configured these programs, your ~/.profile may or may not be read. »

Is it being complicated to place the wm variables definitions in the wm config read on startx, and wm + shell-independant variable definitions & daemons in the user's session ~/.profile, on a machine I have access to via ssh, therefore need to be loaded by a login shell?


Seeded last month: Arch 50 gig, derivatives 1 gig
Desktop @3.3GHz 8 gig RAM, linux-ck
laptop #1 Atom 2 gig RAM, Arch linux stock i686 (6H w/ 6yrs old battery smile) #2: ARM Tegra K1, 4 gig RAM, ChrOS
Atom Z520 2 gig RAM, OMV (Debian 7) kernel 3.16 bpo on SDHC | PGP Key: 0xFF0157D9

Offline

#1241 2015-01-25 02:47:10

sudoku
Member
Registered: 2012-10-31
Posts: 96

Re: The i3 thread

Hi windowsrefund,

I have a similar configuration (i3+vimb). The relevant lines of my i3 config file are as follows:

bindsym $mod+2 workspace 2:www; layout tabbed
assign [class="Vimb"] 2:www
for_window [class="Vimb"] border none
for_window [class="Vimb"] tabbed enable

Works pretty flawlessly. For the (very) rare times two Vimb windows spawn side by side for any reason:

bindsym $mod+w layout tabbed

That's all!

Last edited by sudoku (2015-01-25 02:48:11)

Offline

#1242 2015-01-29 18:12:23

kozaki
Member
From: London >. < Paris
Registered: 2005-06-13
Posts: 673
Website

Re: The i3 thread

I got a bit further on understanding how i3 reads environement variables. Might sound dumb easy for more talented but here's what I found out using the folowing in (bash) interactive shell setup

echo Aliases before .profile
echo $(alias | cut -d '=' -f 1 | sort -u)

~/.profile and ~/.bash_profile are not taken in account by apps auto-launched from i3/config. eg aliases sourced from these two files are ignored in dmenu as well as auto-launched terms.
Now, manually starting a terminal in i3 and these shell setup files are sourced, as they are when manually login in tty (I use urxvt{d,c} ).

~/.bashrc is always sourced by i3/config, even if commented out in ~/.bash_profile (not the case for apps manualy started afterwhile).

Setup:
---------
i3-wm 4.8-3

Automatic login to virtual console via systemd (as per the wiki).

~/.xinitrc

<SNIP>
dunst &
urxvtd -q -o -f 
exec dbus-launch i3

~/.bash_profile

# Import Z or Bash shell agnostic environment config                               
if [ -r $HOME/.profile ]; then . $HOME/.profile; fi                                

# Load interactive non-login bash config                                           
case "$-" in *i*) if [ -r $HOME/.bashrc ]; then . $HOME/.bashrc; fi;; esac

~/.config/i3/config

<SNIP>
set $ei exec --no-startup-id                                                    
set $term urxvtc

### autostart                                                                      

exec --no-startup-id i3lock -c 1D1F21                                             
exec $term -name blocnote -e bash                                                  
exec $term -name partage -e bash -c "btlaunch"                                     
exec $term -name root -e bash

Please how to have ~/.bash_profile sourced by i3?


Seeded last month: Arch 50 gig, derivatives 1 gig
Desktop @3.3GHz 8 gig RAM, linux-ck
laptop #1 Atom 2 gig RAM, Arch linux stock i686 (6H w/ 6yrs old battery smile) #2: ARM Tegra K1, 4 gig RAM, ChrOS
Atom Z520 2 gig RAM, OMV (Debian 7) kernel 3.16 bpo on SDHC | PGP Key: 0xFF0157D9

Offline

#1243 2015-01-29 23:09:53

PotatoesMaster
Member
From: France
Registered: 2010-08-26
Posts: 54

Re: The i3 thread

Hi,

kozaki wrote:

I got a bit further on understanding how i3 reads environement variables. Might sound dumb easy for more talented but here's what I found out using the folowing in (bash) interactive shell setup

echo Aliases before .profile
echo $(alias | cut -d '=' -f 1 | sort -u)

~/.profile and ~/.bash_profile are not taken in account by apps auto-launched from i3/config. eg aliases sourced from these two files are ignored in dmenu as well as auto-launched terms.

Aliases are not environnement variables.
They are available only in the shell where they were declared.

dmenu_run (if that's what you are using) lists the executable files present in locations set in the PATH environment variable, so you won't see any alias there.

Now, manually starting a terminal in i3 and these shell setup files are sourced, as they are when manually login in tty (I use urxvt{d,c} ).

Strange, it is not the case for me (I tested by creating a profile and rc file with some call to echo).

~/.bashrc is always sourced by i3/config, even if commented out in ~/.bash_profile

Sourced by i3/config? Or do you mean "sourced by the interactive shells launched on i3 startup"?

(not the case for apps manualy started afterwhile)

What apps are you talking about? urxvt? others?

In my point of view, sourcing .profile in .xinitrc is the simplest thing to do (if you want to limit the number of places you define environment variables).

Offline

#1244 2015-01-30 11:58:22

kaslusimoes
Member
Registered: 2013-12-19
Posts: 51

Re: The i3 thread

Maybe this link can help you with your problem.

I found it very helpful on understanding how the .bash* files are sourced (and .xinitrc). Don't know how to relate this to .config/i3/config 'exec' commands, though

Offline

#1245 2015-01-30 20:33:31

PotatoesMaster
Member
From: France
Registered: 2010-08-26
Posts: 54

Re: The i3 thread

@kaslusimoes:
Interesting link. smile

I use slim as SLiM as display manager (and I just the warning saying it is abandoned on the Archwiki).
Here is the login sequence with my setup :

(I type my login and password in SLiM)
→ SLiM run this command : /bin/bash --login /home/tharek/.xinitrc i3
  → .bash_profile is sourced by bash
  → the commands in .xinitrc are executed
  → exec i3
    → i3 load its config and run auto-started apps
    → /bin/sh firefox (i3's exec commands are ran with sh)
    → … (other auto-started apps)

and when I press my binding for opening a terminal

    → i3 run its exec command: /bin/sh urxvt
      → urxvt run the shell defined by $SHELL: /bin/zsh
        → /home/tharek/.zshrc is sourced by zsh

then I have a terminal I can type in.

Offline

#1246 2015-01-31 16:35:56

kozaki
Member
From: London >. < Paris
Registered: 2005-06-13
Posts: 673
Website

Re: The i3 thread

I don't know how to be as precise as PotatoesMaster on what launches what,
I use autologin via systemd + Auto start X then i3lock to open the X session. then:
                                                                               
1) Shell                                                                       
A - Login shell                                                                 
~/.bash_profile                                                                 
  » source ~/.profile, which source --» Shell agnostic aliases, path (like XDG) and variables
  » source ~/.bashrc, which sources global definitions and user Bash aliases   
  » startx at login: [[ -z $DISPLAY && $XDG_VTNR -eq 1 ]] && startx             
                                                                               
B - Non-login shell                                                             
~/.bashrc                                                                       
  |--» source global definitions: /etc/bashrc                                   
  |--» source bash aliases                                                     
                                                                               
2) X                                                                           
~/.xsession is a symlink -» ~/.xinitrc                                         
  |--» source ~/.bash_profile (tried with and without condition checking for a terminal)
  starts urxvt daemon                                                           
                                                                               
~/.config/i3/config                                                             
  |--» Login via i3lock: `exec --no-startup-id i3lock -c 1D1F21`               
  starts urxvt clients and some other apps                                     
                                                                               
pstree from auto-started as from terms manualy started:                         

    ├─login───bash───startx───xinit─┬─Xorg.bin───{Xorg.bin}
    │                               └─i3─┬─clipit─┬─{gdbus}
    │                                    │        └─{threaded-ml}
    │                                    ├─dunst───{gdbus}

As you can see I'm sourcing ~/.bash_profile from .xinitrc/.xsession, as PotatoesMaster's advice and per the page linked by kaslusimoes (thank you guys for that).
                                                                               
with these settings I have:
- Apps that are auto-launched from i3 as well as xinitrc and ~/.profile (eg XDG_{CONFIG,DATA,CACHE}_HOME and app config_home) start and  have shell login paths and variables environement settings
- same behavior for terminals auto-started with i3: they have shell login paths and variables environement settings called via ~/.profile, but none of the shortcuts also called via ~/.profile 
- the later are loaded by terminals started by hand.
                                                                               
While I don't understand that I can live with wink And digging in with you is useful to get a better understanding on how (Non-)Login shell + X are set up.
                                                                               

PotatoesMaster wrote:

dmenu_run (if that's what you are using) lists the executable files present in locations set in the PATH environment variable, so you won't see any alias there.

Aye aye. Had just read Running dmenu with custom aliases ':]


Seeded last month: Arch 50 gig, derivatives 1 gig
Desktop @3.3GHz 8 gig RAM, linux-ck
laptop #1 Atom 2 gig RAM, Arch linux stock i686 (6H w/ 6yrs old battery smile) #2: ARM Tegra K1, 4 gig RAM, ChrOS
Atom Z520 2 gig RAM, OMV (Debian 7) kernel 3.16 bpo on SDHC | PGP Key: 0xFF0157D9

Offline

#1247 2015-02-15 03:59:04

cris9288
Member
Registered: 2013-01-07
Posts: 348

Re: The i3 thread

Couldn't find an answer to this question elsewhere - how does one go about setting a custom font in the i3-winmenu script? I'm not familiar with python, but I thought you could do it with triple-quotes.
I've tried many variations, but most recently

dmenu = subprocess.Popen(['/usr/bin/dmenu','-i','-l',""" -fn 'Droid-Sans-11:normal' """, str(l)],

Offline

#1248 2015-02-15 04:15:08

bstaletic
Member
Registered: 2014-02-02
Posts: 658

Re: The i3 thread

Try single instead of  double quotes for the outermost quotes. I'm unable to try right now, but this way your double quotes get closed right after opening.

Offline

#1249 2015-02-15 12:53:47

Head_on_a_Stick
Member
From: The Wirral
Registered: 2014-02-20
Posts: 8,289
Website

Re: The i3 thread

You could download the source and set the font option for dmenu at compile-time instead:

git clone http://git.suckless.org/dmenu

You will need to change "config.mk" and copy "config.def.h" to "config.h" and change the options there before running `make && sudo make install`

Last edited by Head_on_a_Stick (2015-02-15 12:55:59)


Para todos todo, para nosotros nada

Offline

#1250 2015-03-21 17:30:34

lounge
Member
Registered: 2015-03-01
Posts: 23

Re: The i3 thread

I see on screenshots  that most i3 users have no window borders ,how I do that ?

Offline

Board footer

Powered by FluxBB