GithubHelp home page GithubHelp logo

antoniosarosi / dotfiles Goto Github PK

View Code? Open in Web Editor NEW
832.0 37.0 188.0 33.12 MB

My dotfiles repo, here you can find all my window manager configs as well as documentation and a guide on how to make your own desktop environment.

License: MIT License

Shell 17.49% Vim Script 38.60% Python 22.32% Haskell 20.35% JavaScript 0.78% Lua 0.45%
dotfiles tiling-window-manager arch-linux qtile spectrwm neovim dwm xmonad openbox

dotfiles's Introduction

Dotfiles & Configs

Qtile

Language

Quick Links

Table of Contents

Overview

This guide will walk you through the process of building a desktop environment starting with a fresh Arch based installation. I will assume that you are comfortable with Linux based operating systems and command line interfaces. Because you are reading this, I will also assume that you've looked through some "tiling window manager" videos on Youtube, because that's where the rabbit hole starts. You can pick any window managers you want, but I'm going to use Qtile as a first tiling window manager because that's what I started with. This is basically a description of how I made my desktop environment from scratch.

Arch installation

The starting point of this guide is right after a complete clean Arch based distro installation. The Arch Wiki doesn't tell you what to do after setting the root password, it suggests installing a bootloader, but before that I would make sure to have working internet:

pacman -S networkmanager
systemctl enable NetworkManager

Now you can install a bootloader and test it "safely", this is how to do it on modern hardware, assuming you've mounted the efi partition on /boot:

pacman -S grub efibootmgr os-prober
grub-install --target=x86_64-efi --efi-directory=/boot
os-prober
grub-mkconfig -o /boot/grub/grub.cfg

Now you can create your user:

useradd -m username
passwd username
usermod -aG wheel,video,audio,storage username

In order to have root privileges we need sudo:

pacman -S sudo

Edit /etc/sudoers with nano or vim by uncommenting this line:

## Uncomment to allow members of group wheel to execute any command
# %wheel ALL=(ALL) ALL

Now you can reboot:

# Exit out of ISO image, unmount it and remove it
exit
umount -R /mnt
reboot

After logging in, your internet should be working just fine, but that's only if your computer is plugged in. If you're on a laptop with no Ethernet ports, you might have used iwctl during installation, but that program is not available anymore unless you have installed it explicitly. However, we've installed NetworkManager, so no problem, this is how you connect to a wireless LAN with this software:

# List all available networks
nmcli device wifi list
# Connect to your network
nmcli device wifi connect YOUR_SSID password YOUR_PASSWORD

Check this page for other options provided by nmcli. The last thing we need to do before thinking about desktop environments is installing Xorg:

sudo pacman -S xorg

Login and window manager

First, we need to be able to login and open some programs like a browser and a terminal, so we'll start by installing lighdm and qtile. Lightdm will not work unless we install a greeter. We also need xterm because that's the terminal emulator qtile will open by default, until we change the config file. Then, a text editor is necessary for editing config files, you can use vscode or jump straight into neovim if you have previous experience, otherwise I wouldn't suggest it. Last but not least, we need a browser.

sudo pacman -S lightdm lightdm-gtk-greeter qtile xterm code firefox

Enable lightdm service and restart your computer, you should be able to log into Qtile through lightdm.

sudo systemctl enable lightdm
reboot

Basic qtile configuration

Now that you're in Qtile, you should know some of the default keybindings.

Key Action
mod + return launch xterm
mod + k next window
mod + j previous window
mod + w kill window
mod + [asdfuiop] go to workspace [asdfuiop]
mod + ctrl + r restart qtile
mod + ctrl + q logout

Before doing anything else, if you don't have a US keyboard, you should change it using setxkbmap. To open xterm use mod + return. For example to change your layout to spanish:

setxkbmap es

Note that this change is not permanent, if you reboot you have to type that command again. See this section for making it permanent, or follow the natural order of this guide if you have enough time.

