diff --git a/.bash_profile b/.bash_profile
index 9ec639b..94d4e80 100644
--- a/.bash_profile
+++ b/.bash_profile
@@ -4,9 +4,7 @@
[[ -f ~/.bashrc ]] && . ~/.bashrc
-# if [ -z "${DISPLAY}" ] && [ "${XDG_VTNR}" -eq 1 ]; then
-if [ -z "${DISPLAY}" ] && [ "${XDG_VTNR}" == 1 ]; then
+#if [ -z "${DISPLAY}"] && [ "${XDG_VTNR}" == 1 ]; then
+if [[ ! $DISPLAY && $XDG_VTNR -eq 1 ]]; then
exec startx
- exec picom -b
fi
-
diff --git a/.bashrc b/.bashrc
index a28ad79..019a2d6 100644
--- a/.bashrc
+++ b/.bashrc
@@ -2,6 +2,9 @@
# ~/.bashrc
#
+export PYTHONPATH=~/Documents/Course-Material/module-o/book/src
+export MANPAGER="sh -c 'col -bx | bat -l man -p'"
+
# If not running interactively, don't do anything
[[ $- != *i* ]] && return
@@ -17,12 +20,26 @@ alias config='git --git-dir=$HOME/config-files/ --work-tree=$HOME'
# aliases
alias ..='cd ..'
+alias vi='vim'
+alias ip='ip -color=auto'
+# vi key bindings
+set -o vi
PS1='[\u@\h \W]\$ '
# starship prompt
eval "$(starship init bash)"
-# colorscript
-colorscript random
+colorscript -e roshar
+
+case ${TERM} in
+
+ xterm*|rxvt*|alacritty*|Eterm|aterm|kterm|gnome*)
+ PROMPT_COMMAND=${PROMPT_COMMAND:+$PROMPT_COMMAND; }'printf "\033]0;%s@%s:%s\007" "${USER}" "${HOSTNAME%%.*}" "${PWD/#$HOME/\~}"'
+
+ ;;
+ screen*)
+ PROMPT_COMMAND=${PROMPT_COMMAND:+$PROMPT_COMMAND; }'printf "\033_%s@%s:%s\033\\" "${USER}" "${HOSTNAME%%.*}" "${PWD/#$HOME/\~}"'
+ ;;
+esac
diff --git a/.config/alacritty/alacritty.yml b/.config/alacritty/alacritty.yml
index b4869d1..74d5eed 100644
--- a/.config/alacritty/alacritty.yml
+++ b/.config/alacritty/alacritty.yml
@@ -7,9 +7,22 @@
# License: MIT
# References:
# https://github.com/alacritty/alacritty
-window:
- opacity: .80
+key_bindings:
+ - { key: Return, mods: Control|Shift, action: SpawnNewInstance }
+
+dynamic_title: true
+
+window:
+ opacity: .95
+
+font:
+ normal:
+ family: "Hack Nerd Font Mono"
+ bold:
+ family: "Hack Nerd Font Mono"
+ italic:
+ family: "Hack Nerd Font Mono"
colors:
primary:
diff --git a/.config/fish/abbreviations.fish b/.config/fish/abbreviations.fish
new file mode 100644
index 0000000..0d572f9
--- /dev/null
+++ b/.config/fish/abbreviations.fish
@@ -0,0 +1,11 @@
+abbr ls 'exa --color=auto'
+abbr sl 'exa --color=auto'
+abbr ll 'exa -la --color=auto'
+abbr ip 'ip --color=auto'
+
+abbr gs 'git status'
+abbr gcm 'git commit -m'
+abbr config 'git --git-dir=$HOME/config-files/ --work-tree=$HOME'
+
+abbr .. 'cd ..'
+abbr vi 'vim'
diff --git a/.config/fish/config.fish b/.config/fish/config.fish
index 16f201c..87ce294 100644
--- a/.config/fish/config.fish
+++ b/.config/fish/config.fish
@@ -1,5 +1,14 @@
+set --export EDITOR "vim"
+set --export PF_INFO "ascii title os host kernel uptime pkgs memory wm shell editor palette"
+
if status is-interactive
# Commands to run in interactive sessions can go here
end
+fish_add_path "$HOME/.local/bin"
+export PYTHONPATH="$HOME/Documents/Course-Material/module-o/book/src"
+export MANPAGER="sh -c 'col -bx | bat -l man -p'"
+
+source "$HOME/.config/fish/abbreviations.fish"
+
starship init fish | source
diff --git a/.config/neofetch/config.conf b/.config/neofetch/config.conf
index cada780..e564d7f 100644
--- a/.config/neofetch/config.conf
+++ b/.config/neofetch/config.conf
@@ -14,8 +14,8 @@ print_info() {
info "DE" de
info "WM" wm
info "WM Theme" wm_theme
- info "Theme" theme
- info "Icons" icons
+ # info "Theme" theme
+ # info "Icons" icons
info "Terminal" term
info "Terminal Font" term_font
info "CPU" cpu
@@ -24,7 +24,7 @@ print_info() {
# info "GPU Driver" gpu_driver # Linux/macOS only
# info "CPU Usage" cpu_usage
- # info "Disk" disk
+ info "Disk" disk
# info "Battery" battery
# info "Font" font
# info "Song" song
@@ -116,7 +116,7 @@ uptime_shorthand="on"
# Example:
# on: '1801MiB / 7881MiB (22%)'
# off: '1801MiB / 7881MiB'
-memory_percent="off"
+memory_percent="on"
# Change memory output unit.
#
@@ -249,7 +249,7 @@ cpu_cores="logical"
# C: 'Intel i7-6500U (4) @ 3.1GHz [27.2°C]'
# F: 'Intel i7-6500U (4) @ 3.1GHz [82.0°F]'
# off: 'Intel i7-6500U (4) @ 3.1GHz'
-cpu_temp="C"
+cpu_temp="on"
# GPU
@@ -387,7 +387,7 @@ de_version="on"
# disk_show=('/'):
# 'Disk (/): 74G / 118G (66%)'
#
-disk_show=('/')
+disk_show=('/' '/home')
# Disk subtitle.
# What to append to the Disk subtitle.
diff --git a/pkg.list b/.config/pkg.list
similarity index 98%
rename from pkg.list
rename to .config/pkg.list
index 919e348..5b01e96 100644
--- a/pkg.list
+++ b/.config/pkg.list
@@ -107,7 +107,6 @@ xorgxrdp-glamor 0.2.18-1
xrdp 0.9.19-2
xsel 1.2.0.20200527-2
yasm 1.3.0-5
-yay 11.3.1-1
zip 3.0-10
zsh 5.9-1
nerd-fonts-git 1:2.3.0.RC.r58.g498ebf372-1
@@ -117,4 +116,3 @@ shell-color-scripts 1.1.r105.ae5a9c8-1
spotify-tui 0.25.0-2
xorgxrdp-glamor 0.2.18-1
xrdp 0.9.19-2
-yay 11.3.1-1
diff --git a/.config/qtile/background.jpg b/.config/qtile/background.jpg
index 8d79915..1bbc3d6 100644
Binary files a/.config/qtile/background.jpg and b/.config/qtile/background.jpg differ
diff --git a/.config/qtile/config.py b/.config/qtile/config.py
index c1c1bf1..9c7c81b 100644
--- a/.config/qtile/config.py
+++ b/.config/qtile/config.py
@@ -24,24 +24,44 @@
# SOFTWARE.
from libqtile import bar, layout, widget, extension
-from libqtile.config import Click, Drag, Group, Key, Match, Screen
+from libqtile.config import Click, Drag, Group, Key, KeyChord, Match, Screen, ScratchPad, DropDown
+from libqtile.scripts.main import VERSION
from libqtile.lazy import lazy
-from libqtile.utils import guess_terminal
-from unicodes import left_arrow, right_arrow, right_half_circle, lower_left_triangle
-mod = "mod4"
-terminal = guess_terminal()
-colors = {
- 'purple':'52497e',
- 'teal':'559d92',
- 'dark_orange':'9d6e55',
- 'orange':'e7510b',
- 'dark_red':'9d5560',
- 'dark_blue':'2e3440',
- 'blue':'8fbcbb',
- 'red':'bf616a',
- }
+from subprocess import run
+mod = 'mod4'
+terminal = 'alacritty'
+opaque_config = '--config-file /home/roland/.config/alacritty/alacritty-opaque.yml'
+terminal_opaque = f'alacritty {opaque_config}'
+qtile_config = f'alacritty {opaque_config} -e vim /home/roland/.config/qtile/config.py'
+ipython = f'alacritty {opaque_config} -e ipython'
+python = f'alacritty {opaque_config} -e python'
+vpn_vta = 'alacritty -e /home/roland/.local/bin/vpn'
+rdp = 'alacritty -e /home/roland/.local/bin/bjendal'
+rofi = 'rofi -combi-modi window,drun,ssh -theme nord -font "hack 10" -show drun -icon-theme "Papirus" -show-icons'
+qtile_dir = '/home/roland/.config/qtile/'
+
+flameshot = '#8800aa'
+nord = {
+ 'nord0':'#2E3440',
+ 'nord1':'#3B4252',
+ 'nord2':'#434C5E',
+ 'nord3':'#4C566A',
+ 'nord4':'#D8DEE9',
+ 'nord5':'#E5E9F0',
+ 'nord6':'#ECEFF4',
+ 'nord7':'#8FBCBB',
+ 'nord8':'#88C0D0',
+ 'nord9':'#81A1C1',
+ 'nord10':'#5E81AC',
+ 'nord11':'#BF616A',
+ 'nord12':'#D08770',
+ 'nord13':'#EBCB8B',
+ 'nord14':'#A3BE8C',
+ 'nord15':'#B48EAD',
+ }
+# Keys
keys = [
# A list of available commands that can be bound to keys can be found
# at https://docs.qtile.org/en/latest/manual/config/lazy.html
@@ -57,6 +77,7 @@ keys = [
Key([mod, "shift"], "l", lazy.layout.shuffle_right(), desc="Move window to the right"),
Key([mod, "shift"], "j", lazy.layout.shuffle_down(), desc="Move window down"),
Key([mod, "shift"], "k", lazy.layout.shuffle_up(), desc="Move window up"),
+ Key([mod, "shift"], "space", lazy.layout.flip()),
# Grow windows. If current window is on the edge of screen and direction
# will be to screen edge - window would shrink.
Key([mod, "control"], "h", lazy.layout.grow_left(), desc="Grow window to the left"),
@@ -68,26 +89,87 @@ keys = [
# Split = all windows displayed
# Unsplit = 1 window displayed, like Max layout, but still with
# multiple stack panes
- Key(
- [mod, "shift"],
- "Return",
- lazy.layout.toggle_split(),
- desc="Toggle between split and unsplit sides of stack",
- ),
+ #Key(
+ #[mod, "shift"],
+ #"Return",
+ #lazy.layout.toggle_split(),
+ #desc="Toggle between split and unsplit sides of stack",
+ #),
Key([mod], "Return", lazy.spawn(terminal), desc="Launch terminal"),
# Toggle between different layouts as defined below
Key([mod], "Tab", lazy.next_layout(), desc="Toggle between layouts"),
Key([mod], "w", lazy.window.kill(), desc="Kill focused window"),
Key([mod, "control"], "r", lazy.reload_config(), desc="Reload the config"),
Key([mod, "control"], "q", lazy.shutdown(), desc="Shutdown Qtile"),
- Key([mod, "control"], "s", lazy.hide_show_bar()),
- # Key([mod], "r", lazy.spawncmd(), desc="Spawn a command using a prompt widget"),
- Key([mod], "r", lazy.run_extension(extension.DmenuRun(
- dmenu_prompt = ">",
- )))
+ Key([mod], "r", lazy.spawn(rofi), desc="Launch rofi"),
+ Key([mod], "z", lazy.run_extension(extension.WindowList()), desc="Launch window list"),
+ # LAUNCH chord
+ KeyChord([mod], "e", [
+ Key([], "e", lazy.group['scratchpad'].dropdown_toggle('term'), desc="Launch Scratchpad Terminal"),
+ Key([], "i", lazy.group['scratchpad'].dropdown_toggle('ipython'), desc="Launch IPython"),
+ Key([], "p", lazy.group['scratchpad'].dropdown_toggle('python'), desc="Launch python"),
+ Key([], "q", lazy.group['scratchpad'].dropdown_toggle('qtile-config'), desc="Launch qtile config"),
+ Key([], "v", lazy.group['scratchpad'].dropdown_toggle('vpn'), desc="Launch vpn"),
+ Key([], "x", lazy.group['scratchpad'].dropdown_toggle('xrdp'), desc="Launch xrdp: bjendal"),
+ Key([], "s", lazy.spawn('passmenu'), desc="Launch pass"),
+ Key([], "r", lazy.run_extension(extension.DmenuRun(dmenu_prompt = "\uf101")), desc="Launch dmenu"),
+ # FLAMESHOT chord
+ KeyChord([], "f", [
+ Key([], "f", lazy.spawn('flameshot'), desc="Launch flameshot"),
+ Key([], "s", lazy.spawn('flameshot gui'), desc="Take screenshot"),
+ Key([], "a", lazy.spawn('flameshot full'), desc="Take screenshot"),
+ Key([], "c", lazy.spawn('flameshot full --clipboard'), desc="Take screenshot"),
+ Key([], "l", lazy.spawn('flameshot launcher'), desc="Take screenshot"),
+ ],
+ name='flameshot',
+ )
+ ],
+ #mode=True,
+ name="launch",
+ ),
+ # TOGGLE chord
+ KeyChord([mod], "d", [
+ Key([], "s", lazy.hide_show_bar(), desc="Toggle show bar"),
+ # BOXES chord
+ KeyChord([], "t", [
+ Key([], "1", lazy.widget['widget_box_1'].toggle(), desc="Toggle Widget Box 1"),
+ Key([], "2", lazy.widget['widget_box_2'].toggle(), desc="Toggle Widget Box 2"),
+ Key([], "3", lazy.widget['widget_box_3'].toggle(), desc="Toggle Widget Box 3"),
+ Key([], "t", lazy.widget['widget_box_1'].toggle(),
+ lazy.widget['widget_box_2'].toggle(),
+ lazy.widget['widget_box_3'].toggle(),
+ lazy.widget['media_box_1'].toggle(),
+ lazy.widget['media_box_2'].toggle(),
+ lazy.widget['media_box_3'].toggle(), desc="Toggle Widget Boxes"),
+ ],
+ name="boxes",
+ ),
+ ],
+ name="toggle",
+ ),
+ # MEDIA chord
+ KeyChord([mod], "s", [
+ Key([], "s", lazy.widget['spotifyd'].play_pause(), desc="Play - Pause"),
+ Key([], "h", lazy.widget['spotifyd'].previous(), desc="Previous"),
+ Key([], "l", lazy.widget['spotifyd'].next(), desc="Next"),
+ ],
+ name="media",
+ ),
+ Key([mod, "shift"], "u", lazy.group['scratchpad'].dropdown_toggle('hotkeys'), desc="Show Hot Keys"),
]
-groups = [Group(i) for i in "123456789"]
+# Groups
+groups = [Group(i) for i in "123456"]
+
+discord_match = Match(wm_class="discord")
+obsidian_match = Match(wm_class="obsidian")
+xrdp_match = Match(wm_class="xfreerdp")
+vm_match = Match(wm_class="VirtualBox Machine")
+groups.extend([Group("7", label='\ue007')])
+groups.extend([Group("8", matches=[obsidian_match], label='\ue13a')])
+groups.extend([Group("9", matches=[discord_match], label='\uf392')])
+groups.extend([Group("0", matches=[xrdp_match], label='\uf512', init=False, persist=False)])
+groups.extend([Group("o", matches=[vm_match], label='\uf511', init=False, persist=False)])
for i in groups:
keys.extend(
@@ -97,139 +179,751 @@ for i in groups:
[mod],
i.name,
lazy.group[i.name].toscreen(),
- desc="Switch to group {}".format(i.name),
+ desc=f"Switch to group {i.name}",
),
# mod1 + shift + letter of group = switch to & move focused window to group
+ #Key(
+ #[mod, "shift"],
+ #i.name,
+ #lazy.window.togroup(i.name, switch_group=True),
+ #desc=f"Switch to & move focused window to group {i.name}",
+ #),
+ # Or, use below if you prefer not to switch to that group.
+ # mod1 + shift + letter of group = move focused window to group
Key(
[mod, "shift"],
i.name,
- lazy.window.togroup(i.name, switch_group=True),
- desc="Switch to & move focused window to group {}".format(i.name),
+ lazy.window.togroup(i.name),
+ desc=f"move focused window to group {i.name}",
),
- # Or, use below if you prefer not to switch to that group.
- # # mod1 + shift + letter of group = move focused window to group
- # Key([mod, "shift"], i.name, lazy.window.togroup(i.name),
- # desc="move focused window to group {}".format(i.name)),
]
)
+def get_hot_keys():
+ mod_keys = {
+ 'mod4':'Super',
+ 'shift':'Shift',
+ 'control':'Control',
+ 'space':'Space',
+ }
+
+ hot_keys = []
+
+ for key in keys:
+ if isinstance(key, Key):
+ key_modifiers = ' + '.join([mod_keys[modifier] for modifier in key.modifiers])
+ if len(key.key) == 1:
+ hot_keys.append(f"{key_modifiers} + {key.key}: {key.desc}\n")
+ elif len(key.key) > 1:
+ hot_keys.append(f"{key_modifiers} + {key.key.title()}: {key.desc}\n")
+ for key in keys:
+ if isinstance(key, KeyChord):
+ key_modifiers = ' + '.join([mod_keys[modifier] for modifier in key.modifiers])
+ hot_keys.append(f"{key_modifiers} + {key.key}: {key.name.upper()}\n")
+ for sub in key.submappings:
+ if isinstance(sub, Key):
+ hot_keys.append(f" {sub.key}: {sub.desc}\n")
+ elif isinstance(key, KeyChord):
+ hot_keys.append(f" {sub.key}: {sub.name.upper()}\n")
+ for map in sub.submappings:
+ hot_keys.append(f" {map.key}: {map.desc}\n")
+
+ return ''.join(hot_keys)
+
+hot_key_text = get_hot_keys()
+
+hotkeys = f'yad --title "Hotkeys" --text-info --scroll --text="{hot_key_text}"'
+
+groups.extend(
+ [ScratchPad("scratchpad", [
+ DropDown(
+ "term",
+ terminal_opaque,
+ on_focus_lost_hide=False,
+ opacity=1.0,
+ height=0.5,
+ y=0.1,
+ ),
+ DropDown(
+ "ipython",
+ ipython,
+ on_focus_lost_hide=False,
+ opacity=1.0,
+ height=0.9,
+ y=0.05,
+ ),
+ DropDown(
+ "python",
+ python,
+ on_focus_lost_hide=False,
+ opacity=1.0,
+ height=0.9,
+ y=0.05,
+ ),
+ DropDown(
+ "qtile-config",
+ qtile_config,
+ on_focus_lost_hide=False,
+ opacity=1.0,
+ height=0.9,
+ y=0.05,
+ ),
+ DropDown(
+ "vpn",
+ vpn_vta,
+ on_focus_lost_hide=True,
+ opacity=1.0,
+ height=0.5,
+ y=0.1,
+ ),
+ DropDown(
+ "xrdp",
+ rdp,
+ on_focus_lost_hide=True,
+ opacity=1.0,
+ height=0.5,
+ y=0.1,
+ ),
+ DropDown(
+ "hotkeys",
+ hotkeys,
+ on_focus_lost_hide=True,
+ opacity=1.0,
+ height=0.5,
+ y=0.01,
+ ),
+ ])
+ ])
+
layouts = [
#layout.Columns(border_focus_stack=["#d75f5f", "#8f3d3d"], border_width=4),
- # Try more layouts by unleashing below layouts.
- # layout.Stack(num_stacks=2),
- # layout.Bsp(),
- # layout.Matrix(),
+ #layout.Stack(num_stacks=2),
+ #layout.Bsp(),
layout.MonadTall(
- border_focus=colors['red'],
- border_normal=colors['blue'],
- border_width=2,
+ border_focus=nord['nord11'],
+ border_normal=nord['nord10'],
+ border_width=4,
+ margin=4
+ ),
+ layout.Max(),
+ layout.MonadThreeCol(
+ main_centered=True,
+ new_client_position='after_current',
+ border_focus=nord['nord11'],
+ border_normal=nord['nord10'],
+ border_width=4,
margin=4
),
- layout.Max(),
- # layout.MonadWide(),
- # layout.RatioTile(),
- # layout.Tile(),
- # layout.TreeTab(),
- # layout.VerticalTile(),
- layout.Zoomy(),
+ #layout.MonadWide(),
+ #layout.RatioTile(),
+ #layout.Spiral(),
+ #layout.Tile(),
+ #layout.TreeTab(),
+ #layout.VerticalTile(),
+ #layout.Zoomy(),
]
widget_defaults = dict(
- #font="sans",
- font="Hack Nerd Font Mono",
- fontsize=14,
- padding=4,
+ font="FontAwesome",
+ fontsize=18,
+ padding=2,
)
extension_defaults = widget_defaults.copy()
+# Mirrored widgets
+net = widget.Net(
+ background=nord['nord10'],
+ foreground=nord['nord0'],
+ interface='net0')
+
+memory = widget.Memory(
+ background=nord['nord14'],
+ foreground=nord['nord0'])
+
+cpu = widget.CPU(
+ background=nord['nord13'],
+ foreground=nord['nord0'])
+
+cpu_thermal_sensor = widget.ThermalSensor(
+ background=nord['nord13'],
+ foreground=nord['nord0'],
+ tag_sensor='Package id 0',
+ format='{temp:.0f}{unit}')
+
+disk_free_root = widget.DF(
+ background=nord['nord12'],
+ foreground=nord['nord0'],
+ warn_space=40,
+ visible_on_warn=True)
+
+disk_free_home = widget.DF(
+ background=nord['nord12'],
+ foreground=nord['nord0'],
+ partition='/home',
+ warn_space=40,
+ visible_on_warn=True)
+
+nvme_thermal_sensor = widget.ThermalSensor(
+ background=nord['nord12'],
+ foreground=nord['nord0'],
+ tag_sensor='Composite',
+ format='NVME: {temp:.0f}{unit}')
+
+weather = widget.OpenWeather(
+ background=nord['nord15'],
+ foreground=nord['nord0'],
+ cityid='4198514',
+ app_key='*****',
+ metric=False)
+
+chord = widget.Chord(
+ chords_colors={
+ "launch": (nord['nord13'], nord['nord0']),
+ "flameshot": (nord['nord15'], nord['nord0']),
+ "toggle": (nord['nord11'], nord['nord0']),
+ "boxes": (nord['nord12'], nord['nord0']),
+ "media": (nord['nord14'], nord['nord0']),
+ },
+ name_transform=lambda name: name.upper())
+
+clock = widget.Clock(
+ background=nord['nord11'],
+ foreground=nord['nord0'],
+ padding=4,
+ format="%Y-%m-%d %a %H:%M")
+
+
+def parse_task_text(text):
+ text = text.replace(' \u2014 Mozilla Firefox','')
+ text = text.replace(' - qutebrowser','')
+ text = text.replace(' - Discord','')
+ return text
+
+
+def get_wallpaper():
+ size = run(["xdpyinfo | rg dimensions | awk '{ print $2 }'"],
+ shell=True,
+ capture_output=True,
+ encoding='utf-8')
+ size = size.stdout.strip()
+ width, height = size.split('x')
+ print(f'{size =}', type(size))
+
+ wallpaper = f'{qtile_dir}not_supported.png'
+
+ match size:
+ case '3440x1440':
+ wallpaper = f'{qtile_dir}gunter_wallpaper3440x1440_fill.png'
+ case '1920x1080':
+ wallpaper = f'{qtile_dir}gunter_throne.png'
+ case '3840x1080':
+ wallpaper = f'{qtile_dir}gunter_throne.png'
+ case '5760x1080':
+ wallpaper = f'{qtile_dir}gunter_throne.png'
+ case '1760x1262':
+ wallpaper = f'{qtile_dir}gunter_throne_1760x1262.png'
+
+ return wallpaper
+
screens = [
- Screen(
+ Screen( #Screen1
bottom=bar.Bar(
[
- #widget.CurrentLayout(
- #background=colors['dark_blue'],
- #),
- widget.GroupBox(
- background=colors['blue'],
- block_highlight_text_color=colors['red'],
- disable_drag=True,
- #this_screen_border=colors['orange'],
- this_current_screen_border=colors['dark_blue'],
- #active=colors['dark_blue'],
- ),
- #lower_left_triangle(colors['blue'], colors['dark_blue']),
- right_arrow(colors['dark_blue'], colors['blue']),
- # widget.Prompt(),
- widget.WindowName(
- background=colors['dark_blue'],
- ),
- widget.Chord(
- chords_colors={
- "launch": ("#ff0000", "#ffffff"),
- },
- name_transform=lambda name: name.upper(),
+ widget.CurrentLayoutIcon(
+ background=nord['nord10'],
+ foreground=nord['nord4'],
+ ),
+ widget.GroupBox(
+ font="Font Awesome 6 Brands",
+ background=nord['nord10'],
+ disable_drag=True,
+ block_highlight_text_color=nord['nord8'],
+ this_screen_border=nord['nord13'],
+ this_current_screen_border=nord['nord11'],
+ padding=4,
+ #margin=0,
+ ),
+ widget.Spacer(
+ background=nord['nord0'],
+ length=4,
+ ),
+ widget.WindowCount(
+ font="Font Awesome 6 Brands",
+ background=nord['nord0'],
+ foreground=nord['nord4'],
+ ),
+ widget.TaskList(
+ background=nord['nord0'],
+ foreground=nord['nord4'],
+ border=nord['nord11'],
+ highlight_method='block',
+ markup_focused='{}',
+ parse_text=parse_task_text,
+ margin=2,
+ padding=2,
+ ),
+ chord,
+ widget.Spacer(
+ background=nord['nord0'],
+ length=4,
),
- # widget.TextBox("default config", name="default"),
- # widget.TextBox("Press <M-r> to spawn", foreground="#d75f5f"),
- # NB Systray is incompatible with Wayland, consider using StatusNotifier instead
- # widget.StatusNotifier(),
widget.Systray(
- background=colors['blue'],
- ),
- widget.OpenWeather(
- background=colors['dark_blue'],
- #location='Grovetown',
- cityid='4198514',
- app_key='*****',
- metric=False,
- ),
- #widget.TextBox(
- #padding=1,
- #background=colors['dark_blue'],
- #),
- #lower_left_triangle(colors['dark_blue'], colors['blue']),
- left_arrow(colors['dark_blue'], colors['blue']),
- widget.Net(
- background=colors['blue'],
- interface='net0',
- ),
- #widget.TextBox(
- #padding=1,
- #background=colors['blue'],
- #),
- #lower_left_triangle(colors['blue'], colors['dark_blue']),
- left_arrow(colors['blue'], colors['dark_blue']),
- widget.Memory(
- background=colors['dark_blue'],
- ),
- #widget.TextBox(
- #padding=1,
- #background=colors['dark_blue'],
- #),
- #lower_left_triangle(colors['dark_blue'], colors['blue']),
- left_arrow(colors['dark_blue'], colors['blue']),
- widget.ThermalSensor(
- format='{tag}: {temp:.0f}{unit}',
- background=colors['blue'],
- ),
- #widget.TextBox(
- #padding=1,
- #background=colors['blue'],
- #),
- #lower_left_triangle(colors['blue'], colors['dark_blue']),
- left_arrow(colors['blue'], colors['dark_blue']),
- widget.Clock(
- background=colors['dark_blue'],
- format="%Y-%m-%d %a %I:%M %p"
- ),
- # widget.QuickExit(),
+ background=nord['nord0'],
+ icon_size=26,
+ padding=4,
+ ),
+ widget.Spacer(
+ background=nord['nord0'],
+ length=6,
+ ),
+ widget.WidgetBox(
+ name='media_box_1',
+ background=nord['nord0'],
+ foreground=nord['nord13'],
+ fontsize=30,
+ close_button_location='right',
+ text_closed='\uf100',
+ text_open='\uf101',
+ padding=15,
+ widgets=[
+ widget.Mpris2(
+ name='spotifyd',
+ #objname=media_player,
+ format = "{xesam:title} - ({xesam:artist})",
+ playing_text = " 契 {track}",
+ paused_text = " {track}",
+ width = 400,
+ scroll_delay = 5,
+ scroll_interval = 0.25,
+ scroll_step = 15,
+ background=nord['nord10'],
+ foreground=nord['nord0'],
+ ),
+ widget.PulseVolume(
+ font="FontAwesome",
+ fmt='\uf028 {}',
+ background=nord['nord0'],
+ foreground=nord['nord4'],
+ ),
+ ],
+ ),
+ widget.Spacer(
+ background=nord['nord0'],
+ length=4,
+ ),
+ widget.WidgetBox(
+ name='widget_box_1',
+ background=nord['nord0'],
+ foreground=nord['nord13'],
+ fontsize=30,
+ close_button_location='right',
+ text_closed='\uf100',
+ text_open='\uf101',
+ padding=15,
+ widgets=[
+ widget.OpenWeather(
+ background=nord['nord15'],
+ foreground=nord['nord0'],
+ cityid='4198514',
+ app_key='*****',
+ metric=False),
+ widget.Net(
+ background=nord['nord10'],
+ foreground=nord['nord0'],
+ interface='net0'),
+ widget.Memory(
+ background=nord['nord14'],
+ foreground=nord['nord0']),
+ widget.CPU(
+ background=nord['nord13'],
+ foreground=nord['nord0']),
+ widget.ThermalSensor(
+ background=nord['nord13'],
+ foreground=nord['nord0'],
+ tag_sensor='Package id 0',
+ format='{temp:.0f}{unit}'),
+ widget.DF(
+ background=nord['nord12'],
+ foreground=nord['nord0'],
+ warn_space=40,
+ visible_on_warn=True),
+ widget.DF(
+ background=nord['nord12'],
+ foreground=nord['nord0'],
+ partition='/home',
+ warn_space=40,
+ visible_on_warn=True),
+ widget.ThermalSensor(
+ background=nord['nord12'],
+ foreground=nord['nord0'],
+ tag_sensor='Composite',
+ format='NVME: {temp:.0f}{unit}'),
+ widget.Spacer(
+ background=nord['nord0'],
+ length=8
+ ),
+ ]
+ ),
+ widget.Spacer(
+ background=nord['nord0'],
+ length=6
+ ),
+ clock,
+ widget.WidgetBox(
+ name='shutdown',
+ background=nord['nord11'],
+ foreground=nord['nord0'],
+ fontsize=30,
+ close_button_location='right',
+ text_closed='\uf100',
+ text_open='\uf101',
+ padding=15,
+ widgets=[
+ widget.QuickExit(
+ background=nord['nord11'],
+ foreground=nord['nord0'],
+ fontsize=24,
+ default_text='\uf1e2'
+ ),
+ ],
+ ),
+ widget.Spacer(
+ background=nord['nord11'],
+ length=4
+ ),
],
- size=26,
- border_width=[2, 2, 2, 2], # Draw top and bottom borders
- border_color=[colors['blue'], colors['blue'], colors['blue'], colors['blue']],
+ size=32,
+ border_width=[0, 0, 0, 0],
+ border_color=[nord['nord10'], nord['nord10'], nord['nord10'], nord['nord10']],
margin=4,
),
- wallpaper='~/.config/qtile/background.jpg',
+ wallpaper = get_wallpaper(),
+ wallpaper_mode='fill',
+ ),
+ Screen( # Screen2
+ bottom=bar.Bar([
+ widget.CurrentLayoutIcon(
+ background=nord['nord10'],
+ foreground=nord['nord4'],
+ ),
+ widget.GroupBox(
+ font="Font Awesome 6 Brands",
+ background=nord['nord10'],
+ disable_drag=True,
+ block_highlight_text_color=nord['nord8'],
+ this_screen_border=nord['nord13'],
+ this_current_screen_border=nord['nord11'],
+ padding=4,
+ ),
+ widget.Spacer(
+ background=nord['nord0'],
+ length=4,
+ ),
+ widget.WindowCount(
+ font="Font Awesome 6 Brands",
+ background=nord['nord0'],
+ foreground=nord['nord4'],
+ ),
+ widget.TaskList(
+ background=nord['nord0'],
+ foreground=nord['nord4'],
+ border=nord['nord11'],
+ highlight_method='block',
+ markup_focused='{}',
+ parse_text=parse_task_text,
+ margin=2,
+ padding=2,
+ ),
+ chord,
+ widget.Spacer(
+ background=nord['nord0'],
+ length=6,
+ ),
+ widget.WidgetBox(
+ name='media_box_2',
+ background=nord['nord0'],
+ foreground=nord['nord13'],
+ fontsize=30,
+ close_button_location='right',
+ text_closed='\uf100',
+ text_open='\uf101',
+ padding=15,
+ widgets=[
+ widget.Mpris2(
+ name='spotifyd',
+ #objname=media_player,
+ format = "{xesam:title} - ({xesam:artist})",
+ playing_text = " 契 {track}",
+ paused_text = " {track}",
+ width = 400,
+ scroll_delay = 5,
+ scroll_interval = 0.25,
+ scroll_step = 15,
+ background=nord['nord10'],
+ foreground=nord['nord0'],
+ ),
+ widget.PulseVolume(
+ font="FontAwesome",
+ fmt='\uf028 {}',
+ background=nord['nord0'],
+ foreground=nord['nord4'],
+ ),
+ ],
+ ),
+ widget.Spacer(
+ background=nord['nord0'],
+ length=4,
+ ),
+ widget.WidgetBox(
+ name='widget_box_2',
+ background=nord['nord0'],
+ foreground=nord['nord13'],
+ fontsize=30,
+ close_button_location='right',
+ text_closed='\uf100',
+ text_open='\uf101',
+ padding=15,
+ widgets=[
+ widget.OpenWeather(
+ background=nord['nord15'],
+ foreground=nord['nord0'],
+ cityid='4198514',
+ app_key='*****',
+ metric=False),
+ widget.Net(
+ background=nord['nord10'],
+ foreground=nord['nord0'],
+ interface='net0'),
+ widget.Memory(
+ background=nord['nord14'],
+ foreground=nord['nord0']),
+ widget.CPU(
+ background=nord['nord13'],
+ foreground=nord['nord0']),
+ widget.ThermalSensor(
+ background=nord['nord13'],
+ foreground=nord['nord0'],
+ tag_sensor='Package id 0',
+ format='{temp:.0f}{unit}'),
+ widget.DF(
+ background=nord['nord12'],
+ foreground=nord['nord0'],
+ warn_space=40,
+ visible_on_warn=True),
+ widget.DF(
+ background=nord['nord12'],
+ foreground=nord['nord0'],
+ partition='/home',
+ warn_space=40,
+ visible_on_warn=True),
+ widget.ThermalSensor(
+ background=nord['nord12'],
+ foreground=nord['nord0'],
+ tag_sensor='Composite',
+ format='NVME: {temp:.0f}{unit}'),
+ widget.Spacer(
+ background=nord['nord0'],
+ length=8
+ ),
+ ]
+ ),
+ widget.Spacer(
+ background=nord['nord0'],
+ length=6
+ ),
+ clock,
+ widget.WidgetBox(
+ name='shutdown',
+ background=nord['nord11'],
+ foreground=nord['nord0'],
+ fontsize=30,
+ close_button_location='right',
+ text_closed='\uf100',
+ text_open='\uf101',
+ padding=15,
+ widgets=[
+ widget.QuickExit(
+ background=nord['nord11'],
+ foreground=nord['nord0'],
+ fontsize=24,
+ default_text='\uf1e2'
+ ),
+ ],
+ ),
+ widget.Spacer(
+ background=nord['nord11'],
+ length=4
+ ),
+ ],
+ size=32,
+ border_width=[0, 0, 0, 0],
+ border_color=[nord['nord10'], nord['nord10'], nord['nord10'], nord['nord10']],
+ margin=4,
+ ),
+ wallpaper = get_wallpaper(),
+ wallpaper_mode='fill',
+ ),
+ Screen( # Screen3
+ bottom=bar.Bar([
+ widget.CurrentLayoutIcon(
+ background=nord['nord10'],
+ foreground=nord['nord4'],
+ ),
+ widget.GroupBox(
+ font="Font Awesome 6 Brands",
+ background=nord['nord10'],
+ disable_drag=True,
+ block_highlight_text_color=nord['nord8'],
+ this_screen_border=nord['nord13'],
+ this_current_screen_border=nord['nord11'],
+ padding=4,
+ ),
+ widget.Spacer(
+ background=nord['nord0'],
+ length=4,
+ ),
+ widget.WindowCount(
+ font="Font Awesome 6 Brands",
+ background=nord['nord0'],
+ foreground=nord['nord4'],
+ ),
+ widget.TaskList(
+ background=nord['nord0'],
+ foreground=nord['nord4'],
+ border=nord['nord11'],
+ highlight_method='block',
+ markup_focused='{}',
+ parse_text=parse_task_text,
+ margin=2,
+ padding=2,
+ ),
+ chord,
+ widget.Spacer(
+ background=nord['nord0'],
+ length=6,
+ ),
+ widget.WidgetBox(
+ name='media_box_3',
+ background=nord['nord0'],
+ foreground=nord['nord13'],
+ fontsize=30,
+ close_button_location='right',
+ text_closed='\uf100',
+ text_open='\uf101',
+ padding=15,
+ widgets=[
+ widget.Mpris2(
+ name='spotifyd',
+ #objname=media_player,
+ format = "{xesam:title} - ({xesam:artist})",
+ playing_text = " 契 {track}",
+ paused_text = " {track}",
+ width = 400,
+ scroll_delay = 5,
+ scroll_interval = 0.25,
+ scroll_step = 15,
+ background=nord['nord10'],
+ foreground=nord['nord0'],
+ ),
+ widget.PulseVolume(
+ font="FontAwesome",
+ fmt='\uf028 {}',
+ background=nord['nord0'],
+ foreground=nord['nord4'],
+ ),
+ ],
+ ),
+ widget.Spacer(
+ background=nord['nord0'],
+ length=4,
+ ),
+ widget.WidgetBox(
+ name='widget_box_3',
+ background=nord['nord0'],
+ foreground=nord['nord13'],
+ fontsize=30,
+ close_button_location='right',
+ text_closed='\uf100',
+ text_open='\uf101',
+ padding=15,
+ widgets=[
+ widget.OpenWeather(
+ background=nord['nord15'],
+ foreground=nord['nord0'],
+ cityid='4198514',
+ app_key='*****',
+ metric=False),
+ widget.Net(
+ background=nord['nord10'],
+ foreground=nord['nord0'],
+ interface='net0'),
+ widget.Memory(
+ background=nord['nord14'],
+ foreground=nord['nord0']),
+ widget.CPU(
+ background=nord['nord13'],
+ foreground=nord['nord0']),
+ widget.ThermalSensor(
+ background=nord['nord13'],
+ foreground=nord['nord0'],
+ tag_sensor='Package id 0',
+ format='{temp:.0f}{unit}'),
+ widget.DF(
+ background=nord['nord12'],
+ foreground=nord['nord0'],
+ warn_space=40,
+ visible_on_warn=True),
+ widget.DF(
+ background=nord['nord12'],
+ foreground=nord['nord0'],
+ partition='/home',
+ warn_space=40,
+ visible_on_warn=True),
+ widget.ThermalSensor(
+ background=nord['nord12'],
+ foreground=nord['nord0'],
+ tag_sensor='Composite',
+ format='NVME: {temp:.0f}{unit}'),
+ widget.Spacer(
+ background=nord['nord0'],
+ length=8
+ ),
+ ]
+ ),
+ widget.Spacer(
+ background=nord['nord0'],
+ length=6
+ ),
+ clock,
+ widget.WidgetBox(
+ name='shutdown',
+ background=nord['nord11'],
+ foreground=nord['nord0'],
+ fontsize=30,
+ close_button_location='right',
+ text_closed='\uf100',
+ text_open='\uf101',
+ padding=15,
+ widgets=[
+ widget.QuickExit(
+ background=nord['nord11'],
+ foreground=nord['nord0'],
+ fontsize=24,
+ default_text='\uf1e2'
+ ),
+ ],
+ ),
+ widget.Spacer(
+ background=nord['nord11'],
+ length=4
+ ),
+ ],
+ size=32,
+ border_width=[0, 0, 0, 0],
+ border_color=[nord['nord10'], nord['nord10'], nord['nord10'], nord['nord10']],
+ margin=4,
+ ),
+ wallpaper = get_wallpaper(),
wallpaper_mode='fill',
),
]
@@ -256,9 +950,12 @@ floating_layout = layout.Floating(
Match(wm_class="ssh-askpass"), # ssh-askpass
Match(title="branchdialog"), # gitk
Match(title="pinentry"), # GPG key password entry
- ]
+ ],
+ border_width=4,
+ border_focus=nord['nord11'],
+ border_normal=nord['nord10'],
)
-auto_fullscreen = True
+auto_fullscreen = False
focus_on_window_activation = "smart"
reconfigure_screens = True
@@ -278,4 +975,34 @@ wl_input_rules = None
# 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"
-wmname = "qtile"
+wmname = f"qtile {VERSION}"
+
+#mod_keys = {
+ #'mod4':'Super',
+ #'shift':'Shift',
+ #'control':'Control',
+ #'space':'Space',
+ #}
+#
+#hot_keys = []
+#
+#for key in keys:
+ #if isinstance(key, Key):
+ #key_modifiers = ' + '.join([mod_keys[modifier] for modifier in key.modifiers])
+ #if len(key.key) == 1:
+ #hot_keys.append(f"{key_modifiers} + {key.key}: {key.desc}\n")
+ #elif len(key.key) > 1:
+ #hot_keys.append(f"{key_modifiers} + {key.key.title()}: {key.desc}\n")
+#for key in keys:
+ #if isinstance(key, KeyChord):
+ #key_modifiers = ' + '.join([mod_keys[modifier] for modifier in key.modifiers])
+ #hot_keys.append(f"{key_modifiers} + {key.key}: {key.name.upper()}\n")
+ #for sub in key.submappings:
+ #if isinstance(sub, Key):
+ #hot_keys.append(f" {sub.key}: {sub.desc}\n")
+ #elif isinstance(key, KeyChord):
+ #hot_keys.append(f" {sub.key}: {sub.name.upper()}\n")
+ #for map in sub.submappings:
+ #hot_keys.append(f" {map.key}: {map.desc}\n")
+#
+#print(''.join(hot_keys))
diff --git a/.config/qtile/config.py.old b/.config/qtile/config.py.old
new file mode 100644
index 0000000..1de1824
--- /dev/null
+++ b/.config/qtile/config.py.old
@@ -0,0 +1,440 @@
+# Copyright (c) 2010 Aldo Cortesi
+# Copyright (c) 2010, 2014 dequis
+# Copyright (c) 2012 Randall Mmeasure_mem='G'# 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.
+
+from libqtile import bar, layout, widget, extension
+from libqtile.config import Click, Drag, Group, Key, Match, Screen, ScratchPad, DropDown
+from libqtile.lazy import lazy
+from libqtile.utils import guess_terminal
+from unicodes import left_arrow, right_arrow, right_half_circle, lower_left_triangle
+
+mod = "mod4"
+terminal = guess_terminal()
+rofi= 'rofi -combi-modi window,drun,ssh -theme nord -font "hack 10" -show drun -icon-theme "Papirus" -show-icons'
+
+colors = {
+ 'purple':'#52497e',
+ 'teal':'#559d92',
+ 'dark_orange':'#9d6e55',
+ 'orange':'#e7510b',
+ 'dark_red':'#9d5560',
+ 'dark_blue':'#2e3440',
+ 'light_blue':'#8fbcbb',
+ 'blue':'#5e81ac',
+ 'red':'#bf616a',
+ 'dark_text':'#d8dee9',
+ }
+
+nord = {
+ 'nord0':'#2E3440',
+ 'nord1':'#3B4252',
+ 'nord2':'#434C5E',
+ 'nord3':'#4C566A',
+ 'nord4':'#D8DEE9',
+ 'nord5':'#E5E9F0',
+ 'nord6':'#ECEFF4',
+ 'nord7':'#8FBCBB',
+ 'nord8':'#88C0D0',
+ 'nord9':'#81A1C1',
+ 'nord10':'#5E81AC',
+ 'nord11':'#BF616A',
+ 'nord12':'#D08770',
+ 'nord13':'#EBCB8B',
+ 'nord14':'#A3BE8C',
+ 'nord15':'#B48EAD',
+ }
+
+keys = [
+ # A list of available commands that can be bound to keys can be found
+ # at https://docs.qtile.org/en/latest/manual/config/lazy.html
+ # Switch between windows
+ Key([mod], "h", lazy.layout.left(), desc="Move focus to left"),
+ Key([mod], "l", lazy.layout.right(), desc="Move focus to right"),
+ Key([mod], "j", lazy.layout.down(), desc="Move focus down"),
+ Key([mod], "k", lazy.layout.up(), desc="Move focus up"),
+ Key([mod], "space", lazy.layout.next(), desc="Move window focus to other window"),
+ # Move windows between left/right columns or move up/down in current stack.
+ # Moving out of range in Columns layout will create new column.
+ Key([mod, "shift"], "h", lazy.layout.shuffle_left(), desc="Move window to the left"),
+ Key([mod, "shift"], "l", lazy.layout.shuffle_right(), desc="Move window to the right"),
+ Key([mod, "shift"], "j", lazy.layout.shuffle_down(), desc="Move window down"),
+ Key([mod, "shift"], "k", lazy.layout.shuffle_up(), desc="Move window up"),
+ # Grow windows. If current window is on the edge of screen and direction
+ # will be to screen edge - window would shrink.
+ Key([mod, "control"], "h", lazy.layout.grow_left(), desc="Grow window to the left"),
+ Key([mod, "control"], "l", lazy.layout.grow_right(), desc="Grow window to the right"),
+ Key([mod, "control"], "j", lazy.layout.grow_down(), desc="Grow window down"),
+ Key([mod, "control"], "k", lazy.layout.grow_up(), desc="Grow window up"),
+ Key([mod], "n", lazy.layout.normalize(), desc="Reset all window sizes"),
+ # Toggle between split and unsplit sides of stack.
+ # Split = all windows displayed
+ # Unsplit = 1 window displayed, like Max layout, but still with
+ # multiple stack panes
+ Key(
+ [mod, "shift"],
+ "Return",
+ lazy.layout.toggle_split(),
+ desc="Toggle between split and unsplit sides of stack",
+ ),
+ Key([mod], "Return", lazy.spawn(terminal), desc="Launch terminal"),
+ # Toggle between different layouts as defined below
+ Key([mod], "Tab", lazy.next_layout(), desc="Toggle between layouts"),
+ Key([mod], "w", lazy.window.kill(), desc="Kill focused window"),
+ Key([mod, "control"], "r", lazy.reload_config(), desc="Reload the config"),
+ Key([mod, "control"], "q", lazy.shutdown(), desc="Shutdown Qtile"),
+ Key([mod, "control"], "s", lazy.hide_show_bar()),
+ # Key([mod], "r", lazy.spawncmd(), desc="Spawn a command using a prompt widget"),
+ Key([mod], "r", lazy.run_extension(extension.DmenuRun(dmenu_prompt = ">"))),
+ Key([mod], "q", lazy.spawn(rofi), desc="Launch rofi"),
+ Key([mod], "z", lazy.run_extension(extension.WindowList())),
+]
+
+groups = [Group(i) for i in "123456789"]
+
+for i in groups:
+ keys.extend(
+ [
+ # mod1 + letter of group = switch to group
+ Key(
+ [mod],
+ i.name,
+ lazy.group[i.name].toscreen(),
+ desc="Switch to group {}".format(i.name),
+ ),
+ # mod1 + shift + letter of group = switch to & move focused window to group
+ #Key(
+ #[mod, "shift"],
+ #i.name,
+ #lazy.window.togroup(i.name, switch_group=True),
+ #desc="Switch to & move focused window to group {}".format(i.name),
+ #),
+ # Or, use below if you prefer not to switch to that group.
+ # # mod1 + shift + letter of group = move focused window to group
+ Key(
+ [mod, "shift"],
+ i.name,
+ lazy.window.togroup(i.name),
+ desc="move focused window to group {}".format(i.name)
+ ),
+ ]
+ )
+
+layouts = [
+ #layout.Columns(border_focus_stack=["#d75f5f", "#8f3d3d"], border_width=4),
+ # Try more layouts by unleashing below layouts.
+ #layout.Stack(num_stacks=2),
+ #layout.Bsp(),
+ #layout.Matrix(),
+ #layout.MonadThreeCol(
+ #main_centered=True,
+ #new_client_position='after_current',
+ #border_focus=colors['red'],
+ #border_normal=colors['blue'],
+ #border_width=2,
+ #margin=4
+ #),
+ layout.MonadTall(
+ border_focus=colors['red'],
+ border_normal=colors['blue'],
+ border_width=2,
+ margin=8
+ ),
+ #layout.Spiral(),
+ layout.Max(),
+ #layout.MonadWide(),
+ #layout.RatioTile(),
+ #layout.Tile(),
+ #layout.TreeTab(),
+ #layout.VerticalTile(),
+ #layout.Zoomy(),
+]
+
+widget_defaults = dict(
+ #font="sans",
+ font="Hack Nerd Font Mono",
+ fontsize=14,
+ padding=4,
+)
+extension_defaults = widget_defaults.copy()
+
+screens = [
+ Screen(
+ bottom=bar.Bar(
+ [
+ widget.GroupBox(
+ background=colors['blue'],
+ block_highlight_text_color=colors['red'],
+ disable_drag=True,
+ this_screen_border=nord['nord11'],
+ this_current_screen_border=nord['nord13'],
+ #active=nord['nord6'],
+ ),
+ #lower_left_triangle(colors['blue'], colors['dark_blue']),
+ #right_arrow(colors['dark_blue'], colors['blue']),
+ # widget.Prompt(),
+ widget.CurrentLayoutIcon(
+ background=colors['blue'],
+ foreground=colors['dark_text'],
+ ),
+ widget.WindowCount(
+ background=colors['dark_blue'],
+ foreground=colors['dark_text'],
+ ),
+ widget.TaskList(
+ background=colors['dark_blue'],
+ foreground=colors['dark_text'],
+ ),
+ #widget.WindowName(
+ #background=colors['dark_blue'],
+ #foreground=colors['dark_text'],
+ #),
+ widget.Chord(
+ chords_colors={
+ "launch": ("#ff0000", "#ffffff"),
+ },
+ name_transform=lambda name: name.upper(),
+ ),
+ # widget.TextBox("default config", name="default"),
+ # widget.TextBox("Press <M-r> to spawn", foreground="#d75f5f"),
+ # NB Systray is incompatible with Wayland, consider using StatusNotifier instead
+ # widget.StatusNotifier(),
+ widget.Systray(
+ background=colors['dark_blue'],
+ ),
+ widget.OpenWeather(
+ background=nord['nord15'],
+ foreground=colors['dark_blue'],
+ cityid='4198514',
+ app_key='*****',
+ metric=False,
+ ),
+ #widget.TextBox(
+ #padding=1,
+ #background=colors['dark_blue'],
+ #),
+ #lower_left_triangle(colors['dark_blue'], colors['blue']),
+ #left_arrow(colors['dark_blue'], colors['blue']),
+ widget.Net(
+ background=nord['nord10'],
+ #background=colors['blue'],
+ foreground=colors['dark_blue'],
+ interface='net0',
+ ),
+ #widget.TextBox(
+ #padding=1,
+ #background=colors['blue'],
+ #),
+ #lower_left_triangle(colors['blue'], colors['dark_blue']),
+ #left_arrow(colors['blue'], colors['dark_blue']),
+ widget.Memory(
+ background=nord['nord14'],
+ #background=colors['dark_blue'],
+ foreground=colors['dark_blue'],
+ ),
+ #widget.TextBox(
+ #padding=1,
+ #background=colors['dark_blue'],
+ #),
+ #lower_left_triangle(colors['dark_blue'], colors['blue']),
+ #left_arrow(colors['dark_blue'], colors['blue']),
+ widget.CPU(
+ background=nord['nord13'],
+ foreground=colors['dark_blue'],
+ ),
+ widget.ThermalSensor(
+ tag_sensor='Package id 0',
+ format='{temp:.0f}{unit}',
+ background=nord['nord13'],
+ #background=colors['blue'],
+ foreground=colors['dark_blue'],
+ ),
+ widget.DF(
+ background=nord['nord12'],
+ foreground=colors['dark_blue'],
+ warn_sapce=40,
+ visible_on_warn=True,
+ ),
+ widget.DF(
+ background=nord['nord12'],
+ foreground=colors['dark_blue'],
+ partition='/home',
+ warn_sapce=40,
+ visible_on_warn=True,
+ ),
+ widget.ThermalSensor(
+ tag_sensor='Composite',
+ format='NVME:{temp:.0f}{unit}',
+ background=nord['nord12'],
+ #background=colors['blue'],
+ foreground=colors['dark_blue'],
+ ),
+ #widget.TextBox(
+ #padding=1,
+ #background=colors['blue'],
+ #),
+ #lower_left_triangle(colors['blue'], colors['dark_blue']),
+ #left_arrow(colors['blue'], colors['dark_blue']),
+ widget.Clock(
+ background=nord['nord11'],
+ foreground=colors['dark_blue'],
+ format="%Y-%m-%d %a %H:%M"
+ ),
+ # widget.QuickExit(),
+ ],
+ size=26,
+ border_width=[2, 2, 2, 2], # Draw top and bottom borders
+ border_color=[colors['blue'], colors['blue'], colors['blue'], colors['blue']],
+ margin=4,
+ ),
+ wallpaper='~/.config/qtile/background.jpg',
+ wallpaper_mode='fill',
+ ),
+ Screen(
+ bottom=bar.Bar([
+ widget.GroupBox(
+ background=colors['blue'],
+ block_highlight_text_color=colors['red'],
+ disable_drag=True,
+ this_screen_border=nord['nord11'],
+ this_current_screen_border=nord['nord13'],
+ #active=nord['nord15'],
+ ),
+ widget.CurrentLayoutIcon(
+ background=colors['blue'],
+ foreground=colors['dark_blue'],
+ ),
+ widget.WindowCount(
+ background=colors['dark_blue'],
+ foreground=colors['dark_text'],
+ ),
+ widget.TaskList(
+ background=colors['dark_blue'],
+ foreground=colors['dark_text'],
+ ),
+ #widget.WindowName(
+ #background=colors['dark_blue'],
+ #foreground=colors['dark_text'],
+ #),
+ widget.Clock(
+ background=nord['nord11'],
+ foreground=colors['dark_blue'],
+ format="%Y-%m-%d %a %H:%M"
+ ),
+ ],
+ size=26,
+ border_width=[2, 2, 2, 2], # Draw top and bottom borders
+ border_color=[colors['blue'], colors['blue'], colors['blue'], colors['blue']],
+ margin=4,
+ ),
+ wallpaper='~/.config/qtile/background.jpg',
+ wallpaper_mode='fill',
+ ),
+ Screen(
+ bottom=bar.Bar([
+ widget.GroupBox(
+ background=colors['blue'],
+ block_highlight_text_color=colors['red'],
+ disable_drag=True,
+ this_screen_border=nord['nord11'],
+ this_current_screen_border=nord['nord13'],
+ #active=nord['nord15'],
+ ),
+ widget.CurrentLayoutIcon(
+ background=colors['blue'],
+ foreground=colors['dark_text'],
+ ),
+ widget.WindowCount(
+ background=colors['dark_blue'],
+ foreground=colors['dark_text'],
+ ),
+ widget.TaskList(
+ background=colors['dark_blue'],
+ foreground=colors['dark_text'],
+ ),
+ #widget.WindowName(
+ #background=colors['dark_blue'],
+ #foreground=colors['dark_text'],
+ #),
+ widget.Clock(
+ background=nord['nord11'],
+ foreground=colors['dark_blue'],
+ format="%Y-%m-%d %a %H:%M"
+ ),
+ ],
+ size=26,
+ border_width=[2, 2, 2, 2], # Draw top and bottom borders
+ border_color=[colors['blue'], colors['blue'], colors['blue'], colors['blue']],
+ margin=4,
+ ),
+ wallpaper='~/.config/qtile/background.jpg',
+ wallpaper_mode='fill',
+ ),
+]
+
+# Drag floating layouts.
+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
+floating_layout = layout.Floating(
+ float_rules=[
+ # Run the utility of `xprop` to see the wm class and name of an X client.
+ *layout.Floating.default_float_rules,
+ Match(wm_class="confirmreset"), # gitk
+ Match(wm_class="makebranch"), # gitk
+ Match(wm_class="maketag"), # gitk
+ Match(wm_class="ssh-askpass"), # ssh-askpass
+ #Match(wm_class="VirtualBox Machine"), # virt box
+ Match(title="branchdialog"), # gitk
+ Match(title="pinentry"), # GPG key password entry
+ ]
+)
+auto_fullscreen = False
+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
+
+# 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"
+wmname = "qtile"
diff --git a/.config/spotifyd/spotifyd.conf b/.config/spotifyd/spotifyd.conf
index 42a54c5..dc4546f 100644
--- a/.config/spotifyd/spotifyd.conf
+++ b/.config/spotifyd/spotifyd.conf
@@ -3,7 +3,7 @@
username = "21trp6fa6clzosibpccdvipma"
# Your Spotify account password.
-# password = "yourpassword"
+#password = ""
# A command that gets executed and can be used to
# retrieve your password.
diff --git a/.tmux.conf b/.tmux.conf
index 96d1df4..8c31223 100644
--- a/.tmux.conf
+++ b/.tmux.conf
@@ -19,14 +19,28 @@ bind j select-pane -D
bind k select-pane -U
bind l select-pane -R
-set-option -g status on
-set-option -g status-interval 2
-set-option -g status-justify "centre"
-set-option -g status-left-length 60
-set-option -g status-right-length 90
-set-option -g status-left "#(~/share/tmux-powerline/powerline.sh left)"
-set-option -g status-right "#(~/share/tmux-powerline/powerline.sh right)"
-set-hook -g session-created 'run-shell "~/share/tmux-powerline/powerline.sh init"' # prettifies the window-status segments
+#set-option -g status on
+#set-option -g status-interval 2
+#set-option -g status-justify "centre"
+#set-option -g status-left-length 60
+#set-option -g status-right-length 90
+#set-option -g status-left "#(~/share/tmux-powerline/powerline.sh left)"
+#set-option -g status-right "#(~/share/tmux-powerline/powerline.sh right)"
+#set-hook -g session-created 'run-shell "~/share/tmux-powerline/powerline.sh init"' # prettifies the window-status segments
-bind C-[ run '~/share/tmux-powerline/mute_powerline.sh left' # Mute left statusbar.
-bind C-] run '~/share/tmux-powerline/mute_powerline.sh right' # Mute right statusbar.
+#bind C-[ run '~/share/tmux-powerline/mute_powerline.sh left' # Mute left statusbar.
+#bind C-] run '~/share/tmux-powerline/mute_powerline.sh right' # Mute right statusbar.
+
+# List of plugins
+set -g @plugin 'tmux-plugins/tpm'
+set -g @plugin 'tmux-plugins/tmux-sensible'
+set -g @plugin "arcticicestudio/nord-tmux"
+
+# Other examples:
+# set -g @plugin 'github_username/plugin_name'
+# set -g @plugin 'github_username/plugin_name#branch'
+# set -g @plugin 'git@github.com:user/plugin'
+# set -g @plugin 'git@bitbucket.com:user/plugin'
+
+# Initialize TMUX plugin manager (keep this line at the very bottom of tmux.conf)
+run '~/.tmux/plugins/tpm/tpm'
diff --git a/.vimrc b/.vimrc
index bb11a37..284b22a 100644
--- a/.vimrc
+++ b/.vimrc
@@ -9,11 +9,18 @@ set copyindent
set number
+set laststatus=2
+"
+call plug#begin(expand('~/.vim/plugged'))
+" Color Scheme
+Plug 'arcticicestudio/nord-vim'
+Plug 'itchyny/lightline.vim'
+Plug 'ap/vim-css-color'
+Plug 'ycm-core/YouCompleteMe'
+Plug 'preservim/nerdtree'
+call plug#end()
+
colorscheme nord
-let g:airline_theme='base16_nord'
-
-" python3 from powerline.vim import setup as powerline_setup
-" python3 powerline_setup()
-" python3 del powerline_setup
-
-" set laststatus=2
+let g:lightline = {
+ \ 'colorscheme': 'nord',
+ \ }
diff --git a/.xinitrc b/.xinitrc
index 159e4d9..d5d8e3e 100644
--- a/.xinitrc
+++ b/.xinitrc
@@ -8,15 +8,7 @@ sysmodmap=/etc/X11/xinit/.Xmodmap
# merge in defaults and keymaps
if [ -f $sysresources ]; then
-
-
-
-
-
-
-
xrdb -merge $sysresources
-
fi
if [ -f $sysmodmap ]; then
@@ -24,15 +16,7 @@ if [ -f $sysmodmap ]; then
fi
if [ -f "$userresources" ]; then
-
-
-
-
-
-
-
xrdb -merge "$userresources"
-
fi
if [ -f "$usermodmap" ]; then
@@ -48,6 +32,5 @@ if [ -d /etc/X11/xinit/xinitrc.d ] ; then
unset f
fi
-# exec /usr/local/bin/dwm
-# exec picom -b
+picom --animations --no-fading-openclose -b
exec qtile start