Rofi não funciona por bind (sxhkd)

Fiz a instalação do Rofi (pelo pacman) e adicionei o seu comando no sxhkdrc. Fiz o teste em inúmeras combinações diferentes de bind, porém nenhuma delas foram funcionais. Única forma de conseguir fazer funcionar, foi usando o comando rofi -show run através do terminal.

Há alguma solução?

Pode exemplificar algumas das “várias combinações de bind” que você usou, e como você modificou o arquivo de configuração?

3 curtidas

Como eu tenho o VSCode instalado, abri o arquivo via terminal. cd .config/sxhkd && code sxhkdrc
obs: salvei o arquivo e reiniciei a máquina.

Usei combinações como:

shift + a
shift + r
ctrl + shift + @space
super + @space (padrão do sxhkd)
super + return (sim, troquei a bind de abrir o terminal para esse teste)

e algumas outras, porém nenhuma funcionou. Uso binds para abrir o VSCode e o Firefox e são totalmente funcionais, até mesmo as que usei aos testes do rofi.

Outra coisa: por ser uma máquina virtual, isso acaba sendo afetado ou deveria funcionar corretamente? Estou usando máquina virtual para construir todo o script e usá-lo em uma futura formatação do computador.

A bind Shift + a deveria ter funcionado…

Como ficou o exatamente o arquivo final? Você colocou o comando inteiro rofi -show run e o espaço/tab antes do comando?

super + @space
     rofi -show run
2 curtidas

Perfeitamente como você escreveu.

Como eu disse, as binds para abrir VSCode, Firefox, Discord, todas elas funcionam 100%. A que não funciona é exatamente a do rofi.

O meu processo de instalação foi simples:

sudo pacman -S rofi
cd .config/sxhkd && code sxhkdrc
digito a bind
salvo o arquivo
reinicio a máquina

e nada acontece. Mas se usar o terminal, vai funcionar o rofi -show run.

Tentei isso por um tempo também e não consegui deixar somente no arquivo sxhkdrc, mas existe uma alternativa interessante que nada mais é do que criar um arquivo e apontar para ele.

Deixei o meu sxhkdrc dessa forma:

##---------- Rofi Launcher & Menus ----------##

# Rofi App Launcher
alt + F1
	sh ~/.config/bspwm/rofi/bin/launcher


# Rofi Menus
super + {w,x}
	sh ~/.config/bspwm/rofi/bin/{windows,powermenu}

Essa combinação alt + F1 parece estranha, mas instalei o ksuperkey e configurei, no arquivo bspwmrc, para o sistema abrir Rofi com a tecla super :

# Enable Super Keys For Menu
ksuperkey -e 'Super_L=Alt_L|F1' &
ksuperkey -e 'Super_R=Alt_L|F1' &

Dentro desse diretório (~/.config/bspwm/rofi/bin) deixei o arquivo launcher (entre outros):

#!/bin/sh

DIR="$HOME/.config/bspwm"

rofi -no-lazy-grab -show drun -theme $DIR/rofi/themes/launcher.rasi
Dentro da pasta theme deixei uma personalização que gosto
configuration {
    font:                           "Iosevka 10";
    show-icons:                     true;
	icon-theme: 					"Hybrid";
    display-drun: 					":";
    drun-display-format:            "{icon} {name}";
    threads:                        0;
    scroll-method:                  0;
    disable-history:                false;
    fullscreen:                     false;
	hide-scrollbar: 				true;
	sidebar-mode: 					false;
}

@import "colors.rasi"

window {
    transparency:                   "real";
    background-color:               @background;
    text-color:                     @foreground;
	border:							1px;
    border-radius:                  0px;
    border-color:					@selected;
    width:                          25%;
    location:                       center;
    anchor:                         center;
    x-offset:                       0;
    y-offset:                       0;
}

prompt {
    enabled: 						true;
	padding: 						4px 4px 6px 6px;
	background-color: 				@background;
	text-color: 					@foreground;
}