There is no menu by default, you have to launch programs through xterm. At this point, you can pick your terminal emulator of choice and install a program launcher.

# Install another terminal emulator if you want
sudo pacman -S alacritty

Now open the config file:

code ~/.config/qtile/config.py

At the beginning, after imports, you should find an array called keys, and it contains the following line:

Key([mod], "Return", lazy.spawn("xterm")),

Change that line to launch your terminal emulator:

Key([mod], "Return", lazy.spawn("alacritty")),

Install a program launcher like dmenu or rofi:

sudo pacman -S rofi

Then add keybindings for that program:

Key([mod], "m", lazy.spawn("rofi -show run")),
Key([mod, 'shift'], "m", lazy.spawn("rofi -show")),

Now restart Qtile with mod + control + r. You should be able to open your menu and terminal emulator with keybindings. If you picked rofi, you can change its theme like so:

sudo pacman -S which
rofi-theme-selector

That's it for Qtile, now you can start hacking on it and make it your own. Checkout my custom Qtile config here. But before that I would recommend configuring basic utilities like audio, battery, mounting drives, etc.

Basic system utilities

In this section we will cover some software that almost everybody needs on their system. Keep in mind though that the changes we are going to make will not be permanent. This subsection describes how to accomplish that.

Wallpaper

First things first, your screen looks empty and black, so you might want to have a wallpaper not to feel so depressed. You can open firefox through rofi using mod + m and download one. Then install feh or nitrogen and and set your wallpaper:

sudo pacman -S feh
feh --bg-scale path/to/wallpaper

Fonts

Fonts in Arch Linux are basically a meme, before you run into any problems you can just use the simple approach of installing these packages:

sudo pacman -S ttf-dejavu ttf-liberation noto-fonts

To list all available fonts:

fc-list

Audio

There is no audio at this point, we need pulseaudio. I suggest also installing a graphical program to control audio like pavucontrol, because we don't have keybindings for that yet:

sudo pacman -S pulseaudio pavucontrol

On Arch, pulseaudio is enabled by default, but you might need to reboot in order for it to actually start. After rebooting, you can open pavucontrol through rofi, unmute the audio, and you should be just fine.

Now you can set up keybindings for pulseaudio, open Qtile's config.py and add these keys:

# Volume
Key([], "XF86AudioLowerVolume", lazy.spawn(
    "pactl set-sink-volume @DEFAULT_SINK@ -5%"
)),
Key([], "XF86AudioRaiseVolume", lazy.spawn(
    "pactl set-sink-volume @DEFAULT_SINK@ +5%"
)),
Key([], "XF86AudioMute", lazy.spawn(
    "pactl set-sink-mute @DEFAULT_SINK@ toggle"
)),

For a better CLI experience though, I recommend using pamixer:

sudo pacman -S pamixer

Now you can turn your keybindings into:

# Volume
Key([], "XF86AudioLowerVolume", lazy.spawn("pamixer --decrease 5")),
Key([], "XF86AudioRaiseVolume", lazy.spawn("pamixer --increase 5")),
Key([], "XF86AudioMute", lazy.spawn("pamixer --toggle-mute")),

Restart Qtile with mod + control + r and your keybindings should work. If you're on a laptop, you might also want to control the brightness of your screen, and for that I recommend brightnessctl:

sudo pacman -S brightnessctl

You can add these keybindings and restart Qtile after:

# Brightness
Key([], "XF86MonBrightnessUp", lazy.spawn("brightnessctl set +10%")),
Key([], "XF86MonBrightnessDown", lazy.spawn("brightnessctl set 10%-")),

Monitors

If you have a multi-monitor system, you surely want to use all your screens. Here's how xrandr CLI works:

# List all available outputs and resolutions
xrandr
# Common setup for a laptop and a monitor
xrandr --output eDP-1 --primary --mode 1920x1080 --pos 0x1080 --output HDMI-1 --mode 1920x1080 --pos 0x0

