Given the skew in the data with x, the obvious first thing to do is use a logisitic regression  ([wiki link][1]). So I am with whuber on this. Your $y$ data is already [0,1] though: do you know if they represent probabilities or occurrence ratios ? If so, you should try a logistic regression using your non-transformed $y$ (before they are ratios/probabilities).

Peter Flom's observation also makes sense given that y is already magically [0,1] but if `plot(density(y));rug(y)` already looks like a Beta distribution it might come back saying that your $x$ variable is not a relevant covariate. That might be the wrong conclusion to make (or it might not - is there a causal relationship between the 2 you know of?). Note that the beta distribution is not an exponential family distribution and thus cannot be modeled with `glm` in R and you should use Peter's suggestion.

To give you an idea of what I meant by logistic regression:

    # the 'real' relationship where y is interpreted as the probability of success
    y = runif(400)
    x = -2*(log(y/(1-y)) - 2) + rnorm(400,sd=2) 
    glm.logit=glm(y~x,family=binomial); summary(glm.logit) 
    plot(y ~ x); require(faraway); grid()
    points(x,ilogit(coef(glm.logit) %*% rbind(1.0,x)),col="red")
    tt=runif(400)  # an example of your untransformed regression
    newy = ifelse(tt < y, 1, 0)
    glm.logit=glm(newy~x,family=binomial); summary(glm.logit) 
    
    # if there is not a good match in your tail probabilities try different link function or oversampling with correction (will be worse here, but perhaps not in your data)
    glm.probit=glm(y~x,family=binomial(link=probit)); summary(glm.probit)
    glm.cloglog=glm(y~x,family=binomial(link=cloglog)); summary(glm.cloglog)


  [1]: https://en.wikipedia.org/wiki/Logistic_regression