textbox-prompt-colon {
	expand: 						false;
	str: 							"";
    background-color:               @background;
    text-color:                     @urgent;
    padding:                        5px 0px 0px 6px;
	font:							"feather 10";
}

inputbar {
	children: 						[ textbox-prompt-colon, entry ];
    background-color:               @background;
    text-color:                     @foreground;
    expand:                         false;
    border:                  		0px 0px 1px 0px;
    border-radius:                  0px;
    border-color:                  	@selected;
    margin:                         0px 0px 0px 0px;
    padding:                        0px 0px 4px 0px;
    position:                       center;
}


entry {
    background-color:               @background;
    text-color:                     @foreground;
    placeholder-color:              @foreground;
    expand:                         true;
    horizontal-align:               0;
    placeholder:                    "Search Applications";
    blink:                          true;
    padding:                        4px 0px 0px 4px;
}

case-indicator {
    background-color:               @background;
    text-color:                     @foreground;
    spacing:                        0;
}


listview {
    background-color:               @background;
    columns:                        1;
    lines:							6;
    spacing:                        4px;
    cycle:                          false;
    dynamic:                        true;
    layout:                         vertical;
}

mainbox {
    background-color:               @background;
    children:                       [ inputbar, listview ];
    spacing:                       	5px;
    padding:                        5px 5px 5px 5px;
}

element {
    background-color:               @background;
    text-color:                     @foreground;
    orientation:                    horizontal;
    border-radius:                  4px;
    padding:                        6px 6px 6px 6px;
}

element-icon {
    size:                           16px;
    border:                         0px;
}

element-text {
    expand:                         true;
    horizontal-align:               0;
    vertical-align:                 0;
    margin:                         2px 0px 2px 2px;
}

element normal.urgent,
element alternate.urgent {
    background-color:               @urgent;
    text-color:                     @foreground;
    border-radius:                  9px;
}

element normal.active,
element alternate.active {
    background-color:               @background;
    text-color:                     @foreground;
}

element selected {
    background-color:               @selected;
    text-color:                     @background;
    border:                  		0px;
    border-radius:                  0px;
    border-color:                  	@selected;
}

element selected.urgent {
    background-color:               @urgent;
    text-color:                     @foreground;
}

element selected.active {
    background-color:               @background;
    color:                          @foreground;
}
E caso queira copiar, segue a configuração do arquivo color citado por theme
* {
background:			#2E3440;
foreground:			#D8DEE9;
selected:			#81A1C1;
urgent:				#BF616A;
on:					#A3BE8C;
off:				#BF616A;
}
4 curtidas

Até seguindo esses passos ainda não funciona como deveria. Vou deixar abaixo o meu dotfiles no github, é possível você analisar aonde está o meu possível erro?

Até criei um arquivo ro.sh para agilizar a instalação dos arquivos e configurações que você passou, mas ainda em vão.

RafaelKudryashov/dotfiles (github.com)

1 curtida

Vou iniciar uma VM aqui e testar.

Nessa parte aqui:

image

bin é uma pasta com o arquivo launcher (isso que causou confusão). Renomeie o arquivo bin para launcher, crie a pasta bin dentro de rofi e jogo launcher dentro:

image

Dependendo de onde ficará o arquivo theme, será necessário trocar o caminho dentro do arquivo launcher:

image
Coloquei esse caminho pois é onde esta o arquivo, mas deixo como tinha colocado na resposta anterior.

Com isso abriu normalmente:

image

Edit: já ia esquecendo, caso queira pegar os arquivos que usei como exemplo, pode acessar o git thespation/pop_bspwm (github.com) e copiar a pasta rofi (possui a pasta rofi e bspwm/rofi, pode brincar com as configurações).

4 curtidas

Mesmo fazendo as alterações do arquivo bin para pasta e acompanhando o caminho correto dentro do launcher, não houve sequer uma resposta do sistema. Estou tentando fazer o padrão do rofi funcionar (sem a necessidade de usá-lo via terminal) para depois pensar em personalizações e afins.