We need to specify the position for each output, otherwise it will default to 0x0, and all your outputs will be overlapped. Now if you don't want to calculate pixels and stuff you need a GUI like arandr:

sudo pacman -S arandr

Open it with rofi, arrange your screens however you want, and then you can save that layout, which will basically give you a shell script with the exact xrandr command that you need. Save that script, but don't click "apply" just yet.

For a multi-monitor system, it's recommended to create an instance of a Screen object for each monitor in your Qtile config.

You'll find an array called screens which contains only one object initialized with a bar at the bottom. Inside that bar you can see the default widgets that come with it.

Add as many screens as you have and copy-paste all widgets, later you can customize them. Now you can go back to arandr, click apply, and then restart Qtile.

Now your multi-monitor system should work.

Storage

Another basic utility you might need is automounting external hard drives or USBs. For that I use udisks and udiskie. udisks is a dependency of udiskie, so we only need to install the last one. Install also ntfs-3g package to read and write NTFS formatted drives:

sudo pacman -S udiskie ntfs-3g

Network

We have configured the network through nmcli, but a graphical frontend is more friendly. I use nm-applet:

sudo pacman -S network-manager-applet

Systray

By default, you have a system tray in Qtile, but there's nothing running in it. You can launch the programs we've just installed like so:

udiskie -t &
nm-applet &

Now you should see icons that you can click to configure drives and networking. Optionally, you can install tray icons for volume and battery:

sudo pacman -S volumeicon cbatticon
volumeicon &
cbatticon &

Notifications

I like having desktop notifications as well, for that you need to install libnotify and notification-daemon:

sudo pacman -S libnotify notification-daemon

For a tiling window manager, this is how you can get notifications:

# Create this file with nano or vim
sudo nano /usr/share/dbus-1/services/org.freedesktop.Notifications.service
# Paste these lines
[D-BUS Service]
Name=org.freedesktop.Notifications
Exec=/usr/lib/notification-daemon-1.0/notification-daemon

Test it like so:

notify-send "Hello World"

Xprofile

As I have mentioned before, all these changes are not permanent. In order to make them permanent, we need a couple things. First, install xinit:

sudo pacman -S xorg-xinit

Now you can use ~/.xprofile to run programs before your window manager starts:

touch ~/.xprofile

For example, if you place this in ~.xprofile:

xrandr --output eDP-1 --primary --mode 1920x1080 --pos 0x1080 --output HDMI-1 --mode 1920x1080 --pos 0x0 &
setxkbmap es &
nm-applet &
udiskie -t &
volumeicon &
cbatticon &

Every time you login you will have all systray utilities, your keyboard layout and monitors set.

Further configuration and tools

AUR helper

Now that you have some software that allows you tu use your computer without losing your patience, it's time to do more interesting stuff. First, install an AUR helper, I use yay:

sudo pacman -S base-devel git
cd /opt/
sudo git clone https://aur.archlinux.org/yay-git.git
sudo chown -R username:username yay-git/
cd yay-git
makepkg -si

With an Arch User Repository helper, you can basically install any piece of software on this planet that was meant to run on Linux.

Media Transfer Protocol

If you want to connect your phone to your computer using a USB port, you'll need MTP implementation and some CLI to use it, like this one:

sudo pacman -S libmtp
yay -S simple-mtpfs

# List connected devices
simple-mtpfs -l
# Mount first device in the previous list
simple-mtpfs --device 1 /mount/point

File Manager

We've done all files stuff through a terminal up to this point, but you can install graphical or terminal based file managers. For a graphical one, I suggest thunar and for a terminal based one, ranger, although this one is very vim-like, only use it if you know how to move in vim.

sudo pacman -S thunar ranger

Trash

If you don't want to rm all the time and potentially lose files, you need a trashing system. Luckily, that's pretty easy to do, using some of these tools such as glib2, and for GUIs like thunar you need gvfs:

sudo pacman -S glib2 gvfs
# CLI usage
gio trash path/to/file
# Empty trash
gio trash --empty

With thunar you can open the trash clicking on the left panel, but on the command line you can use:

ls ~/.local/share/Trash/files

GTK Theming

The moment you have been wating for has arrived, you are finally going to install a dark theme. I use Material Black Colors, so go grab a flavor here and the matching icons here.

I suggest starting with Material-Black-Blueberry and Material-Black-Blueberry-Suru. You can find other GTK themes on this page. Once you have your theme folders downloaded, this is what you do:

# Assuming you have downloaded Material-Black-Blueberry
cd Downloads/
sudo pacman -S unzip
unzip Material-Black-Blueberry.zip
unzip Material-Black-Blueberry-Suru.zip
rm Material-Black*.zip

# Make your themes available
sudo mv Material-Black-Blueberry /usr/share/themes
sudo mv Material-Black-Blueberry-Suru /usr/share/icons

Now edit ~/.gtkrc-2.0 and ~/.config/gtk-3.0/settings.ini by adding these lines:

# ~/.gtkrc-2.0
gtk-theme-name = "Material-Black-Blueberry"
gtk-icon-theme-name = "Material-Black-Blueberry-Suru"

# ~/.config/gtk-3.0/settings.ini
gtk-theme-name = Material-Black-Blueberry
gtk-icon-theme-name = Material-Black-Blueberry-Suru

Next time you log in, these changes will be visible. You can also install a different cursor theme, for that you need xcb-util-cursor. The theme I use is Breeze, download it and then:

sudo pacman -S xcb-util-cursor
cd Downloads/
tar -xf Breeze.tar.gz
sudo mv Breeze /usr/share/icons

Edit /usr/share/icons/default/index.theme by adding this:

[Icon Theme]
Inherits = Breeze

Now, again, edit ~/.gtkrc-2.0 and ~/.config/gtk-3.0/settings.ini:

# ~/.gtkrc-2.0
gtk-cursor-theme-name = "Breeze"

# ~/.config/gtk-3.0/settings.ini
gtk-cursor-theme-name = Breeze

Make sure not to mistype the names of your themes and icons, they should match the names of the directories where they are located, the ones you can see in this output:

ls /usr/share/themes
ls /usr/share/icons

Remember that you will only see the new theme if you log in again. There are also graphical frontends for changing themes, I just prefer the traditional way of editing files though, but you can use lxappearance, which is a desktop environment independent GUI for this task, and it lets you preview themes.

sudo pacman -S lxappearance

Finally, if you want tranparency and fancy looking things, install a compositor:

sudo pacman -S picom
# Run it like so, place it in ~/.xrofile
picom &

Qt

GTK themes will not be applied to Qt programs, but you can use Kvantum to change the default theme:

sudo pacman -S kvantum-qt5
echo "export QT_STYLE_OVERRIDE=kvantum" >> ~/.profile

Lightdm theming

We can also change the theme of lightdm and make it look cooler, because why not? We need another greeter, and some theme, namely lightdm-webkit2-greeter and lightdm-webkit-theme-aether:

sudo pacman -S lightdm-webkit2-greeter
yay -S lightdm-webkit-theme-aether

These are the configs you need to make:

# /etc/lightdm/lightdm.conf
[Seat:*]
# ...
# Uncomment this line and set this value
greeter-session = lightdm-webkit2-greeter
# ...

# /etc/lightdm/lightdm-webkit2-greeter.conf
[greeter]
# ...
webkit_theme = lightdm-webkit-theme-aether

Ready to go.

Multimedia

There are dozens of programs for multimedia stuff, check this page.

Images

For image previews, one of the best that I could find is geeqie:

sudo pacman -S geeqie

Video and audio

No doubt vlc is exactly what you need:

