diff --git a/bashrc b/bashrc deleted file mode 100755 index d498a20..0000000 --- a/bashrc +++ /dev/null @@ -1,95 +0,0 @@ -bind "set completion-ignore-case on" -export TERM="xterm-256color" -export HISTCONTROL=ignoredups:erasedups -export HISTSIZE=10000 -export EDITOR="nvim" -export MANPAGER="/bin/sh -c \"col -b | vim --not-a-term -c 'set ft=man ts=8 nomod nolist noma' -\"" -export DOTNET_CLI_TELEMETRY_OPTOUT="1" -export LANG="en_US.UTF-8" -export LC_MESSAGES="en_US.UTF-8" -export LC_CTYPE="en_US.UTF-8" -export LIBVIRT_DEFAULT_URI="qemu:///system" - -shopt -s autocd -shopt -s cdspell -shopt -s cmdhist -shopt -s dotglob -shopt -s histappend -shopt -s expand_aliases -shopt -s checkwinsize - -alias vim='nvim' -alias pacu='sudo pacman -Syyu' -alias yayu="yay -Sua --noconfirm" -alias yayue="yay -Syu --noconfirm" -alias cleanup='sudo pacman -Rns $(pacman -Qtdq)' -alias mirror="sudo reflector -f 30 -l 30 --number 10 --verbose --save /etc/pacman.d/mirrorlist" -alias grep='grep --color=auto' -alias egrep='egrep --color=auto' -alias fgrep='fgrep --color=auto' -alias cp="cp -i" -alias mv='mv -i' -alias rm='rm -f' -alias df='df -h' -alias ls='ls -l' -alias jctl="journalctl -p 3 -xb" -alias gpg-check="gpg2 --keyserver-options auto-key-retrieve --verify" -alias gpg-retrieve="gpg2 --keyserver-options auto-key-retrieve --receive-keys" - -#PATH -if [ -d "$HOME/.bin" ] ; - then PATH="$HOME/.bin:$PATH" -fi - -if [ -d "$HOME/.local/bin" ] ; - then PATH="$HOME/.local/bin:$PATH" -fi - -[[ $- != *i* ]] && return -PS1='[\u@\h \W]\$ ' - -case ${TERM} in - xterm*|rxvt*|Eterm*|aterm|kterm|gnome*|alacritty|st|konsole*) - PROMPT_COMMAND='echo -ne "\033]0;${USER}@${HOSTNAME%%.*}:${PWD/#$HOME/\~}\007"' - ;; - screen*) - PROMPT_COMMAND='echo -ne "\033_${USER}@${HOSTNAME%%.*}:${PWD/#$HOME/\~}\033\\"' - ;; -esac - -#Functions -wireguard () { - if [ -f $1 ]; then - case $1 in - up) sudo wg-quick up wg0 ;; - down) sudo wg-quick down wg0 ;; - *) echo "Error" ;; - esac - else - echo "'$1' not valid. Usage: Up || Down" - fi -} - -ex () { - if [ -f $1 ] ; then - case $1 in - *.tar.bz2) tar xjf $1 ;; - *.tar.gz) tar xzf $1 ;; - *.bz2) bunzip2 $1 ;; - *.rar) unrar x $1 ;; - *.gz) gunzip $1 ;; - *.tar) tar xf $1 ;; - *.tbz2) tar xjf $1 ;; - *.tgz) tar xzf $1 ;; - *.zip) unzip $1 ;; - *.Z) uncompress $1;; - *.7z) 7z x $1 ;; - *.deb) ar x $1 ;; - *.tar.xz) tar xf $1 ;; - *.tar.zst) unzstd $1 ;; - *) echo "'$1' cannot be extracted via ex()" ;; - esac - else - echo "'$1' is not a valid file" - fi -} diff --git a/config/alacritty/alacritty.toml b/config/alacritty/alacritty.toml index 4e837fe..e271244 100755 --- a/config/alacritty/alacritty.toml +++ b/config/alacritty/alacritty.toml @@ -37,7 +37,7 @@ text = "CellForeground" TERM = "xterm-256color" [font] -size = 13.0 +size = 12.0 [font.bold] family = "Source Code Pro" @@ -59,96 +59,12 @@ style = "Regular" x = 0 y = 1 -[[keyboard.bindings]] -action = "Paste" -key = "V" -mods = "Control|Shift" - -[[keyboard.bindings]] -action = "Copy" -key = "C" -mods = "Control|Shift" - -[[keyboard.bindings]] -action = "PasteSelection" -key = "Insert" -mods = "Shift" - -[[keyboard.bindings]] -action = "ResetFontSize" -key = "Key0" -mods = "Control" - -[[keyboard.bindings]] -action = "IncreaseFontSize" -key = "Equals" -mods = "Control" - -[[keyboard.bindings]] -action = "IncreaseFontSize" -key = "Plus" -mods = "Control" - -[[keyboard.bindings]] -action = "DecreaseFontSize" -key = "Minus" -mods = "Control" - -[[keyboard.bindings]] -action = "ToggleFullscreen" -key = "F11" -mods = "None" - -[[keyboard.bindings]] -action = "Paste" -key = "Paste" -mods = "None" - -[[keyboard.bindings]] -action = "Copy" -key = "Copy" -mods = "None" - -[[keyboard.bindings]] -action = "ClearLogNotice" -key = "L" -mods = "Control" - -[[keyboard.bindings]] -chars = "\f" -key = "L" -mods = "Control" - -[[keyboard.bindings]] -action = "ScrollPageUp" -key = "PageUp" -mode = "~Alt" -mods = "None" - -[[keyboard.bindings]] -action = "ScrollPageDown" -key = "PageDown" -mode = "~Alt" -mods = "None" - -[[keyboard.bindings]] -action = "ScrollToTop" -key = "Home" -mode = "~Alt" -mods = "Shift" - -[[keyboard.bindings]] -action = "ScrollToBottom" -key = "End" -mode = "~Alt" -mods = "Shift" - [scrolling] history = 5000 [window] dynamic_padding = false -opacity = 0.92 +opacity = 0.9 title = "Alacritty" [window.class] @@ -156,6 +72,6 @@ general = "Alacritty" instance = "Alacritty" [window.padding] -x = 6 -y = 6 +x = 4 +y = 4 diff --git a/config/picom/picom.conf b/config/picom/picom.conf new file mode 100755 index 0000000..f7aa5ed --- /dev/null +++ b/config/picom/picom.conf @@ -0,0 +1,119 @@ +# ____ _____ +# | _ \_ _| Derek Taylor (DistroTube) +# | | | || | http://www.youtube.com/c/DistroTube +# | |_| || | http://www.gitlab.com/dwt1/ +# |____/ |_| +# +# My config. Not much to see here; just some pretty standard stuff. + +# Enabled client-side shadows on windows. Note desktop windows +# (windows with '_NET_WM_WINDOW_TYPE_DESKTOP') never get shadow, +# unless explicitly requested using the wintypes option. +# +shadow = true; + +# The blur radius for shadows, in pixels. (defaults to 12) +shadow-radius = 8; + +# The opacity of shadows. (0.0 - 1.0, defaults to 0.75) +shadow-opacity = .6 + +# The left offset for shadows, in pixels. (defaults to -15) +shadow-offset-x = -3; + +# The top offset for shadows, in pixels. (defaults to -15) +shadow-offset-y = -3; + +# Specify a list of conditions of windows that should have no shadow. +# +# examples: +# shadow-exclude = "n:e:Notification"; +# +# shadow-exclude = [] +shadow-exclude = [ + "name = 'Notification'", + "class_g = 'Conky'", + "class_g ?= 'Notify-osd'", + "class_g = 'Cairo-clock'", + "class_g = 'slop'", + "class_g = 'Polybar'", + "class_g = 'trayer'", + "override_redirect = true", + "_GTK_FRAME_EXTENTS@:c" +]; + + +# Fade windows in/out when opening/closing and when opacity changes, +# unless no-fading-openclose is used. +# fading = false +fading = true; + +# Opacity change between steps while fading in. (0.01 - 1.0, defaults to 0.028) +# fade-in-step = 0.028 +fade-in-step = 0.03; + +# Opacity change between steps while fading out. (0.01 - 1.0, defaults to 0.03) +# fade-out-step = 0.03 +fade-out-step = 0.03; + +# The time between steps in fade step, in milliseconds. (> 0, defaults to 10) +# fade-delta = 10 + +# Specify a list of conditions of windows that should not be faded. +# don't need this, we disable fading for all normal windows with wintypes: {} +fade-exclude = [ + "class_g = 'slop'" # maim +] + +# Opacity of inactive windows. (0.1 - 1.0, defaults to 1.0) +# inactive-opacity = 0.8 +inactive-opacity = 1.00 + +# Opacity of window titlebars and borders. (0.1 - 1.0, disabled by default) +# frame-opacity = 1.0 +frame-opacity = 1.00 + +# Default opacity for dropdown menus and popup menus. (0.0 - 1.0, defaults to 1.0) +# menu-opacity = 1.0 +# menu-opacity is depreciated use dropdown-menu and popup-menu instead. + +#If using these 2 below change their values in line 510 & 511 aswell +popup_menu = { opacity = 1.0; } +dropdown_menu = { opacity = 1.0; } + + +# Let inactive opacity set by -i override the '_NET_WM_OPACITY' values of windows. +# inactive-opacity-override = true +inactive-opacity-override = false; + +# Default opacity for active windows. (0.0 - 1.0, defaults to 1.0) +active-opacity = 1.00 + +# Dim inactive windows. (0.0 - 1.0, defaults to 0.0) +# inactive-dim = 0.0 + +# Specify a list of conditions of windows that should always be considered focused. +# focus-exclude = [] +focus-exclude = [ + "class_g = 'Cairo-clock'", + "class_g = 'Bar'", # lemonbar + "class_g = 'slop'", # maim + "class_g = 'trayer'" # trayer +]; + +opacity-rule = [ + "100:class_g = 'XTerm'", + "100:class_g = 'URxvt'", + "100:class_g = 'firefox'", + "100:class_g = 'Thunderbird'" +]; + +wintypes: +{ + normal = { fade = false; shadow = true; } + tooltip = { fade = true; shadow = true; opacity = 0.75; focus = true; full-shadow = false; }; + dock = { shadow = false; } + dnd = { shadow = true; } + popup_menu = { opacity = 1.0; } + dropdown_menu = { opacity = 1.0; } +}; diff --git a/config/qtile/__pycache__/colors.cpython-312.pyc b/config/qtile/__pycache__/colors.cpython-312.pyc new file mode 100644 index 0000000..d8d55af Binary files /dev/null and b/config/qtile/__pycache__/colors.cpython-312.pyc differ diff --git a/config/qtile/__pycache__/config.cpython-312.pyc b/config/qtile/__pycache__/config.cpython-312.pyc new file mode 100644 index 0000000..15b4633 Binary files /dev/null and b/config/qtile/__pycache__/config.cpython-312.pyc differ diff --git a/config/qtile/autostart.sh b/config/qtile/autostart.sh new file mode 100755 index 0000000..b4e70dd --- /dev/null +++ b/config/qtile/autostart.sh @@ -0,0 +1,11 @@ +#!/usr/bin/env bash + +COLORSCHEME=DoomOne + +lxsession & +picom --daemon & +nm-applet & +sleep 1 +conky -c "$HOME"/.config/conky/qtile/01/"$COLORSCHEME".conf || echo "Couldn't start conky." +volumeicon & +nitrogen --restore & diff --git a/config/qtile/colors.py b/config/qtile/colors.py new file mode 100644 index 0000000..6197908 --- /dev/null +++ b/config/qtile/colors.py @@ -0,0 +1,122 @@ +# If using transparency, make sure you add (background="#00000000") to 'Screen' line(s). +# Then, you can use RGBA color codes to add transparency to the colors below. +# For ex: colors = [["#282c34ee", "#282c34dd"], ... + +DoomOne = [ + ["#282c34", "#282c34"], # bg + ["#bbc2cf", "#bbc2cf"], # fg + ["#1c1f24", "#1c1f24"], # color01 + ["#ff6c6b", "#ff6c6b"], # color02 + ["#98be65", "#98be65"], # color03 + ["#da8548", "#da8548"], # color04 + ["#51afef", "#51afef"], # color05 + ["#c678dd", "#c678dd"], # color06 + ["#46d9ff", "#46d9ff"] # color15 + ] + +Dracula = [ + ["#282a36", "#282a36"], # bg + ["#f8f8f2", "#f8f8f2"], # fg + ["#000000", "#000000"], # color01 + ["#ff5555", "#ff5555"], # color02 + ["#50fa7b", "#50fa7b"], # color03 + ["#f1fa8c", "#f1fa8c"], # color04 + ["#bd93f9", "#bd93f9"], # color05 + ["#ff79c6", "#ff79c6"], # color06 + ["#9aedfe", "#9aedfe"] # color15 + ] + +GruvboxDark = [ + ["#282828", "#282828"], # bg + ["#ebdbb2", "#ebdbb2"], # fg + ["#000000", "#000000"], # color01 + ["#fb4934", "#fb4934"], # color02 + ["#98971a", "#98971a"], # color03 + ["#d79921", "#d79921"], # color04 + ["#83a598", "#83a598"], # color05 + ["#d3869b", "#d3869b"], # color06 + ["#b8bb26", "#b8bb26"], # color11 + ] +MonokaiPro = [ + ["#2D2A2E", "#2D2A2E"], # bg + ["#FCFCFA", "#FCFCFA"], # fg + ["#403E41", "#403E41"], # color01 + ["#FF6188", "#FF6188"], # color02 + ["#A9DC76", "#A9DC76"], # color03 + ["#FFD866", "#FFD866"], # color04 + ["#FC9867", "#FC9867"], # color05 + ["#AB9DF2", "#AB9DF2"], # color06 + ["#78DCE8", "#78DCE8"] # color07 + ] + +Nord = [ + ["#2E3440", "#2E3440"], # bg + ["#D8DEE9", "#D8DEE9"], # fg + ["#3B4252", "#3B4252"], # color01 + ["#BF616A", "#BF616A"], # color02 + ["#A3BE8C", "#A3BE8C"], # color03 + ["#EBCB8B", "#EBCB8B"], # color04 + ["#81A1C1", "#81A1C1"], # color05 + ["#B48EAD", "#B48EAD"], # color06 + ["#88C0D0", "#88C0D0"] # color07 + ] + +OceanicNext = [ + ["#1b2b34", "#1b2b34"], # bg + ["#d8dee9", "#d8dee9"], # fg + ["#29414f", "#29414f"], # color01 + ["#ec5f67", "#ec5f67"], # color02 + ["#99c794", "#99c794"], # color03 + ["#fac863", "#fac863"], # color04 + ["#6699cc", "#6699cc"], # color05 + ["#c594c5", "#c594c5"], # color06 + ["#5fb3b3", "#5fb3b3"] # color07 + ] + +Palenight = [ + ["#292d3e", "#292d3e"], # bg + ["#d0d0d0", "#d0d0d0"], # fg + ["#434758", "#434758"], # color01 + ["#f07178", "#f07178"], # color02 + ["#c3e88d", "#c3e88d"], # color03 + ["#ffcb6b", "#ffcb6b"], # color04 + ["#82aaff", "#82aaff"], # color05 + ["#c792ea", "#c792ea"], # color06 + ["#89ddff", "#89ddff"] # color15 + ] + +SolarizedDark = [ + ["#002b36", "#002b36"], # bg + ["#839496", "#839496"], # fg + ["#073642", "#073642"], # color01 + ["#dc322f", "#dc322f"], # color02 + ["#859900", "#859900"], # color03 + ["#b58900", "#b58900"], # color04 + ["#268bd2", "#268bd2"], # color05 + ["#d33682", "#d33682"], # color06 + ["#2aa198", "#2aa198"] # color15 + ] + +SolarizedLight = [ + ["#fdf6e3", "#fdf6e3"], # bg + ["#657b83", "#657b83"], # fg + ["#ece5ac", "#ece5ac"], # color01 + ["#dc322f", "#dc322f"], # color02 + ["#859900", "#859900"], # color03 + ["#b58900", "#b58900"], # color04 + ["#268bd2", "#268bd2"], # color05 + ["#d33682", "#d33682"], # color06 + ["#2aa198", "#2aa198"] # color15 + ] + +TomorrowNight = [ + ["#1d1f21", "#1d1f21"], # bg + ["#c5c8c6", "#c5c8c6"], # fg + ["#373b41", "#373b41"], # color01 + ["#cc6666", "#cc6666"], # color02 + ["#b5bd68", "#b5bd68"], # color03 + ["#e6c547", "#e6c547"], # color04 + ["#81a2be", "#81a2be"], # color05 + ["#b294bb", "#b294bb"], # color06 + ["#70c0ba", "#70c0ba"] # color15 + ] diff --git a/config/qtile/config.py b/config/qtile/config.py new file mode 100644 index 0000000..a7dc395 --- /dev/null +++ b/config/qtile/config.py @@ -0,0 +1,301 @@ +# Copyright (c) 2010 Aldo Cortesi +# Copyright (c) 2010, 2014 dequis +# Copyright (c) 2012 Randall Ma +# Copyright (c) 2012-2014 Tycho Andersen +# Copyright (c) 2012 Craig Barnes +# Copyright (c) 2013 horsik +# Copyright (c) 2013 Tao Sauvage +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. + +import os +import subprocess +from libqtile import bar, extension, hook, layout, qtile, widget +from libqtile.config import Click, Drag, Group, Key, KeyChord, Match, Screen +from libqtile.lazy import lazy +from qtile_extras import widget +from qtile_extras.widget.decorations import BorderDecoration +import colors + +mod = "mod4" +myTerm = "alacritty" +myBrowser = "firefox" + +keys = [ + Key([mod], "Return", lazy.spawn("alacritty -e zsh"), desc="Terminal"), + Key([mod, "shift"], "Return", lazy.spawn("rofi -show drun"), desc='Run Launcher'), + Key([mod], "b", lazy.spawn(myBrowser), desc='Web browser'), + Key([mod], "Tab", lazy.next_layout(), desc="Toggle between layouts"), + Key([mod, "shift"], "c", lazy.window.kill(), desc="Kill focused window"), + Key([mod, "shift"], "r", lazy.reload_config(), desc="Reload the config"), + Key([mod, "shift"], "q", lazy.spawn("qtile cmd-obj -o cmd -f shutdown"), desc="Logout"), + Key([mod], "r", lazy.spawncmd(), desc="Spawn a command using a prompt widget") +] + +groups = [] +group_names = ["1", "2", "3", "4", "5", "6", "7"] +group_labels = ["DEV", "WWW", "SYS", "DOC", "CHAT", "MUS", "VID"] + +group_layouts = ["monadtall", "monadtall", "monadtall", "monadtall", "monadtall", "monadtall", "monadtall"] + +for i in range(len(group_names)): + groups.append( + Group( + name=group_names[i], + layout=group_layouts[i].lower(), + label=group_labels[i], + )) + +for i in groups: + keys.extend( + [ + Key( + [mod], + i.name, + lazy.group[i.name].toscreen(), + desc="Switch to group {}".format(i.name), + ), + Key( + [mod, "shift"], + i.name, + lazy.window.togroup(i.name, switch_group=False), + desc="Move focused window to group {}".format(i.name), + ), + ] + ) + +colors = colors.DoomOne + +layout_theme = {"border_width": 2, + "margin": 8, + "border_focus": colors[8], + "border_normal": colors[0] + } + +layouts = [ + layout.MonadTall(**layout_theme), + layout.Max( + border_width = 0, + margin = 0, + ), +] + +widget_defaults = dict( + font="Ubuntu Bold", + fontsize = 12, + padding = 0, + background=colors[0] +) + +extension_defaults = widget_defaults.copy() + +def init_widgets_list(): + widgets_list = [ + widget.Image( + filename = "~/.config/qtile/icons/python.png", + scale = "False", + mouse_callbacks = {'Button1': lambda: qtile.cmd_spawn(myTerm)}, + ), + widget.Prompt( + font = "Ubuntu Mono", + fontsize=14, + foreground = colors[1] + ), + widget.GroupBox( + fontsize = 11, + margin_y = 5, + margin_x = 5, + padding_y = 0, + padding_x = 1, + borderwidth = 3, + active = colors[8], + inactive = colors[1], + rounded = False, + highlight_color = colors[2], + highlight_method = "line", + this_current_screen_border = colors[7], + this_screen_border = colors [4], + other_current_screen_border = colors[7], + other_screen_border = colors[4], + ), + widget.TextBox( + text = '|', + font = "Ubuntu Mono", + foreground = colors[1], + padding = 2, + fontsize = 14 + ), + widget.CurrentLayoutIcon( + foreground = colors[1], + padding = 4, + scale = 0.6 + ), + widget.CurrentLayout( + foreground = colors[1], + padding = 5 + ), + widget.TextBox( + text = '|', + font = "Ubuntu Mono", + foreground = colors[1], + padding = 2, + fontsize = 14 + ), + widget.WindowName( + foreground = colors[6], + max_chars = 40 + ), + widget.GenPollText( + update_interval = 300, + func = lambda: subprocess.check_output("printf $(uname -r)", shell=True, text=True), + foreground = colors[3], + fmt = '{}', + decorations=[ + BorderDecoration( + colour = colors[3], + border_width = [0, 0, 2, 0], + ) + ], + ), + widget.Spacer(length = 8), + widget.CPU( + format = 'Cpu: {load_percent}%', + foreground = colors[4], + decorations=[ + BorderDecoration( + colour = colors[4], + border_width = [0, 0, 2, 0], + ) + ], + ), + widget.Spacer(length = 8), + widget.Memory( + foreground = colors[8], + mouse_callbacks = {'Button1': lambda: qtile.cmd_spawn(myTerm + ' -e htop')}, + format = '{MemUsed: .0f}{mm}', + fmt = 'Mem: {} used', + decorations=[ + BorderDecoration( + colour = colors[8], + border_width = [0, 0, 2, 0], + ) + ], + ), + widget.Spacer(length = 8), + widget.DF( + update_interval = 60, + foreground = colors[5], + mouse_callbacks = {'Button1': lambda: qtile.cmd_spawn(myTerm + ' -e df')}, + partition = '/', + format = '{uf}{m} free', + fmt = 'Disk: {}', + visible_on_warn = False, + decorations=[ + BorderDecoration( + colour = colors[5], + border_width = [0, 0, 2, 0], + ) + ], + ), + widget.Spacer(length = 8), + widget.KeyboardLayout( + foreground = colors[4], + fmt = 'Kbd: {}', + decorations=[ + BorderDecoration( + colour = colors[4], + border_width = [0, 0, 2, 0], + ) + ], + ), + widget.Spacer(length = 8), + widget.Clock( + foreground = colors[8], + format = "%a, %b %d - %H:%M:%S", + decorations=[ + BorderDecoration( + colour = colors[8], + border_width = [0, 0, 2, 0], + ) + ], + ), + widget.Spacer(length = 8), + widget.Systray(padding = 3), + widget.Spacer(length = 8), + + ] + return widgets_list + +def init_widgets_screen1(): + widgets_screen1 = init_widgets_list() + return widgets_screen1 + +def init_screens(): + return [Screen(top=bar.Bar(widgets=init_widgets_screen1(), size=34))] + +if __name__ in ["config", "__main__"]: + screens = init_screens() + widgets_list = init_widgets_list() + +def window_to_prev_group(qtile): + if qtile.currentWindow is not None: + i = qtile.groups.index(qtile.currentGroup) + qtile.currentWindow.togroup(qtile.groups[i - 1].name) + +def window_to_next_group(qtile): + if qtile.currentWindow is not None: + i = qtile.groups.index(qtile.currentGroup) + qtile.currentWindow.togroup(qtile.groups[i + 1].name) + +mouse = [ + Drag([mod], "Button1", lazy.window.set_position_floating(), start=lazy.window.get_position()), + Drag([mod], "Button3", lazy.window.set_size_floating(), start=lazy.window.get_size()), + Click([mod], "Button2", lazy.window.bring_to_front()), +] + +dgroups_key_binder = None +dgroups_app_rules = [] # type: list +follow_mouse_focus = True +bring_front_click = False +cursor_warp = False +auto_fullscreen = True +focus_on_window_activation = "smart" +reconfigure_screens = True + +# If things like steam games want to auto-minimize themselves when losing +# focus, should we respect this or not? +auto_minimize = True + +# When using the Wayland backend, this can be used to configure input devices. +wl_input_rules = None + +@hook.subscribe.startup_once +def start_once(): + home = os.path.expanduser('~') + subprocess.call([home + '/.config/qtile/autostart.sh']) + +# XXX: Gasp! We're lying here. In fact, nobody really uses or cares about this +# string besides java UI toolkits; you can see several discussions on the +# mailing lists, GitHub issues, and other WM documentation that suggest setting +# this string if your java app doesn't work correctly. We may as well just lie +# and say that we're a working one by default. +# +# We choose LG3D to maximize irony: it is a 3D non-reparenting WM written in +# java that happens to be on java's whitelist. +wmname = "LG3D" diff --git a/config/qtile/icons/python-white.png b/config/qtile/icons/python-white.png new file mode 100644 index 0000000..2495e43 Binary files /dev/null and b/config/qtile/icons/python-white.png differ diff --git a/config/qtile/icons/python.png b/config/qtile/icons/python.png new file mode 100644 index 0000000..bd02fea Binary files /dev/null and b/config/qtile/icons/python.png differ diff --git a/config/rofi/config.rasi b/config/rofi/config.rasi new file mode 100644 index 0000000..4f3d285 --- /dev/null +++ b/config/rofi/config.rasi @@ -0,0 +1,7 @@ +configuration { + modi: "window,drun,ssh,combi"; + font: "hack 10"; + combi-modi: "window,drun,ssh"; + } +@theme "~/.config/rofi/themes/dtos-center.rasi" + diff --git a/config/rofi/themes/dtos-center-new.rasi b/config/rofi/themes/dtos-center-new.rasi new file mode 100644 index 0000000..6f216a3 --- /dev/null +++ b/config/rofi/themes/dtos-center-new.rasi @@ -0,0 +1,110 @@ +* { + font: "Roboto 10"; + + bg0 : #1f1f1fff; + bg1 : #202020ff; + bg2 : #2c2c2c; + bg3 : #393939ff; + fg0 : #ffffff; + fg1 : #cecece; + accent : #60cdff; + urgent : @accent; + + background-color : transparent; + text-color : @fg0; + + margin : 0; + padding : 0; + spacing : 0; +} + +element-icon, element-text, scrollbar { + cursor: pointer; +} + +window { + location : center; + width : 680px; + height : 520px; + y-offset : -4px; + + background-color : @bg1; + border-radius : 6px; + border : 2px; + border-color : #000000; +} + +mainbox { + padding : 16px 28px; + spacing : 24px; +} + +inputbar { + padding : 8px; + spacing : 8px; + children : [ icon-search, entry ]; + border : 0 0 2px 0 solid; + border-color : @accent; + border-radius : 2px; + background-color : @bg0; +} + +icon-search, entry, element-icon, element-text { + vertical-align: 0.5; +} + +icon-search { + expand : false; + filename : "search-symbolic"; + size : 24px; +} + +entry { + font : "Roboto 12"; + placeholder : "Type here to search"; + placeholder-color : @fg1; +} + +textbox { + padding : 4px 8px; + background-color : @bg2; +} + +listview { + columns : 6; + spacing : 8px; + fixed-height : true; + fixed-columns : true; +} + +element { + orientation : vertical; + spacing : 4px; + padding : 8px; + border-radius : 2px; +} + +element normal urgent { + text-color: @urgent; +} + +element normal active { + text-color: @accent; +} + +element selected { + background-color: @bg3; +} + +element selected urgent { + background-color: @urgent; +} + +element-icon { + size: 2em; +} + +element-text { + text-color : inherit; + horizontal-align : 0.5; +} diff --git a/config/rofi/themes/dtos-center.rasi b/config/rofi/themes/dtos-center.rasi new file mode 100644 index 0000000..b7abdd6 --- /dev/null +++ b/config/rofi/themes/dtos-center.rasi @@ -0,0 +1,99 @@ +/** + * ROFI Color theme + * NAME: dt-center.rasi + * DESCRIPTION: This is a centered prompt. + * AUTHOR: Derek Taylor (DT) + */ + +* { + background-color: #282c34; + border-color: #51afef; + text-color: #bbc2cf; + font: "Ubuntu Mono 11"; + prompt-font: "Ubuntu Bold 10"; + prompt-background: #51afef; + prompt-foreground: #282c34; + prompt-padding: 4px; + alternate-normal-background: #1c1f24; + alternate-normal-foreground: @text-color; + selected-normal-background: #ae3f3e; + selected-normal-foreground: #ffffff; + spacing: 3; +} +#window { + border: 2; + padding: 5; +} +#mainbox { + border: 0; + padding: 0; +} +#message { + border: 1px dash 0px 0px ; + padding: 1px ; +} +#listview { + fixed-height: 0; + border: 2px solid 0px 0px ; + border-color: #1c1f24; + spacing: 2px ; + scrollbar: true; + padding: 2px 0px 0px ; +} +#element { + border: 0; + padding: 1px ; +} +#element.selected.normal { + background-color: @selected-normal-background; + text-color: @selected-normal-foreground; +} +#element.alternate.normal { + background-color: @alternate-normal-background; + text-color: @alternate-normal-foreground; +} +#scrollbar { + width: 0px ; + border: 0; + handle-width: 0px ; + padding: 0; +} +#sidebar { + border: 2px dash 0px 0px ; +} +#button.selected { + background-color: @selected-normal-background; + text-color: @selected-normal-foreground; +} +#inputbar { + spacing: 0; + padding: 1px ; +} +#case-indicator { + spacing: 0; +} +#entry { + padding: 4px 4px; + expand: false; + width: 10em; +} +#prompt { + padding: @prompt-padding; + background-color: @prompt-background; + text-color: @prompt-foreground; + font: @prompt-font; + border-radius: 2px; +} + +element-text { + background-color: inherit; + text-color: inherit; +} + +/* Not actually relevant for this configuration, but it might +be useful to someone having issues with their icons' background color + +element-icon { + background-color: inherit; +} +*/ diff --git a/config/rofi/themes/dtos-dmenu.rasi b/config/rofi/themes/dtos-dmenu.rasi new file mode 100644 index 0000000..c30ed75 --- /dev/null +++ b/config/rofi/themes/dtos-dmenu.rasi @@ -0,0 +1,66 @@ +/** + * ROFI Color theme + * NAME: dt-dmenu.rasi + * DESCRIPTION: This is a horizontal prompt similar to dmenu. + * AUTHOR: Derek Taylor (DT) + */ + +* { + background-color: #282c34; + border-color: #282c34; + text-color: #bbc2cf; + height: 20px; + font: "SauceCodePro Nerd Font Mono 9"; + prompt-font: "Ubuntu Bold 9"; + prompt-background: #51afef; + prompt-foreground: #282c34; + prompt-padding: 2px; + selected-normal-background: #ae3f3e; + selected-normal-foreground: #ffffff; +} +#window { + anchor: north; + location: north; + width: 100%; + padding: 0px; + children: [ horibox ]; +} +#horibox { + orientation: horizontal; + children: [ prompt, entry, listview ]; +} +#prompt { + padding: @prompt-padding; + background-color: @prompt-background; + text-color: @prompt-foreground; + font: @prompt-font; +} +#listview { + layout: horizontal; + lines: 100; +} +#entry { + padding: 2px; + expand: false; + width: 10em; +} +#element { + padding: 2px 8px; +} +#element selected { + background-color: @selected-normal-background; + text-color: @selected-normal-foreground; +} + +element-text { + background-color: inherit; + text-color: inherit; +} + +/* Not actually relevant for this configuration, but it might +be useful to someone having issues with their icons' background color + +element-icon { + background-color: inherit; +} +*/ diff --git a/config/starship.toml b/config/starship.toml new file mode 100644 index 0000000..2513f06 --- /dev/null +++ b/config/starship.toml @@ -0,0 +1,153 @@ +#format = """ +#[╭─user───❯](bold blue) $username +#[┣─system─❯](bold yellow) $hostname +#[┣─project❯](bold red) $directory$rust$git_branch$git_state$git_status$package$golang$terraform$docker_context$python$docker_context$nodejs +#[╰─cmd────❯](bold green) +#""" +[username] +style_user = "green bold" +style_root = "red bold" +format = "[$user]($style) " +disabled = false +show_always = true + +[hostname] +ssh_only = false +format = 'on [$hostname](bold purple) ' +trim_at = "." +disabled = false + +# Replace the "❯" symbol in the prompt with "➜" +[character] # The name of the module we are configuring is "character" +success_symbol = "[➜](bold green)" # The "success_symbol" segment is being set to "➜" with the color "bold green" +error_symbol = "[✗](bold red)" + +#   +# configure directory +[directory] +read_only = " " +truncation_length = 10 +truncate_to_repo = true # truncates directory to root folder if in github repo +style = "bold italic blue" + +[cmd_duration] +min_time = 4 +show_milliseconds = false +disabled = false +style = "bold italic red" + +[aws] +symbol = " " + +[conda] +symbol = " " + +[dart] +symbol = " " + +#[directory] +#read_only = " " + +[docker_context] +symbol = " " +format = "via [$symbol$context]($style) " +style = "blue bold" +only_with_files = true +detect_files = ["docker-compose.yml", "docker-compose.yaml", "Dockerfile"] +detect_folders = [] +disabled = false + +[elixir] +symbol = " " + +[elm] +symbol = " " + +[git_branch] +symbol = " " + +[git_status] +format = '([\[$all_status$ahead_behind\]]($style) )' +stashed = "[${count}*](green)" +modified = "[${count}+](yellow)" +deleted = "[${count}-](red)" +conflicted = "[${count}~](red)" +ahead = "⇡${count}" +behind = "⇣${count}" +untracked = "[${count}?](blue)" +staged = "[${count}+](green)" + +[git_state] +style = "bold red" +format = "[$state( $progress_current/$progress_total) ]($style)" +rebase = "rebase" +merge = "merge" +revert = "revert" +cherry_pick = "cherry" +bisect = "bisect" +am = "am" +am_or_rebase = "am/rebase" + +[golang] +symbol = " " + +[hg_branch] +symbol = " " + +[java] +symbol = " " + +[julia] +symbol = " " + +[haskell] +symbol = "λ " + +[memory_usage] +symbol = " " + +[nim] +symbol = " " + +[nix_shell] +symbol = " " + +[package] +symbol = " " + +[perl] +symbol = " " + +[php] +symbol = " " + +[python] +symbol = "🐍 " +#pyenv_version_name = true +format = 'via [${symbol}python (${version} )(\($virtualenv\) )]($style)' +style = "bold yellow" +pyenv_prefix = "venv " +python_binary = ["./venv/bin/python", "python", "python3", "python2"] +detect_extensions = ["py"] +version_format = "v${raw}" + +[ruby] +symbol = " " + +[rust] +symbol = " " + +[scala] +symbol = " " + +[shlvl] +symbol = " " + +[swift] +symbol = "ﯣ " + +[nodejs] +format = "via [ Node.js $version](bold green) " +detect_files = ["package.json", ".node-version"] +detect_folders = ["node_modules"] + diff --git a/vimrc b/vimrc deleted file mode 100755 index 313ba51..0000000 --- a/vimrc +++ /dev/null @@ -1,9 +0,0 @@ -" Source all settings -if filereadable(glob("~/.vim/vimrc.local")) - source ~/.vim/vimrc.local -endif - -" Invert paste when \p or is pressed -:nnoremap p :set invpaste -:nnoremap :set invpaste -:set number diff --git a/zshrc b/zshrc old mode 100644 new mode 100755 index e769752..9f72fe8 --- a/zshrc +++ b/zshrc @@ -1,42 +1,34 @@ -#ZSH Variables -ZSH_THEME="agnoster" -CASE_SENSITIVE="true" -ENABLE_CORRECTION="false" -COMPLETION_WAITING_DOTS="true" -zstyle ':omz:update' mode auto -zstyle ':omz:update' frequency 14 -HIST_STAMPS="%d/%m/%y %T" - -export ZSH="/home/nlazarov/.oh-my-zsh" -export ZSH_CUSTOM="/home/nlazarov/git/zsh" -source $ZSH/oh-my-zsh.sh - -plugins=( - colored-man-pages - zsh-syntax-highlighting - zsh-autosuggestions - git - aws - docker - docker-compose - kubectl - git-flow -) - -#General +#Export basic stuff +export TERM="xterm-256color" +export HISTORY_IGNORE="(ls|cd|pwd|exit|sudo reboot|history|cd -|cd ..)" export EDITOR="nvim" -export KUBE_EDITOR=nvim +export VISUAL="nvim" export MANPAGER='nvim +Man!' export MANWIDTH=999 export HISTCONTROL=ignoredups:erasedups -export HISTSIZE=10000 +export HISTSIZE=20000 + +#Export language variables export LANG="en_US.UTF-8" export LC_MESSAGES="en_US.UTF-8" export LC_CTYPE="en_US.UTF-8" export LC_ALL="en_US.UTF-8" + +#Export General +export KUBE_EDITOR=nvim export DOTNET_CLI_TELEMETRY_OPTOUT="1" +#Aliases alias vim='nvim' +alias ls='eza -al --color=always --group-directories-first' # basic +alias la='eza -a --color=always --group-directories-first' # all files and dirs +alias ll='eza -l --color=always --group-directories-first' # long format +alias lt='eza -aT --color=always --group-directories-first' # tree listing +alias pacue='sudo pacman -Syyu' # Refresh pkglist & update standard pkgs +alias parue='paru -Sua --noconfirm' # update only AUR pkgs (paru) +alias orphan='sudo pacman -Rns $(pacman -Qtdq)' # remove orphaned packages +alias mirror="sudo reflector -f 30 -l 30 --number 10 --verbose --save /etc/pacman.d/mirrorlist" # get fastest mirror +alias jctl="journalctl -p 3 -xb" # get error messages from journalctl #PATH if [ -d "$HOME/bin" ] ; @@ -47,31 +39,4 @@ if [ -d "$HOME/.local/bin" ] ; then PATH="$HOME/.local/bin:$PATH" fi -if [ -d "$HOME/tools/node/bin" ] ; - then PATH="$HOME/tools/node/bin:$PATH" -fi - -ex () { - if [ -f $1 ] ; then - case $1 in - *.tar.bz2) tar xjf $1 ;; - *.tar.gz) tar xzf $1 ;; - *.bz2) bunzip2 $1 ;; - *.rar) unrar x $1 ;; - *.gz) gunzip $1 ;; - *.tar) tar xf $1 ;; - *.tbz2) tar xjf $1 ;; - *.tgz) tar xzf $1 ;; - *.zip) unzip $1 ;; - *.Z) uncompress $1;; - *.7z) 7z x $1 ;; - *.deb) ar x $1 ;; - *.tar.xz) tar xf $1 ;; - *.tar.zst) unzstd $1 ;; - *) echo "'$1' cannot be extracted via ex()" ;; - esac - else - echo "'$1' is not a valid file" - fi -} - +eval "$(starship init zsh)" diff --git a/zshrc_mac b/zshrc_mac deleted file mode 100755 index 81c48dd..0000000 --- a/zshrc_mac +++ /dev/null @@ -1,79 +0,0 @@ -#ZSH Variables -ZSH_THEME="agnoster" -CASE_SENSITIVE="true" -ENABLE_CORRECTION="false" -COMPLETION_WAITING_DOTS="true" -zstyle ':omz:update' mode auto -zstyle ':omz:update' frequency 14 -HIST_STAMPS="%d/%m/%y %T" - -export ZSH="/Users/nikolay.lazarov/.oh-my-zsh" -source $ZSH/oh-my-zsh.sh -source /opt/homebrew/share/zsh-syntax-highlighting/zsh-syntax-highlighting.zsh -source /opt/homebrew/share/zsh-autosuggestions/zsh-autosuggestions.zsh -export ZSH_HIGHLIGHT_HIGHLIGHTERS_DIR=/opt/homebrew/share/zsh-syntax-highlighting/highlighters - -plugins=( - colored-man-pages - zsh-syntax-highlighting - zsh-autosuggestions - git - aws - docker - docker-compose - kubectl - git-flow -) - -#General -export EDITOR="nvim" -export KUBE_EDITOR=nvim -export MANPAGER='nvim +Man!' -export MANWIDTH=999 -export HISTCONTROL=ignoredups:erasedups -export HISTSIZE=10000 -export LANG="en_US.UTF-8" -export LC_MESSAGES="en_US.UTF-8" -export LC_CTYPE="en_US.UTF-8" -export LC_ALL="en_US.UTF-8" -export DOTNET_CLI_TELEMETRY_OPTOUT="1" - -alias vim='nvim' - -#PATH -if [ -d "$HOME/bin" ] ; - then PATH="$HOME/bin:$PATH" -fi - -if [ -d "$HOME/.local/bin" ] ; - then PATH="$HOME/.local/bin:$PATH" -fi - -if [ -d "$HOME/tools/node/bin" ] ; - then PATH="$HOME/tools/node/bin:$PATH" -fi - -ex () { - if [ -f $1 ] ; then - case $1 in - *.tar.bz2) tar xjf $1 ;; - *.tar.gz) tar xzf $1 ;; - *.bz2) bunzip2 $1 ;; - *.rar) unrar x $1 ;; - *.gz) gunzip $1 ;; - *.tar) tar xf $1 ;; - *.tbz2) tar xjf $1 ;; - *.tgz) tar xzf $1 ;; - *.zip) unzip $1 ;; - *.Z) uncompress $1;; - *.7z) 7z x $1 ;; - *.deb) ar x $1 ;; - *.tar.xz) tar xf $1 ;; - *.tar.zst) unzstd $1 ;; - *) echo "'$1' cannot be extracted via ex()" ;; - esac - else - echo "'$1' is not a valid file" - fi -} -