O código dentro do launcher
image

Os diretórios e os arquivos
image

No seu print, a pasta está dentro de /src/… E o caminho dentro do arquivo launcher está apontando para home, está desencontrando.

1 curtida

Sim, isso eu sei, mas é que esses arquivos no VSCode/gihub, assim que eu executo o setup.sh, todos os arquivos são movidos para os caminhos corretos conforme segue a hierarquia apresentada. A pasta src é a source, apenas.

Estes são os comandos executados de cópia dos arquivos

cp /home/$USER/dotfiles/src/.config/rofi/bin/launcher /home/$USER/.config/rofi/bin/
cp /home/$USER/dotfiles/src/.config/rofi/themes/colors.rasi /home/$USER/.config/rofi/themes/
cp /home/$USER/dotfiles/src/.config/rofi/themes/launcher.rasi /home/$USER/.config/rofi/themes/

Com isso, o comando executado nesse launcher já puxa corretamente os outros arquivos (ao menos deveria).

Vamos por partes, primeiro a gente precisa se certificar que o rofi esteja abrindo para depois configurar em atalho.

Faz o seguinte, arrasta o arquivo launcher para o terminal e executa, se abrir a gente vai saber que a primeira parte já foi.

Tem uma outra configuração de rofi que pode testar, caso queira mais uma opção:

Executa normalmente. E o rofi -show run também executa normal, porém sem a personalização.

image

image

Fica mais interessante usar drun ao invés de run, faz só um teste.

Pelo que posso observar da segunda tela, pegou a personalização mas está faltando ícone de lupa (pode pegar as fontes necessárias no meu gif). Na primeira foto está abrindo sem puxar tema, provavelmente abrindo pelo terminal sem apontar para o launcher.

Acredito que esteja desencontrando os endereços ainda, quando o sxhkd aponta para um arquivo rofi, mesmo não estando 100%, abre ou diz em que linha está o erro. Como ao pressionar as teclas de atalho não está apresentando mensagem, me vem a cabeça 2 coisas: o atalho está apontando para um lugar que não existe o arquivo ou o arquivo não está com permissão de execução.

1 curtida

Ao utilizar o drun, apresenta a mensagem de que o drun não está habilitado, porém o habilitam no momento e aí pedem para adicionar o comando ao modi (não sei como fazer isso).

Existe a possibilidade de fazer um debug para reproduzir a mensagem enviada ao pressionar a bind?

Porque até aonde eu vi e entendi, a bind que adicionei deveria puxar o arquivo no diretório (sendo launcher o arquivo) .config/rofi/bin/launcher e abrindo o arquivo no VSCode, ele mostra o diretório para os temas adicionais, que como apresentado na postagem anterior, ele é 100% funcional se executado diretamente no terminal como sh launcher.

Os comandos do Rofi são comandos do shell como quaisquer outros, dá para usar redirecionamentos. Talvez dê para ver as mensagens de erro com:

rofi -show run > ~/rofi.log 2>&1

Daí ver o arquivo rofi.log na sua home.

3 curtidas

O arquivo está vazio. Usei as binds inúmeras vezes mas não gera nenhum registro no arquivo.

@edit:
O meu problema é realmente na reprodução da bind. Abrindo o diretório diretamente pelo terminal, o arquivo funciona 100%.

O problema foi solucionado com uma nova reinstalação do sistema e agora funciona 100% como eu esperava. Agradeço ao suporte, @Capezotte e @thespation.

Antes disso, procurei pelo suporte no repositório oficial do projeto e apesar de tudo estar 100% correto (realizando todos os procedimentos solicitados pelo mantenedor), o rofi não respondia ao sxhkd.

O tópico já pode ser encerrado.

1 curtida

Este tópico foi fechado automaticamente 3 dias depois da última resposta. Novas respostas não são mais permitidas.