sudo pacman -S vlc

Start Hacking

With all you've done so far, you got all the tools to start playing with configs and make your desktop environment, well, yours. What I recommend is hacking on Qtile to adding keybindings for common programs like firefox, a text editor, file manager, etc.

Once you feel comfortable with Qtile, you can install other tiling window managers, and you will have more sessions available when logging in through lightdm.

Here you have a list of all my window manager configs, which are located in this repository and have their own documentation:

Gallery

Qtile

Spectrwm

Openbox

Xmonad

Dwm

Keybindings

These are common keybindings to all my window managers.

Windows

Key Action
mod + j next window (down)
mod + k next window (up)
mod + shift + h decrease master
mod + shift + l increase master
mod + shift + j move window down
mod + shift + k move window up
mod + shift + f toggle floating
mod + tab change layout
mod + [1-9] Switch to workspace N (1-9)
mod + shift + [1-9] Send Window to workspace N (1-9)
mod + period Focus next monitor
mod + comma Focus previous monitor
mod + w kill window
mod + ctrl + r restart wm
mod + ctrl + q quit

The following keybindings will only work if you install all programs needed:

sudo pacman -S rofi thunar firefox alacritty redshift scrot

To set up rofi, check this README, and for alacritty, this one.

Apps

Key Action
mod + m launch rofi
mod + shift + m window nav (rofi)
mod + b launch browser (firefox)
mod + e launch file explorer (thunar)
mod + return launch terminal (alacritty)
mod + r redshift
mod + shift + r stop redshift
mod + s screenshot (scrot)

Software

Basic utilities

Software Utility
networkmanager Self explanatory
network-manager-applet NetworkManager systray
pulseaudio Self explanatory
pavucontrol pulseaudio GUI
pamixer pulseaudio CLI
brightnessctl Laptop screen brightness
xinit Launch programs before wm starts
libnotify Desktop notifications
notification-daemon Self explanatory
udiskie Automounter
ntfs-3g NTFS read & write
arandr GUI for xrandr
cbatticon Battery systray
volumeicon Volume systray
glib2 Trash
gvfs Trash for GUIs

Fonts, theming and GTK

Software Utility
Picom Compositor for Xorg
UbuntuMono Nerd Font Nerd Font for icons
Material Black GTK theme and icons
lxappearance GUI for changing themes
nitrogen GUI for setting wallpapers
feh CLI for setting wallpapers

Apps

Software Utility
alacritty Terminal emulator
thunar Graphical file explorer
ranger Terminal based explorer
neovim Terminal based editor
rofi Menu and window switcher
scrot Screenshot
redshift Take care of your eyes
trayer Systray

dotfiles's People

Contributors

adrian200223 avatar antoniosarosi avatar cg-jl avatar colonca avatar frankcs96 avatar ncarf avatar ydavpacat avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

dotfiles's Issues

Error en el archivo de widgets.py

¡Hola Buenas @antoniosarosi!
Hace unas semanas instale la distribución de Linux (Arch Linux) con el gestor de ventana Qtile, hasta ahi todo bien, lo que pasa es que quiero reportar un fallo que me ha sucedido con la configuración. Este error me sucedio cuando ejecute el comando sudo pacman -Syu. He visto el log de Qtile y he podido observar que en el archivo con el problema es widgets.py en la linea 64.

Para solucionar el error he tenido que comentar esta linea.
widget.Pacman(**base(bg='color4'), update_interval=1800)

Te dejo mi log:
qtile.log

El archivo widgets.py de tu repositorio:
widgets.py

Atentamente Diego Gutiérrez

Tripple monitor setup not working

Hello,

Tripple monitor setup is not working due to how secondary_widgets is used in the bars. Basically with the code you are passing same reference of secondary_widgets to the new bars which doesn't work. A fix that works for me is wrapping the secondary_widgets into a function returning a new copy of the widgets on every call.

def secondary_widgets(): return [...]

When I have some time I will submit a PR.

Deprecated Rofi theme definition

First of all thanks for the amazing guide you've put together.

I found an issue with a deprecated theme definition in the Rofi configuration file (config.rasi):

theme: "onedark"; should be replaced with @theme: "onedark" at the end of the file, outside of the brackets. Sorry I'm not fixing it myself, I'm not very acquainted with git.

Qtile unresponseive after restart

Hi,

Not sure if this is something from your script or qtile, but I've tried it and sometimes when I restart qtile(mod+shift+r) to apply some changes or when I connect an external monitor, the application from the current workspace will be on top of every other app, and on empty workspaces too, but it's like an image, not clickable, closing the app from the original workspace or with killall doesn't help, the only way to get around this is to restart every open app that was affected.

Edit:

Here is a preview:

https://i.imgur.com/HnlBWct.png

error con la barra superior

Hola, tengo un problema con la barra superior. Carga mal o no se que problema tiene, ademas los iconos de bateria y volumen se ven dobles. no se como solucionarlo, chequee el archivo widgets.py pero nada. si alguno sabe porfavor ayudeme.

foto

si se fijan arriba a la derecha esta lo que les digo.
saludos

Gtk Configuration

Hi @antoniosarosi! very good work on your dotfiles, your dotfiles are very beautiful! congratulations!!!

But I want to know what are your gtk configuration, it's possible? more specifically your cursor theme of
your gtk configuration, you can share it configuration?

Problema con Rofi

Me aparece esto y no hay un .rasi del tema en la carpeta .config/rofi por ejemplo (onedark.rasi)
imagen

Error al cargar la configuracion de qtile en debian 9

He intentado clonar tu configuracion de qtile, pero he tenido un problema. Consiste en que al iniciar qtile... obtengo la configuracion por defecto de qtile, con un mensaje que dice: Config Err!, intente ejecutando la configuracion con cd ~/.config/qtile ; python3 ./config.py, y obtengo el siguiente error:

Non-config.Match objects in float_rules are deprecated
Traceback (most recent call last):
  File "./config.py", line 14, in <module>
    from settings.widgets import widget_defaults, extension_defaults
  File "/home/thecoderpro/.config/qtile/settings/widgets.py", line 64, in <module>
    widget.Pacman(**base(bg='color4'), update_interval=1800),
  File "/usr/local/lib/python3.7/dist-packages/qtile-0.16.2.dev190+ga7d27ef6-py3.7-linux-x86_64.egg/libqtile/utils.py", line 226, in __getattr__
    raise AttributeError
AttributeError

Estas son algunas capturas:

En la barra se ve el error: Config Err!
1

El output del comando anteriormente mencionado:
2

Xmonad 0.15 to 0.17

Luego de hacer update upgrade a pacman, se instaló xmonad 0.17 y no deja recompilar nuevamente la configuración, bota el siguiente log : https://pastebin.com/iZ5cbcMv

Alguna ayuda de cómo modificar o qué hacer para migrar del 0.15 al 0.17?

[BUG] not urgent: Forma extraña "M" aparece en la parte superior de la pantala.

Estaba probando la configuración de Qtile de este repositorio, la primera vez que probé esta configuración, funcionó todo perfectamente, la segunda vez (después de reiniciar el ordenador) aparecieron unas formas extrañas en la barra superior (donde se encuentra la información de red, los layouts etc.)

Es una forma curiosa cuanto menos, con forma de vector en "m" (vs. barra superior en capura). Voy a ver si lo consigo arreglar, en caso de que lo consiga solucionar lo escribiré en este hilo.

Si alguien sabe algo o le ha pasado algo similar, se agradece cualquier tipo de ayuda. Puede que sea cosa de mi ordenador o de mi tarjeta gráfica.

m_extragna

Fallo con tema Aether en imagen de usuario

La imagen de usuario no se muestra correctamente a pesar de que tengo el archivo .face seguí los pasos de la página de GitHub de Aether y trate modificar el directorio de la opción user-image

Simbolos powerline muy grandes en resoluciones no muy grandes

Hola!
Quisiera poner los simbolos powerline de la barra un poco mas chiquitos, porque es que se ven bastante grandes (con mucho padding) en mi resolucion: 1366x768... Mi settings/widget.py es este:

import subprocess
from libqtile import widget
from settings.theme import colors

# Get the icons at https://www.nerdfonts.com/cheat-sheet (you need a Nerd Font)

base = lambda fg='text', bg='dark': {
    'foreground': colors[fg],
    'background': colors[bg]
}

separator = lambda: widget.Sep(**base(), linewidth=0, padding=5)

icon = lambda fg='text', bg='dark', fontsize=10, text="?": widget.TextBox(
    **base(fg, bg),
    fontsize=fontsize,
    text=text,
    padding=3
)

text = lambda fg='text', bg='dark', fontsize=12, text="?": widget.TextBox(
    **base(fg, bg),
    fontsize=fontsize,
    text=text,
    padding=3
)

powerline = lambda fg="light", bg="dark": widget.TextBox(
   **base(fg, bg),
    text="", # Icon: nf-oct-triangle_left
    fontsize=37,
    padding=-3
)

workspaces = lambda: [
    separator(),
    widget.GroupBox(
        **base(fg='light'),
        font='UbuntuMono Nerd Font',
        fontsize=13,
        margin_y=1,
        margin_x=3,
        padding_y=3,
        padding_x=5,
        borderwidth=1,
        active=colors['active'],
        inactive=colors['inactive'],
        rounded=False,
        highlight_method='block',
        urgent_alert_method='block',
        urgent_border=colors['urgent'],
        this_current_screen_border=colors['focus'],
        this_screen_border=colors['grey'],
        other_current_screen_border=colors['dark'],
        other_screen_border=colors['dark'],
        disable_drag=True
    ),
    separator(),
    widget.WindowName(**base(fg='focus'), fontsize=12, padding=5),
    separator(),
]

executer = subprocess.run(['apt list --upgradable 2>/dev/null | grep -v "^Listando" | cut -d\'/\' -f1 | wc -l'], shell=True, stdout=subprocess.PIPE)
updates = executer.stdout.decode('utf-8')
updates = updates.rstrip()

primary_widgets = [
    *workspaces(),

    separator(),

    # widget.Systray(background=colors['dark'], padding=5),

    # separator(),

    powerline('color4', 'dark'),

    icon(bg="color4", text=' '), # Icon: nf-fa-download

    text(bg='color4', text=updates),

    # widget.Pacman(**base(bg='color4'), update_interval=1800),

    powerline('color3', 'color4'),

    icon(bg="color3", text=' '),  # Icon: nf-fa-feed

    widget.Net(**base(bg='color3'), interface='wlp1s0'),

    powerline('color2', 'color3'),

    widget.CurrentLayoutIcon(**base(bg='color2'), scale=0.65),

    widget.CurrentLayout(**base(bg='color2'), padding=5),

    powerline('color1', 'color2'),

    icon(bg="color1", fontsize=14, text=' '), # Icon: nf-mdi-calendar_clock

    widget.Clock(**base(bg='color1'), format='%d/%m/%Y - %H:%M '),

    powerline('dark', 'color1'),

    widget.Systray(background=colors['dark'], padding=0),
]

secondary_widgets = [
    *workspaces(),

    separator(),

    powerline('color1', 'dark'),

    widget.CurrentLayoutIcon(**base(bg='color1'), scale=0.65),

    widget.CurrentLayout(**base(bg='color1'), padding=5),
]

widget_defaults = {
    'font': 'UbuntuMono Nerd Font Bold',
    'fontsize': 12,
    'padding': 1,
}
extension_defaults = widget_defaults.copy()

le baje los tama#os a las fuentes y los paddings se ven gigantes!
quisiera que me ayudes a poner el padding un poco mas peque#o y las fuentes del mismo tama#o

How to edit the color scheme for qtile?

I see you have themes folder and different json files for color schemes.
But I can't figure out the different colors that are used like color1, color2, color3, color4
and the dark, grey and light color as well.
As usually, the names are different.
Can you tell how to edit these files for a different color scheme?
Thanks!

Missing section in GTK3 settings.ini

Hi,

Found another issue. The GTK and icons theme isn't loaded because there's a warning saying that the file doesn't start with a section definition.

In order to fix, the settings.ini file should start with [Settings] in the first line. I'm not sure if there's a similar situation with the GTK2 configuration, but it would be worth looking into it.

problema con wallpaper y resolución de monitor

Cómo hago para que me quedé la resolución que tengo e mi monitor, dado que lo configuro todo desde ajustes de monitor y cuando reinicio no queda vuelve a la resolución máxima y también configure en autostart.sh para que aparezca el wallpaper pero no queda se queda en negro como cuando colocó la configuración de Qtile, cabe destacar que la distro que estoy utilizando es Garuda Qtile, que de hecho me gusta la config tuya. Bueno espero que me puedas dar una mano con esto. Gracias y nos halamos

Error fish ModuleNotFoundError: No module named 'hostname'

Estoy siguiendo el curso de mastermind pero a la hora de usar fish me aparece este error

Traceback (most recent call last):
File "/home/miguel/.local/bin/hostname", line 34, in
sys.exit(load_entry_point('hostname==1.0.1', 'console_scripts', 'hostname')())
File "/home/miguel/.local/bin/hostname", line 26, in importlib_load_entry_point
return next(matches).load()
File "/usr/lib/python3.9/importlib/metadata.py", line 77, in load
module = import_module(match.group('module'))
File "/usr/lib/python3.9/importlib/init.py", line 127, in import_module
return _bootstrap._gcd_import(name[level:], package, level)
File "", line 1030, in _gcd_import
File "", line 1007, in _find_and_load
File "", line 984, in _find_and_load_unlocked
ModuleNotFoundError: No module named 'hostname'

como puedo solucionarlo?

wallpaper in screens.py

hi man, you have a wonderful config. Thank you very much for that.
can you show me how to get the qtile wallpaper function into the screens.py code?
Your line is:
screens = [Screen(top=status_bar(primary_widgets))]
Qtile Wallpaper Function in Screen:
wallpaper='path to wallpaper file',
wallpaper_mode='fill',

Unfortunately, neither feh nor nitrogen creates a wallpaper for me, my background just remains black. (Arch Minimal Install like Wayland)
Maybe you just have a solution why feh does not display a wallpaper with me and the background remains black.
The preview in feh shows me the image correctly and I created the image with "feh --bg-fil path_to_file"

Greetings

Background_opacity no funciona

no se porque pero cuado pongo la opacidad mas baja la terminal se pone mas negra no importa si es por pycritty o por alacritty.yml

Error con los monitores

Ayuda, he intentado de varias maneras para configurar el arandr, mientras configuro la sesión todo bien, el problema es que cuando reinicio se pierde la configuración, lo he colocado en .profile en autorun, en .xprofile, y nada, se supone que la configuración está bien porque es la misma que me genera el arandr, gracias.

Crear 10 workspaces

estoy intentando crear un workspace para las musicas, pero claro, ya tengo 9 workspaces creados, y no quisiera quitar ninguno, entonces, lo que se me ocurre es crear un atajo para el 10, el codigo:

static const char *tags[] = { " ", " ", " ", " ", "", " ", " ", " ", " ", " " }; // el ultimo es el 10

quisiera saber si me puedes ayudar, sobre como puedo asignarle el atajo: MOD+0 al ultimo workspace. Muchas Gracias

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.