[
  {
    "path": ".config/compton.conf",
    "content": "#################################\n#\n# Backend\n#\n#################################\n\n# Backend to use: \"xrender\" or \"glx\".\n# GLX backend is typically much faster but depends on a sane driver.\nbackend = \"glx\";\n\n#################################\n#\n# GLX backend\n#\n#################################\n\nglx-no-stencil = true;\n\n# GLX backend: Copy unmodified regions from front buffer instead of redrawing them all.\n# My tests with nvidia-drivers show a 10% decrease in performance when the whole screen is modified,\n# but a 20% increase when only 1/4 is.\n# My tests on nouveau show terrible slowdown.\n# Useful with --glx-swap-method, as well.\nglx-copy-from-front = false;\n\n# GLX backend: Use MESA_copy_sub_buffer to do partial screen update.\n# My tests on nouveau shows a 200% performance boost when only 1/4 of the screen is updated.\n# May break VSync and is not available on some drivers.\n# Overrides --glx-copy-from-front.\n# glx-use-copysubbuffermesa = true;\n\n# GLX backend: Avoid rebinding pixmap on window damage.\n# Probably could improve performance on rapid window content changes, but is known to break things on some drivers (LLVMpipe).\n# Recommended if it works.\n# glx-no-rebind-pixmap = true;\n\n\n# GLX backend: GLX buffer swap method we assume.\n# Could be undefined (0), copy (1), exchange (2), 3-6, or buffer-age (-1).\n# undefined is the slowest and the safest, and the default value.\n# copy is fastest, but may fail on some drivers,\n# 2-6 are gradually slower but safer (6 is still faster than 0).\n# Usually, double buffer means 2, triple buffer means 3.\n# buffer-age means auto-detect using GLX_EXT_buffer_age, supported by some drivers.\n# Useless with --glx-use-copysubbuffermesa.\n# Partially breaks --resize-damage.\n# Defaults to undefined.\nglx-swap-method = \"undefined\";\n\n#################################\n#\n# Shadows\n#\n#################################\n\n# Enabled client-side shadows on windows.\nshadow = false;\n# Don't draw shadows on DND windows.\nno-dnd-shadow = true;\n# Avoid drawing shadows on dock/panel windows.\nno-dock-shadow = true;\n# Zero the part of the shadow's mask behind the window. Fix some weirdness with ARGB windows.\nclear-shadow = true;\n# The blur radius for shadows. (default 12)\nshadow-radius = 12;\n# The left offset for shadows. (default -15)\nshadow-offset-x = -15;\n# The top offset for shadows. (default -15)\nshadow-offset-y = -15;\n# The translucency for shadows. (default .75)\nshadow-opacity = 0.65;\n\n# Set if you want different colour shadows\n# shadow-red = 0.0;\n# shadow-green = 0.0;\n# shadow-blue = 0.0;\n\n# The shadow exclude options are helpful if you have shadows enabled. Due to the way compton draws its shadows, certain applications will have visual glitches\n# (most applications are fine, only apps that do weird things with xshapes or argb are affected).\n# This list includes all the affected apps I found in my testing. The \"! name~=''\" part excludes shadows on any \"Unknown\" windows, this prevents a visual glitch with the XFWM at  tab switcher.\nshadow-exclude = [\n    \"! name~=''\",\n    \"name = 'Notification'\",\n    \"name = 'Plank'\",\n    \"name = 'Docky'\",\n    \"name = 'Kupfer'\",\n    \"name = 'GLava'\",\n    \"name = 'xfce4-notifyd'\",\n    \"name *= 'VLC'\",\n    \"name *= 'compton'\",\n    \"name *= 'Chromium'\",\n    \"name *= 'Chrome'\",\n    \"class_g = 'Conky'\",\n    \"class_g = 'Kupfer'\",\n    \"class_g = 'Synapse'\",\n    \"class_g ?= 'Notify-osd'\",\n    \"class_g ?= 'Cairo-dock'\",\n    \"class_g ?= 'Xfce4-notifyd'\",\n    \"class_g ?= 'Xfce4-power-manager'\",\n    \"_GTK_FRAME_EXTENTS@:c\"\n];\n# Avoid drawing shadow on all shaped windows (see also: --detect-rounded-corners)\nshadow-ignore-shaped = true;\n\n#################################\n#\n# Opacity\n#\n#################################\n\nmenu-opacity = 1;\ninactive-opacity = 1;\nactive-opacity = 1;\nframe-opacity = 1;\ninactive-opacity-override = false;\nalpha-step = 0.06;\n\nopacity-rule = [\n\t\"85:class_g = 'Dolphin'\",\n\t\"85:class_g = 'Code'\",\n\t\"85:class_g = 'code'\",\n\t\"0:_NET_WM_STATE@:32a *= '_NET_WM_STATE_HIDDEN'\" #FLASHFOCUS\n]\n\n# Dim inactive windows. (0.0 - 1.0)\n#inactive-dim = 0.1;\n# Do not let dimness adjust based on window opacity.\n# inactive-dim-fixed = true;\n# Blur background of transparent windows. Bad performance with X Render backend. GLX backend is preferred.\nblur-background = true;\nblur-method = \"kawase\";\nblur-strength = 10;\n# Blur background of opaque windows with transparent frames as well.\n# blur-background-frame = true;\n# Do not let blur radius adjust based on window opacity.\n# blur-background-fixed = false;\n\nblur-background-exclude = [\n  \"window_type = 'dock'\",\n  \"class_g ?= 'Konsole'\"\n];\n\n#################################\n#\n# Fading\n#\n#################################\n\n# Fade windows during opacity changes.\nfading = true;\n# The time between steps in a fade in milliseconds. (default 10).\nfade-delta = 4;\n# Opacity change between steps while fading in. (default 0.028).\nfade-in-step = 0.03;\n# Opacity change between steps while fading out. (default 0.03).\nfade-out-step = 0.03;\n# Fade windows in/out when opening/closing\nno-fading-openclose = false;\n\n# Specify a list of conditions of windows that should not be faded.\nfade-exclude = [ ];\n\n#################################\n#\n# Other\n#\n#################################\n\n# Try to detect WM windows and mark them as active.\nmark-wmwin-focused = true;\n# Mark all non-WM but override-redirect windows active (e.g. menus).\nmark-ovredir-focused = true;\n# Use EWMH _NET_WM_ACTIVE_WINDOW to determine which window is focused instead of using FocusIn/Out events.\n# Usually more reliable but depends on a EWMH-compliant WM.\nuse-ewmh-active-win = true;\n# Detect rounded corners and treat them as rectangular when --shadow-ignore-shaped is on.\ndetect-rounded-corners = true;\n\n# Detect _NET_WM_OPACITY on client windows, useful for window managers not passing _NET_WM_OPACITY of client windows to frame windows.\n# This prevents opacity being ignored for some apps.\n# For example without this enabled my xfce4-notifyd is 100% opacity no matter what.\ndetect-client-opacity = true;\n\n# Specify refresh rate of the screen.\n# If not specified or 0, compton will try detecting this with X RandR extension.\nrefresh-rate = 60;\n\n# Set VSync method. VSync methods currently available:\n# none: No VSync\n# drm: VSync with DRM_IOCTL_WAIT_VBLANK. May only work on some drivers.\n# opengl: Try to VSync with SGI_video_sync OpenGL extension. Only work on some drivers.\n# opengl-oml: Try to VSync with OML_sync_control OpenGL extension. Only work on some drivers.\n# opengl-swc: Try to VSync with SGI_swap_control OpenGL extension. Only work on some drivers. Works only with GLX backend. Known to be most effective on many drivers. Does not  actually control paint timing, only buffer swap is affected, so it doesn’t have the effect of --sw-opti unlike other methods. Experimental.\n# opengl-mswc: Try to VSync with MESA_swap_control OpenGL extension. Basically the same as opengl-swc above, except the extension we use.\n# (Note some VSync methods may not be enabled at compile time.)\nvsync = \"opengl-swc\";\n\n# Enable DBE painting mode, intended to use with VSync to (hopefully) eliminate tearing.\n# Reported to have no effect, though.\ndbe = false;\n# Painting on X Composite overlay window. Recommended.\npaint-on-overlay = true;\n\n# Limit compton to repaint at most once every 1 / refresh_rate second to boost performance.\n# This should not be used with --vsync drm/opengl/opengl-oml as they essentially does --sw-opti's job already,\n# unless you wish to specify a lower refresh rate than the actual value.\nsw-opti = true;\n\n# Unredirect all windows if a full-screen opaque window is detected, to maximize performance for full-screen windows, like games.\n# Known to cause flickering when redirecting/unredirecting windows.\n# paint-on-overlay may make the flickering less obvious.\nunredir-if-possible = true;\n\n# Specify a list of conditions of windows that should always be considered focused.\nfocus-exclude = [ ];\n\n# Use WM_TRANSIENT_FOR to group windows, and consider windows in the same group focused at the same time.\ndetect-transient = true;\n# Use WM_CLIENT_LEADER to group windows, and consider windows in the same group focused at the same time.\n# WM_TRANSIENT_FOR has higher priority if --detect-transient is enabled, too.\ndetect-client-leader = true;\n\n#################################\n#\n# Window type settings\n#\n#################################\n\nwintypes:\n{\n    tooltip =\n    {\n        # fade: Fade the particular type of windows.\n        fade = true;\n        # shadow: Give those windows shadow\n        shadow = false;\n        # opacity: Default opacity for the type of windows.\n        opacity = 0.85;\n        # focus: Whether to always consider windows of this type focused.\n        focus = true;\n    };\n};\n"
  },
  {
    "path": ".config/conky/clock_rings.lua",
    "content": "--[[\nClock Rings by Linux Mint (2011) reEdited by despot77\nThis script draws percentage meters as rings, and also draws clock hands if you want! It is fully customisable; all options are described in the script. This script is based off a combination of my clock.lua script and my rings.lua script.\nIMPORTANT: if you are using the 'cpu' function, it will cause a segmentation fault if it tries to draw a ring straight away. The if statement on line 145 uses a delay to make sure that this doesn't happen. It calculates the length of the delay by the number of updates since Conky started. Generally, a value of 5s is long enough, so if you update Conky every 1s, use update_num>5 in that if statement (the default). If you only update Conky every 2s, you should change it to update_num>3; conversely if you update Conky every 0.5s, you should use update_num>10. ALSO, if you change your Conky, is it best to use \"killall conky; conky\" to update it, otherwise the update_num will not be reset and you will get an error.\nTo call this script in Conky, use the following (assuming that you save this script to ~/scripts/rings.lua):\n    lua_load ~/scripts/clock_rings.lua\n    lua_draw_hook_pre clock_rings\n    \nChangelog:\n+ v1.0 -- Original release (30.09.2009)\n   v1.1p -- Jpope edit londonali1010 (05.10.2009)\n*v 2011mint -- reEdit despot77 (18.02.2011)\n]]\n\nsettings_table = {\n    -- Hour\n    {\n        -- Edit this table to customise your rings.\n        -- You can create more rings simply by adding more elements to settings_table.\n        -- \"name\" is the type of stat to display; you can choose from 'cpu', 'memperc', 'fs_used_perc', 'battery_used_perc'.\n        name='time',\n        -- \"arg\" is the argument to the stat type, e.g. if in Conky you would write ${cpu cpu0}, 'cpu0' would be the argument. If you would not use an argument in the Conky variable, use ''.\n        arg='%I.%M',\n        -- \"max\" is the maximum value of the ring. If the Conky variable outputs a percentage, use 100.\n        max=12,\n        -- \"bg_colour\" is the colour of the base ring.\n        bg_colour=0xffffff,\n        -- \"bg_alpha\" is the alpha value of the base ring.\n        bg_alpha=0.1,\n        -- \"fg_colour\" is the colour of the indicator part of the ring.\n        fg_colour=0xffffff,\n        -- \"fg_alpha\" is the alpha value of the indicator part of the ring.\n        fg_alpha=0.2,\n        -- \"x\" and \"y\" are the x and y coordinates of the centre of the ring, relative to the top left corner of the Conky window.\n        x=200, y=250,\n        -- \"radius\" is the radius of the ring.\n        radius=100,\n        -- \"thickness\" is the thickness of the ring, centred around the radius.\n        thickness=7,\n        -- \"start_angle\" is the starting angle of the ring, in degrees, clockwise from top. Value can be either positive or negative.\n        start_angle=0,\n        -- \"end_angle\" is the ending angle of the ring, in degrees, clockwise from top. Value can be either positive or negative, but must be larger than start_angle.\n        end_angle=360\n    },\n    -- Minute\n    {\n        name='time',\n        arg='%M.%S',\n        max=60,\n        bg_colour=0xffffff,\n        bg_alpha=0.1,\n        fg_colour=0xffffff,\n        fg_alpha=0.4,\n        x=200, y=250,\n        radius=120,\n        thickness=7,\n        start_angle=0,\n        end_angle=360\n    },\n    -- Second\n    {\n        name='time',\n        arg='%S',\n        max=60,\n        bg_colour=0xffffff,\n        bg_alpha=0.1,\n        fg_colour=0xffffff,\n        fg_alpha=0.6,\n        x=200, y=250,\n        radius=140,\n        thickness=7,\n        start_angle=0,\n        end_angle=360\n    },\n    -- Day\n    {\n        name='time',\n        arg='%d',\n        max=31,\n        bg_colour=0xffffff,\n        bg_alpha=0.1,\n        fg_colour=0xffffff,\n        fg_alpha=0.8,\n        x=200, y=250,\n        radius=170,\n        thickness=7,\n        start_angle=-90,\n        end_angle=90\n    },\n    -- Month\n    {\n        name='time',\n        arg='%m',\n        max=12,\n        bg_colour=0xffffff,\n        bg_alpha=0.1,\n        fg_colour=0xffffff,\n        fg_alpha=1,\n        x=200, y=250,\n        radius=185,\n        thickness=7,\n        start_angle=-90,\n        end_angle=90\n    },\n    {\n        name='cpu',\n        arg='cpu0',\n        max=100,\n        bg_colour=0xffffff,\n        bg_alpha=0.2,\n        fg_colour=0xffffff,\n        fg_alpha=0.8,\n        x=100, y=500,\n        radius=45,\n        thickness=7,\n        start_angle=-90,\n        end_angle=180\n    },\n    {\n        name='memperc',\n        arg='',\n        max=100,\n        bg_colour=0xffffff,\n        bg_alpha=0.2,\n        fg_colour=0xffffff,\n        fg_alpha=0.8,\n        x=150, y=600,\n        radius=45,\n        thickness=7,\n        start_angle=-90,\n        end_angle=180\n    },\n    {\n        name='swapperc',\n        arg='',\n        max=100,\n        bg_colour=0xffffff,\n        bg_alpha=0.2,\n        fg_colour=0xffffff,\n        fg_alpha=0.8,\n        x=200, y=700,\n        radius=45,\n        thickness=7,\n        start_angle=-90,\n        end_angle=180\n    },\n    {\n        name='fs_used_perc',\n        arg='/',\n        max=100,\n        bg_colour=0xffffff,\n        bg_alpha=0.2,\n        fg_colour=0xffffff,\n        fg_alpha=0.8,\n        x=250, y=800,\n        radius=45,\n        thickness=7,\n        start_angle=-90,\n        end_angle=180\n    },\n        {\n        name='downspeedf',\n        arg='eth0',\n        max=100,\n        bg_colour=0xffffff,\n        bg_alpha=0.2,\n        fg_colour=0xffffff,\n        fg_alpha=0.8,\n        x=300, y=905,\n        radius=50,\n        thickness=6,\n        start_angle=-90,\n        end_angle=180\n    },\n        {\n        name='upspeedf',\n        arg='eth0',\n        max=100,\n        bg_colour=0xffffff,\n        bg_alpha=0.2,\n        fg_colour=0xffffff,\n        fg_alpha=0.8,\n        x=300, y=905,\n        radius=40,\n        thickness=6,\n        start_angle=-90,\n        end_angle=180\n    },\n}\n\n-- Use these settings to define the origin and extent of your clock.\n\nclock_r=140\n\n-- \"clock_x\" and \"clock_y\" are the coordinates of the centre of the clock, in pixels, from the top left of the Conky window.\n\nclock_x=200\nclock_y=250\n\nshow_seconds=true\n\nrequire 'cairo'\n\nfunction rgb_to_r_g_b(colour,alpha)\n    return ((colour / 0x10000) % 0x100) / 255., ((colour / 0x100) % 0x100) / 255., (colour % 0x100) / 255., alpha\nend\n\nfunction draw_ring(cr,t,pt)\n    local w,h=conky_window.width,conky_window.height\n    \n    local xc,yc,ring_r,ring_w,sa,ea=pt['x'],pt['y'],pt['radius'],pt['thickness'],pt['start_angle'],pt['end_angle']\n    local bgc, bga, fgc, fga=pt['bg_colour'], pt['bg_alpha'], pt['fg_colour'], pt['fg_alpha']\n\n    local angle_0=sa*(2*math.pi/360)-math.pi/2\n    local angle_f=ea*(2*math.pi/360)-math.pi/2\n    local t_arc=t*(angle_f-angle_0)\n\n    -- Draw background ring\n\n    cairo_arc(cr,xc,yc,ring_r,angle_0,angle_f)\n    cairo_set_source_rgba(cr,rgb_to_r_g_b(bgc,bga))\n    cairo_set_line_width(cr,ring_w)\n    cairo_stroke(cr)\n    \n    -- Draw indicator ring\n\n    cairo_arc(cr,xc,yc,ring_r,angle_0,angle_0+t_arc)\n    cairo_set_source_rgba(cr,rgb_to_r_g_b(fgc,fga))\n    cairo_stroke(cr)        \nend\n\nfunction draw_clock_hands(cr,xc,yc)\n    local secs,mins,hours,secs_arc,mins_arc,hours_arc\n    local xh,yh,xm,ym,xs,ys\n    \n    secs=os.date(\"%S\")    \n    mins=os.date(\"%M\")\n    hours=os.date(\"%I\")\n        \n    secs_arc=(2*math.pi/60)*secs\n    mins_arc=(2*math.pi/60)*mins+secs_arc/60\n    hours_arc=(2*math.pi/12)*hours+mins_arc/12\n        \n    -- Draw hour hand\n    \n    xh=xc+0.7*clock_r*math.sin(hours_arc)\n    yh=yc-0.7*clock_r*math.cos(hours_arc)\n    cairo_move_to(cr,xc,yc)\n    cairo_line_to(cr,xh,yh)\n    \n    cairo_set_line_cap(cr,CAIRO_LINE_CAP_ROUND)\n    cairo_set_line_width(cr,5)\n    cairo_set_source_rgba(cr,1.0,1.0,1.0,1.0)\n    cairo_stroke(cr)\n    \n    -- Draw minute hand\n    \n    xm=xc+clock_r*math.sin(mins_arc)\n    ym=yc-clock_r*math.cos(mins_arc)\n    cairo_move_to(cr,xc,yc)\n    cairo_line_to(cr,xm,ym)\n    \n    cairo_set_line_width(cr,3)\n    cairo_stroke(cr)\n    \n    -- Draw seconds hand\n    \n    if show_seconds then\n        xs=xc+clock_r*math.sin(secs_arc)\n        ys=yc-clock_r*math.cos(secs_arc)\n        cairo_move_to(cr,xc,yc)\n        cairo_line_to(cr,xs,ys)\n    \n        cairo_set_line_width(cr,1)\n        cairo_stroke(cr)\n    end\nend\n\nfunction conky_clock_rings()\n    local function setup_rings(cr,pt)\n        local str=''\n        local value=0\n        \n        str=string.format('${%s %s}',pt['name'],pt['arg'])\n        str=conky_parse(str)\n        \n        value=tonumber(str)\n        pct=value/pt['max']\n        \n        draw_ring(cr,pct,pt)\n    end\n    \n    -- Check that Conky has been running for at least 5s\n\n    if conky_window==nil then return end\n    local cs=cairo_xlib_surface_create(conky_window.display,conky_window.drawable,conky_window.visual, conky_window.width,conky_window.height)\n    \n    local cr=cairo_create(cs)    \n    \n    local updates=conky_parse('${updates}')\n    update_num=tonumber(updates)\n    \n    if update_num>5 then\n        for i in pairs(settings_table) do\n            setup_rings(cr,settings_table[i])\n        end\n    end\n    \n    draw_clock_hands(cr,clock_x,clock_y)\nend"
  },
  {
    "path": ".config/conky/conkyrc",
    "content": "# Conky settings #\nbackground yes\nupdate_interval 1\n\ncpu_avg_samples 2\nnet_avg_samples 2\n\noverride_utf8_locale yes\n\ndouble_buffer yes\nno_buffers yes\n\ntext_buffer_size 2048\n#imlib_cache_size 0\n\ntemperature_unit fahrenheit\n\n# Window specifications #\n\nown_window yes\nown_window_type override\nown_window_transparent yes\nown_window_hints undecorated,sticky,skip_taskbar,skip_pager,below\n\nborder_inner_margin 0\nborder_outer_margin 0\n\nminimum_size 400 1000\nmaximum_width 400\n\nalignment tr\ngap_x 100\ngap_y 80\n\n# Graphics settings #\ndraw_shades no\ndraw_outline no\ndraw_borders no\ndraw_graph_borders no\n\n# Text settings #\nuse_xft yes\nxftfont SF Pro Text:size=8\nxftalpha 0.5\n\nuppercase no\n\ntemperature_unit celsius\n\n\ndefault_color FFFFFF\n\n# Lua Load  #\nlua_load ~/.config/conky/clock_rings.lua\nlua_draw_hook_pre clock_rings\n\nTEXT\n${voffset 450}\n${color FFFFFF}${goto 45}${voffset 35}${cpu cpu0}%\n${color FFFFFF}${goto 45}CPU\n${color FFFFFF}${goto 95}${voffset 45}${memperc}%\n${color FFFFFF}${goto 95}RAM\n${color FFFFFF}${goto 140}${voffset 50}${swapperc}%\n${color FFFFFF}${goto 140}Swap\n${color FFFFFF}${goto 200}${voffset 50}${fs_used_perc /}%\n${color FFFFFF}${goto 200}Disk\n${color FFFFFF}${goto 260}${voffset 55}${downspeed eth0}\n${color FFFFFF}${goto 260}${upspeed eth0}\n${color FFFFFF}${goto 260}Net \n"
  },
  {
    "path": ".config/i3/config",
    "content": "# >>> Plasma Integration <<<\n\n# Try to kill the wallpaper set by Plasma (it takes up the entire workspace\n# and hides everythiing)\nexec --no-startup-id wmctrl -c Plasma\nfor_window [title=\"Desktop — Plasma\"] kill; floating enable; border none\n\n# Avoid tiling latte panel components\nfor_window [title=\"Latte Dock\"] floating enable;\n\n# Avoid tiling popups, dropdown windows from plasma\nfor_window [class=\"plasmashell\"] floating enable\nfor_window [class=\"Plasma\"] floating enable\nfor_window [class=\"krunner\"] floating enable\nfor_window [class=\"Kmix\"] floating enable\nfor_window [class=\"Klipper\"] floating enable\nfor_window [class=\"Plasmoidviewer\"] floating enable\n\n# >>> Window Rules <<<\n\n# >>> Avoid tiling for non-Plasma stuff <<<\nfor_window [window_role=\"pop-up\"] floating enable\nfor_window [window_role=\"bubble\"] floating enable\nfor_window [window_role=\"task_dialog\"] floating enable\nfor_window [window_role=\"Preferences\"] floating enable\nfor_window [window_role=\"About\"] floating enable \nfor_window [window_type=\"dialog\"] floating enable\nfor_window [window_type=\"menu\"] floating enable\nfor_window [title=\"Android Emulator\"] floating enable #android emulator\n\n#****************************************************************************\n\n#\tKeybinds\n\n#****************************************************************************\n\nset $mod Mod4\n\n# Font for window titles. Will also be used by the bar unless a different font\n# is used in the bar {} block below.\nfont pango:monospace 8\n\n# This font is widely installed, provides lots of unicode glyphs, right-to-left\n# text rendering and scalability on retina/hidpi displays (thanks to pango).\n#font pango:DejaVu Sans Mono 8\n\n# Before i3 v4.8, we used to recommend this one as the default:\n# font -misc-fixed-medium-r-normal--13-120-75-75-C-70-iso10646-1\n# The font above is very space-efficient, that is, it looks good, sharp and\n# clear in small sizes. However, its unicode glyph coverage is limited, the old\n# X core fonts rendering does not support right-to-left and this being a bitmap\n# font, it doesn’t scale on retina/hidpi displays.\n\n# Use Mouse+$mod to drag floating windows to their wanted position\nfloating_modifier $mod\n\n# start a terminal\nbindsym $mod+Return exec konsole\n\n# kill focused window\nbindsym $mod+Shift+q kill\n\n# change focus\nbindsym $mod+j focus left\nbindsym $mod+k focus down\nbindsym $mod+l focus up\nbindsym $mod+semicolon focus right\n\n# alternatively, you can use the cursor keys:\nbindsym $mod+Left focus left\nbindsym $mod+Down focus down\nbindsym $mod+Up focus up\nbindsym $mod+Right focus right\n\n# move focused window\nbindsym $mod+Shift+j move left\nbindsym $mod+Shift+k move down\nbindsym $mod+Shift+l move up\nbindsym $mod+Shift+semicolon move right\n\n# alternatively, you can use the cursor keys:\nbindsym $mod+Shift+Left move left\nbindsym $mod+Shift+Down move down\nbindsym $mod+Shift+Up move up\nbindsym $mod+Shift+Right move right\n\n# split in horizontal orientation\nbindsym $mod+h split h\n\n# split in vertical orientation\nbindsym $mod+v split v\n\n# enter fullscreen mode for the focused container\nbindsym $mod+f fullscreen toggle\n\n# change container layout (stacked, tabbed, toggle split)\nbindsym $mod+s layout stacking\nbindsym $mod+w layout tabbed\nbindsym $mod+e layout toggle split\n\n# toggle tiling / floating\nbindsym $mod+Shift+space floating toggle\n\n# change focus between tiling / floating windows\nbindsym $mod+space focus mode_toggle\n\n# focus the parent container\nbindsym $mod+a focus parent\n\n# focus the child container\n#bindsym $mod+d focus child\n\n# Define names for default workspaces for which we configure key bindings later on.\n# We use variables to avoid repeating the names in multiple places.\nset $ws1 \"1\"\nset $ws2 \"2\"\nset $ws3 \"3\"\nset $ws4 \"4\"\nset $ws5 \"5\"\nset $ws6 \"6\"\nset $ws7 \"7\"\nset $ws8 \"8\"\nset $ws9 \"9\"\nset $ws10 \"10\"\n\n# switch to workspace\nbindsym $mod+1 workspace $ws1\nbindsym $mod+2 workspace $ws2\nbindsym $mod+3 workspace $ws3\nbindsym $mod+4 workspace $ws4\nbindsym $mod+5 workspace $ws5\nbindsym $mod+6 workspace $ws6\nbindsym $mod+7 workspace $ws7\nbindsym $mod+8 workspace $ws8\nbindsym $mod+9 workspace $ws9\nbindsym $mod+0 workspace $ws10\n\n# move focused container to workspace\nbindsym $mod+Shift+1 move container to workspace $ws1\nbindsym $mod+Shift+2 move container to workspace $ws2\nbindsym $mod+Shift+3 move container to workspace $ws3\nbindsym $mod+Shift+4 move container to workspace $ws4\nbindsym $mod+Shift+5 move container to workspace $ws5\nbindsym $mod+Shift+6 move container to workspace $ws6\nbindsym $mod+Shift+7 move container to workspace $ws7\nbindsym $mod+Shift+8 move container to workspace $ws8\nbindsym $mod+Shift+9 move container to workspace $ws9\nbindsym $mod+Shift+0 move container to workspace $ws10\n\n# reload the configuration file\nbindsym $mod+Shift+c reload\n# restart i3 inplace (preserves your layout/session, can be used to upgrade i3)\nbindsym $mod+Shift+r restart\n# exit i3 (logs you out of your X session)\nbindsym $mod+Shift+e exec \"i3-nagbar -t warning -m 'You pressed the exit shortcut. Do you really want to exit i3? This will end your X session.' -B 'Yes, exit i3' 'i3-msg exit'\"\n\n# resize window (you can also use the mouse for that)\nmode \"resize\" {\n        # These bindings trigger as soon as you enter the resize mode\n\n        # Pressing left will shrink the window’s width.\n        # Pressing right will grow the window’s width.\n        # Pressing up will shrink the window’s height.\n        # Pressing down will grow the window’s height.\n        bindsym j resize shrink width 10 px or 10 ppt\n        bindsym k resize grow height 10 px or 10 ppt\n        bindsym l resize shrink height 10 px or 10 ppt\n        bindsym semicolon resize grow width 10 px or 10 ppt\n\n        # same bindings, but for the arrow keys\n        bindsym Left resize shrink width 10 px or 10 ppt\n        bindsym Down resize grow height 10 px or 10 ppt\n        bindsym Up resize shrink height 10 px or 10 ppt\n        bindsym Right resize grow width 10 px or 10 ppt\n\n        # back to normal: Enter or Escape or $mod+r\n        bindsym Return mode \"default\"\n        bindsym Escape mode \"default\"\n        bindsym $mod+r mode \"default\"\n}\n\nbindsym $mod+r mode \"resize\"\n\n\n# rofi\nbindsym $mod+d exec rofi -show drun\n\n# flash current window\nbindsym $mod+n exec --no-startup-id flash_window\n\n#*********************************************************************************\n\n#\tStartup\n\n#********************************************************************************\n\nexec --no-startup-id feh --bg-scale ~/Documents/background.JPG\nexec --no-startup-id compton\nexec --no-startup-id ~/.scripts/feh-blur -b 12 -D 0\nexec --no-startup-id flashfocus\n#exec --no-startup-id conky -c ~/.config/conky/conkyrc\n\n#********************************************************************************\n\n#\tAppearance\n\n#********************************************************************************\n\n# Theme colors\n# class                   border  backgr. text    indic.   child_border\nclient.focused          #4c7899 #285577 #ffffff #2e9ef4   #285577\nclient.focused_inactive #333333 #5f676a #ffffff #484e50   #5f676a\nclient.unfocused        #333333 #222222 #888888 #292d2e   #222222\nclient.urgent           #2f343a #900000 #ffffff #900000   #900000\nclient.placeholder      #000000 #0c0c0c #ffffff #000000   #0c0c0c\n\n# Configure border style <normal|1pixel|pixel xx|none|pixel>\nnew_window none\nnew_float normal\n\n# Hide borders\nhide_edge_borders none\n\n# change borders\nbindsym $mod+y border none\nbindsym $mod+u border pixel 1\nbindsym $mod+i border normal\n\n\n#############################\n### settings for i3-gaps: ###\n#############################\n\n# Set inner/outer gaps\ngaps inner 15\ngaps outer 5\n\n# Activate smart borders (always)\nsmart_borders on\n"
  },
  {
    "path": ".config/rofi/config.rasi",
    "content": "configuration {\n    display-drun:                   \"Apps\";\n    display-window:                 \"Window\";\n    show-icons:true;\n}\n \n* {\n    lines: 15;\n    columns: 1;\n    background-color: #00000065;\n    border-color: #00000000;\n    text-color: #EFEFEF;\n    font: \"SF Pro Text 16\";\n}\n \n#window {\n    border: 0;\n    border-radius: 4px;\n    padding: 40;\n    width: 30%;\n    height: 50%;\n}\n \n#mainbox {\n    background-color: #00000000;\n    children: [inputbar, listview];\n    spacing: 10px;\n    /*margin: 20%;*/\n    padding: 30px 0;\n    border: 1px;\n    border-color: @base0D;\n}\n \n \n#listview {\n    background-color: #00000000;\n    fixed-height: 0;\n    border: 0px;\n    spacing: 5px;\n    scrollbar: false;\n    padding: 10px 10px 0px;\n}\n \n#element {\n    background-color: #00000000;\n    border: 0;\n    border-radius: 15px;\n    padding: 3 0  3 4 ;\n}\n \n#element selected {\n    background-color: #00a0e6;\n    text-color: #EFEFEF;\n}\n \n \n#inputbar {\n    children:   [ prompt,textbox-prompt-colon,entry,case-indicator ];\n    background-color: #00000000;\n}\n \n#case-indicator {\n    background-color: #00000000;\n    spacing:    0;\n}\n#entry {\n    background-color: #00000000;\n    spacing:    0;\n}\n#prompt {\n    background-color: #00000000;\n    spacing:    0;\n}\n \n#textbox-prompt-colon {\n    background-color: #00000000;\n    expand:     false;\n    str:        \":\";\n    margin:     0px 0.3em 0em 0em ;\n}\n\n"
  },
  {
    "path": ".config/rofi/config.rasiclear",
    "content": "configuration {\n/*\tmodi: \"window,run,ssh\";*/\n\twidth: 1920;\n\tlines: 20;\n/*\tcolumns: 1;*/\n/*\tfont: \"mono 12\";*/\n/*\tbw: 1;*/\n\tlocation: 0;\n\tpadding: 50;\n/*\tyoffset: 0;*/\n/*\txoffset: 0;*/\n/*\tfixed-num-lines: true;*/\n\tshow-icons: true;\n/*\tterminal: \"rofi-sensible-terminal\";*/\n/*\tssh-client: \"ssh\";*/\n/*\tssh-command: \"{terminal} -e {ssh-client} {host}\";*/\n/*\trun-command: \"{cmd}\";*/\n/*\trun-list-command: \"\";*/\n/*\trun-shell-command: \"{terminal} -e {cmd}\";*/\n/*\twindow-command: \"xkill -id {window}\";*/\n/*\twindow-match-fields: \"all\";*/\n/*\ticon-theme: ;*/\n/*\tdrun-match-fields: \"name,generic,exec,categories\";*/\n/*\tdrun-show-actions: false;*/\n/*\tdrun-display-format: \"{name} [<span weight='light' size='small'><i>({generic})</i></span>]\";*/\n/*\tdisable-history: false;*/\n/*\tsort: false;*/\n/*\tsorting-method: ;*/\n/*\tcase-sensitive: false;*/\n/*\tcycle: true;*/\n\tsidebar-mode: true;\n\teh: 1;\n/*\tauto-select: false;*/\n/*\tparse-hosts: false;*/\n/*\tparse-known-hosts: true;*/\n/*\tcombi-modi: \"window,run\";*/\n/*\tmatching: \"normal\";*/\n/*\ttokenize: true;*/\n/*\tm: \"-5\";*/\n\tline-margin: 5;\n/*\tline-padding: 1;*/\n/*\tfilter: ;*/\n/*\tseparator-style: \"dash\";*/\n\thide-scrollbar: true;\n/*\tfullscreen: false;*/\n/*\tfake-transparency: false;*/\n/*\tdpi: -1;*/\n/*\tthreads: 0;*/\n/*\tscrollbar-width: 8;*/\n/*\tscroll-method: 0;*/\n/*\tfake-background: \"screenshot\";*/\n/*\twindow-format: \"{w}    {i}{c}   {t}\";*/\n/*\tclick-to-exit: true;*/\n/*\tshow-match: true;*/\n/*\ttheme: ;*/\n/*\tcolor-normal: ;*/\n/*\tcolor-urgent: ;*/\n/*\tcolor-active: ;*/\n/*\tcolor-window: ;*/\n/*\tmax-history-size: 25;*/\n/*\tcombi-hide-mode-prefix: false;*/\n/*\tmatching-negate-char: '-' /* unsupported */;*/\n/*\tpid: \"/run/user/1000/rofi.pid\";*/\n/*\tdisplay-window: ;*/\n/*\tdisplay-windowcd: ;*/\n/*\tdisplay-run: ;*/\n/*\tdisplay-ssh: ;*/\n/*\tdisplay-drun: ;*/\n/*\tdisplay-combi: ;*/\n/*\tdisplay-keys: ;*/\n/*\tkb-primary-paste: \"Control+V,Shift+Insert\";*/\n/*\tkb-secondary-paste: \"Control+v,Insert\";*/\n/*\tkb-clear-line: \"Control+w\";*/\n/*\tkb-move-front: \"Control+a\";*/\n/*\tkb-move-end: \"Control+e\";*/\n/*\tkb-move-word-back: \"Alt+b,Control+Left\";*/\n/*\tkb-move-word-forward: \"Alt+f,Control+Right\";*/\n/*\tkb-move-char-back: \"Left,Control+b\";*/\n/*\tkb-move-char-forward: \"Right,Control+f\";*/\n/*\tkb-remove-word-back: \"Control+Alt+h,Control+BackSpace\";*/\n/*\tkb-remove-word-forward: \"Control+Alt+d\";*/\n/*\tkb-remove-char-forward: \"Delete,Control+d\";*/\n/*\tkb-remove-char-back: \"BackSpace,Shift+BackSpace,Control+h\";*/\n/*\tkb-remove-to-eol: \"Control+k\";*/\n/*\tkb-remove-to-sol: \"Control+u\";*/\n/*\tkb-accept-entry: \"Control+j,Control+m,Return,KP_Enter\";*/\n/*\tkb-accept-custom: \"Control+Return\";*/\n/*\tkb-accept-alt: \"Shift+Return\";*/\n/*\tkb-delete-entry: \"Shift+Delete\";*/\n/*\tkb-mode-next: \"Shift+Right,Control+Tab\";*/\n/*\tkb-mode-previous: \"Shift+Left,Control+ISO_Left_Tab\";*/\n/*\tkb-row-left: \"Control+Page_Up\";*/\n/*\tkb-row-right: \"Control+Page_Down\";*/\n/*\tkb-row-up: \"Up,Control+p,ISO_Left_Tab\";*/\n/*\tkb-row-down: \"Down,Control+n\";*/\n/*\tkb-row-tab: \"Tab\";*/\n/*\tkb-page-prev: \"Page_Up\";*/\n/*\tkb-page-next: \"Page_Down\";*/\n/*\tkb-row-first: \"Home,KP_Home\";*/\n/*\tkb-row-last: \"End,KP_End\";*/\n/*\tkb-row-select: \"Control+space\";*/\n/*\tkb-screenshot: \"Alt+S\";*/\n/*\tkb-toggle-case-sensitivity: \"grave,dead_grave\";*/\n/*\tkb-toggle-sort: \"Alt+grave\";*/\n/*\tkb-cancel: \"Escape,Control+g,Control+bracketleft\";*/\n/*\tkb-custom-1: \"Alt+1\";*/\n/*\tkb-custom-2: \"Alt+2\";*/\n/*\tkb-custom-3: \"Alt+3\";*/\n/*\tkb-custom-4: \"Alt+4\";*/\n/*\tkb-custom-5: \"Alt+5\";*/\n/*\tkb-custom-6: \"Alt+6\";*/\n/*\tkb-custom-7: \"Alt+7\";*/\n/*\tkb-custom-8: \"Alt+8\";*/\n/*\tkb-custom-9: \"Alt+9\";*/\n/*\tkb-custom-10: \"Alt+0\";*/\n/*\tkb-custom-11: \"Alt+exclam\";*/\n/*\tkb-custom-12: \"Alt+at\";*/\n/*\tkb-custom-13: \"Alt+numbersign\";*/\n/*\tkb-custom-14: \"Alt+dollar\";*/\n/*\tkb-custom-15: \"Alt+percent\";*/\n/*\tkb-custom-16: \"Alt+dead_circumflex\";*/\n/*\tkb-custom-17: \"Alt+ampersand\";*/\n/*\tkb-custom-18: \"Alt+asterisk\";*/\n/*\tkb-custom-19: \"Alt+parenleft\";*/\n/*\tkb-select-1: \"Super+1\";*/\n/*\tkb-select-2: \"Super+2\";*/\n/*\tkb-select-3: \"Super+3\";*/\n/*\tkb-select-4: \"Super+4\";*/\n/*\tkb-select-5: \"Super+5\";*/\n/*\tkb-select-6: \"Super+6\";*/\n/*\tkb-select-7: \"Super+7\";*/\n/*\tkb-select-8: \"Super+8\";*/\n/*\tkb-select-9: \"Super+9\";*/\n/*\tkb-select-10: \"Super+0\";*/\n/*\tml-row-left: \"ScrollLeft\";*/\n/*\tml-row-right: \"ScrollRight\";*/\n/*\tml-row-up: \"ScrollUp\";*/\n/*\tml-row-down: \"ScrollDown\";*/\n/*\tme-select-entry: \"MousePrimary\";*/\n/*\tme-accept-entry: \"MouseDPrimary\";*/\n/*\tme-accept-custom: \"Control+MouseDPrimary\";*/\n}"
  },
  {
    "path": ".config/spicetify/Themes/custom_theme/color.ini",
    "content": "[Base]\n; Light green on Dark Blue background\nmain_fg                               = 00FF9C\nsecondary_fg                          = DEDEDE\nmain_bg                               = 2E2837\nsidebar_and_player_bg                 = 2E2837\ncover_overlay_and_shadow              = 000000\nindicator_fg_and_button_bg            = 00FF9C\npressing_fg                           =  FF5C86\nslider_bg                             = 3F3C45\nsidebar_indicator_and_hover_button_bg = 00BF76\nscrollbar_fg_and_selected_row_bg      = 615670\npressing_button_fg                    = DEDEDE\npressing_button_bg                    = 383145\nselected_button                       = 00BF76\nmiscellaneous_bg                      = 3F3C45\nmiscellaneous_hover_bg                = 383145\npreserve_1                            = FFFFFF\n"
  },
  {
    "path": ".config/spicetify/Themes/custom_theme/user.css",
    "content": ":root {\n\t--bar-height: 120px;\n}\n\n/*Round corner cover image*/\n.card-image,\n.card-placeholder-wrapper,\n.card-image-content-wrapper,\n.Card:not(.Card--artist) .Card__image,\n.Card:not(.Card--artist) .Card__image-wrapper {\n\tborder-radius: 10px !important;\n\toverflow: hidden !important\n}\n\n/*Hide some annoying elements like profile name and pic, upgrade button and device connect bar at bottom, new playlist button*/\n.profile.content-top-bar__profile-link,\n.upgrade-button,\n.view-player .remote-playback-bar,\n.NewPlaylistButton {\n\tdisplay: none !important;\n}\n\n\n/*Exclude these elements from draggable property because it stops them from clickable*/\n.profile-items-container,\n.profile {\n\t-webkit-app-region: no-drag !important;\n}\n\n/*Thinner scrollbar*/\n::-webkit-scrollbar {\n\theight: 6px !important;\n\twidth: 6px !important;\n\tbackground-color: transparent;\n}\n\n/*Round corner scrollbar*/\n::-webkit-scrollbar-thumb {\n\tborder-radius: 3px !important;\n}\n\n/*Hide top and bottom buttons of scrollbar */\n/*who uses those, lol*/\n::-webkit-scrollbar-button {\n\tdisplay: none !important;\n}\n\n/*Hide cover image overlay*/\n.card-overlay {\n\tvisibility: hidden !important;\n}\n\n/*Lift up cover when hovering on it*/\n.card-image-content-wrapper,\n.Card:not(.Card--artist) .Card__image-wrapper {\n\ttransition-property: transform, box-shadow !important;\n\ttransition-duration: 1s !important;\n\ttransition-timing-function: cubic-bezier(.3,0,0,1) !important;\n\tbox-shadow: 0 5px 20px rgba(0,0,0,0.1);\n}\n\n.card-image-hit-area:not(.no-hover):hover .card-image-content-wrapper,\n.Card:not(.Card--artist) .Card__image-hit-area-counter-scale:hover .Card__image-wrapper {\n\ttransform: translateY(-10px);\n\tbox-shadow: 0 15px 30px rgba(0,0,0,0.3);\n}\n\n.card-image-hit-area .card-button-add,\n.card-image-hit-area .card-button-play,\n.card-image-hit-area .card-button-more,\n.Card__image-hit-area .card-button-add,\n.Card__image-hit-area .card-button-play,\n.Card__image-hit-area .card-button-more,\n.Card__image-hit-area .Card__play-button,\n.Card__image-hit-area .Card__add-button,\n.Card__image-hit-area .Card__more-button,\n.Card__image-hit-area .Card__overlay  {\n\ttransition-property: all !important;\n\ttransition-duration: 1s !important;\n\ttransition-timing-function: cubic-bezier(.3,0,0,1) !important;\n\topacity: 0 !important;\n}\n.card-image-hit-area:not(.no-hover):hover .card-button-add,\n.card-image-hit-area:not(.no-hover):hover .card-button-play,\n.card-image-hit-area:not(.no-hover):hover .card-button-more,\n.Card__image-hit-area:not(.no-hover):hover .card-button-add,\n.Card__image-hit-area:not(.no-hover):hover .card-button-play,\n.Card__image-hit-area:not(.no-hover):hover .card-button-more {\n\topacity: 1 !important;\n\ttransform: translateY(-10px);\n}\n\n.Card__image-hit-area:hover .Card__play-button,\n.Card__image-hit-area:hover .Card__add-button,\n.Card__image-hit-area:hover .Card__more-button,\n.Card__image-hit-area:hover .Card__overlay {\n\topacity: 1 !important;\n}\n\n.glue-page-header__content .glue-page-header__image-inner {\n\tborder-radius: 10px;\n\tbox-shadow: unset !important;\n}\n\n.glue-page-header__full-description-overlay {\n\tbox-shadow: unset !important;\n}\n\n.card-placeholder-wrapper {\n\tbackground: transparent !important;\n}\n\n/*Spice up search input background*/\n.SearchInput {\n\tcolor: var(--modspotify_main_fg);\n}\n.SearchInput__input {\n\tcolor: var(--modspotify_secondary_fg);\n\tbackground-color: rgba(var(--modspotify_rgb_scrollbar_fg_and_selected_row_bg), 0.5) !important;\n\tborder-radius: 4px !important;\n\tpadding-left: 34px;\n}\n\n.sidebar:hover .sidebar-navbar.sidebar-scroll-element {\n\topacity: 1!important;\n}\n\n.view-player .player-controls-container,\n.view-player .player-controls-container .controls {\n\toverflow: visible !important;\n}\n\n.view-player .player-controls-container .controls .button-play{\n\theight:50px !important;\n\tborder-radius:50px !important;\n\tbackground: transparent !important;\n\tbox-shadow:0 0 0 0 !important;\n\twidth:50px !important;\n\toverflow: visible !important;\n\tbox-shadow: 0 4px 15px rgba(0,0,0,0.2) !important;\n\ttransition:none 0.3s cubic-bezier(.3,0,.7,1);\n}\n\n.view-player .player-controls-container .controls .button-play:before{\n\tfont-size:18px !important;\n\tpadding-left: 16px !important;\n\tpadding-top: 9px !important;\n}\n\n.view-player .player-controls-container .controls .button-play:after {\n\tbox-shadow: unset !important;\n}\n\n.view-player .player-controls-container {\n\tposition: absolute !important;\n\twidth: 100% !important;\n}\n\n.view-player .player-controls-container .controls {\n\twidth: 100% !important;\n\theight: 100%  !important;\n\talign-items: center !important;\n\tmargin-top : 0px !important;\n}\n\n/*\nHide the song duration and elapsed text. I dont know where to put those so I just hide them\n*/\n.view-player .player-controls-container .progress-container .elapsed,\n.view-player .player-controls-container .progress-container .remaining {\n\tdisplay: none !important;\n}\n\n/* Add round corner for Gerne and Mood cards */\n.gc-image-container,\n.gc-image {\n\tborder-radius: 10px !important;\n}\n\n/*\nCollage of 3 album covers is usually seen in Browse and Chart.\n*/\n.card-puff__image-wrapper,\n.card-puff__info-container,\n.card-puff__card-image {\n\tborder-radius: 10px !important;\n}\n\n.card-puff__image-wrapper {\n  overflow: visible;\n}\n\n.card-puff__card-image {\n\tbox-shadow: 5px 0 30px rgba(0,0,0,0.7);\n\toverflow: visible;\n}\n\n.card-puff__title-container {\n\tbackground-color: transparent !important;\n}\n\n.card-puff.pressed .card-puff__image-wrapper,\n.card-puff.pressed .card-puff__info-container {\n\topacity: 0.7 !important;\n}\n\n.card-puff__title {\n\tpadding: 5px 10px 5px 10px !important;\n\tbackground-color: var(--modspotify_main_bg) !important;\n\tborder-radius: 4px;\n\tborder: 2px solid var(--modspotify_main_fg);\n}\n\n/*\nWe use round corner on cover so they look weird in original\nform, so I move last cover to the right 20px and first one to the left 20px\n*/\n.card-puff__card-image:nth-child(1) {\n\tright: 20px;\n\tbox-shadow: 0 0 0 0 !important;\n}\n\n.card-puff__card-image:nth-child(3) {\n\tleft: 20px;\n}\n\n.grid-overlay-label {\n\ttop: 140px !important;\n}\n\n/**/\n.glue-page-header__background-color {\n\tbackground-image: none !important;\n\tbackground: var(--modspotify_main_bg);\n}\n\n/* .glue-page-header__sticky {\n  \tpadding-top: 60px !important;\n} */\n\n/*\nRemove those title, cringy description and\nmeaningless followers number\n*/\n\n.carousel .card-info-subtitle-description,\n.carousel .card-info-subtitle-metadata,\n.carousel .card:not(.card-type-station).card-info-title,\n.carousel .card.card-type-playlist.image-loaded .card-info-subtitle-description,\n.carousel .card.card-type-playlist.image-loaded .card-info-subtitle-metadata {\n\tdisplay: none !important;\n}\n\n\n/*\nIn top of Browse usually has bunch of Playlist or Album cards,\nand they has .carousel as a wrapper and it hides anything that\noverflows from its zone, aka our shadow and lifting animation.\n*/\n.carousel {\n\toverflow: visible !important;\n}\n\n/*\nButton with text Play\n*/\n.button.button-green,\n.GlueButton.GlueButton--style-green {\n\tcolor: var(--modspotify_main_bg) !important;\n}\n\n/*\nChange text color in playlist\n*/\n.tl-explicit .label,\n.tl-premium .label,\n.tl-cell:not(.tl-number),\n.tl-cell a:link,\n.tl-highlight {\n  color: var(--modspotify_secondary_fg);\n}\n\n.card-type-album .card-info-title,\n.card-type-track .card-info-title,\n.card-type-collection-album .card-info-title,\n.card-type-episode .card-info-title {\n  \tfont-size: 15px;\n  \tfont-weight: 900 !important;\n\ttext-align: center !important;\n\twidth: 100% !important;\n}\n\n.card-type-album .card-info-subtitle-links,\n.card-type-track .card-info-subtitle-links,\n.card-type-collection-album .card-info-subtitle-links,\n.card-type-episode .card-info-subtitle-links {\n\ttext-align: center !important;\n\twidth: 100% !important;\n}\n\n.tracklist-station-container::after {\n\tbackground: transparent !important;\n}\n\n.GlueHeader__background-overlay {\n\tbackground: var(--modspotify_main_bg) !important;\n}\n\n/* Move navigation buttons and search field to the right and down */\n.browser-navigation-top-bar {\n\tmargin-left: 40px !important;\n\tmargin-top: 15px !important;\n}\n\n.SearchInput__input,\n.SearchInput__searchIcon,\n.SearchInput__clearButton {\n\tmargin-top: 15px !important;\n}\n\n.content-top-bar__profile-menu-button {\n\tmargin-top: 15px !important;\n}\n\n.body-container--windows:not(.with-buddy-list):not(.messagebar) .content-top-bar__profile {\n\tmargin-right: 110px !important;\n\tmargin-top: -5px;\n}\n\n/* Spice up Fullscreen mode */\n#view-player .album-art .album-art__image {\n\tborder-radius: 30px !important;\n\tbox-shadow: 0 10px 70px rgba(var(--modspotify_rgb_cover_overlay_and_shadow),.5) !important;\n}\n\n#view-player .album-art .album-art__image .card-image-content-wrapper,\n#view-player .album-art .album-art__image .card-image-content-wrapper .card-image {\n\tborder-radius: 30px !important;\n}\n\n#video-player .album-art__foreground {\n\tflex-direction: row;\n\ttext-align: left;\t\n}\n\n#video-player .album-art__background {\n\tbackground-color: initial;\n}\n\n#video-player .album-art__track-details {\n\tpadding-left: 50px;\n\tline-height: initial;\n}\n\n#video-player .album-art__track-title {\n\tfont-size: 84px;\n\tmargin-top: 0;\n\tline-height: initial;\n}\n\n#video-player .album-art__artist-name {\n\tfont-size: 54px;\n\tmargin-top: 0;\n\tline-height: initial;\n}\n\n/* Daily mixes */\n.carousel .card-info-wrapper.card-info-with-description.card-info-with-metadata {\n\theight: 50px !important;\n}\n\n/* Remove section divider */\n.section-divider {\n\tborder-bottom: 0 !important;\n}\n\n/* Adjust Position of border active tab in Nav bar at top\nand add little glowing effect\n*/\n.nav.navbar-nav {\n\toverflow: hidden !important;\n}\n\n.nav.navbar-nav a {\n\toverflow: visible !important;\n}\n\n.nav.navbar-nav a::after {\n\tbottom: 0px !important;\n\twidth: 100% !important;\n}\n\n.nav.navbar-nav .active  a::after{\n\tbox-shadow: 0 0px 20px !important;\n}\n\n.nav.navbar-nav a:focus:not(.button):active::after{\n\tbackground-color: var(--modspotify_pressing_fg) !important;\n}\n\n/* Notification bar */\n#content-wrapper #view-message-bar {\n\tposition: absolute !important;\n\twidth: calc(100% - 160px) !important;\n\tmargin-left: 80px !important;\n\tborder-radius: 0 0 10px 10px !important;\n}\n\n/* Small cover Big cover mechanism */\n.now-playing.cover-size-transition.active.image-expanded #now-playing-image-small {\n    display: none;\n}\n\n.now-playing.cover-size-transition.active.image-expanded .cover-image-link-wrapper {\n\tflex: 0 1 10px;\n}\n\n#view-now-playing a.image {\n\toverflow: visible !important;\n}\n\n/* Profile arrow in top left */\n.content-top-bar__profile-menu-button .dropdown {\n\tposition: fixed !important;\n    top: 10px !important;\n\t-webkit-app-region: no-drag !important;\n}\n\n/* [WINDOWS] Change Profile menu horizontal position */\nbody.body-container--windows .content-top-bar__profile-menu-button .dropdown {\n\tright: 190px !important;\n}\n\nbody:not(.body-container--windows) .content-top-bar__profile-menu-button .dropdown {\n\tright: 20px !important;\n}\n\n/* Small tooltip */\n#tooltip {\n\tbox-shadow: 0 0 10px rgba(0,0,0,0.2) !important;\n\tborder-radius: 5px !important;\n\tborder: 2px solid var(--modspotify_main_fg);\n\tpadding: 10px 10px;\n}\n\n.tooltip-arrow-top, .tooltip-arrow-bottom {\n\tdisplay: none !important;\n}\n\n.lyrics-lines-container,\n.message-container {\n\tcolor: #FFFFFF !important;\n}\n\n/* Home page */\n.GlueCarousel__grid-wrapper::-webkit-scrollbar-thumb {\n\tdisplay: none;\n}\n\n.GlueCard__info-wrapper,\n.Card__info-wrapper {\n\tmargin-bottom: 30px;\n}\n\n.card-horizontal-interior-wrapper .card-info-title {\n\ttext-align: start !important;\n}\n\n.tl-row.selected:hover .tl-cell {\n\tbackground: var(--modspotify_scrollbar_fg_and_selected_row_bg) !important;\n}\n\n.GlueTableRow--is-selected {\n\tbackground-color: var(--modspotify_scrollbar_fg_and_selected_row_bg) !important;\n}\n\n.tracklist-podcast .tl-progress .row-progress__bar {\n    background-color: var(--modspotify_main_fg);\n}\n\n.Header__background-color{\n\tbackground-color: var(--modspotify_main_bg) !important;\n}\n\n.Button--style-green,\n.button.button-green, .button.button-white {\n\tborder-radius: 4px;\n\tcolor: var(--modspotify_main_bg) !important;\n}\n\n.glue-page-header:not(.glue-page-header--album):not(.glue-page-header--playlist):not(.glue-page-header--artist):not(.glue-page-header--dailymix):not(.glue-page-header--user):not(.glue-page-header--show)\n\t.glue-page-header__content-inner .glue-page-header__title-text,\n.HomeHeader .Header__content-inner .Header__title-text-inner,\n.MadeForYouHeader .Header__content-inner .Header__title-text-inner,\n.RecentlyPlayedPage__header .Header__content-inner .Header__title-text-inner {\n\tbackground-color: var(--modspotify_main_bg);\n\tpadding: 5px 20px;\n\tborder: 5px solid var(--modspotify_main_fg) !important;\n\tborder-radius: 6px;\n\tbox-shadow: 0 4px 12px 0 rgba(var(--modspotify_rgb_cover_overlay_and_shadow),.2);\n\ttext-transform: uppercase;\n}\n\n.glue-page-header.glue-page-header--album .glue-page-header__content-inner .glue-page-header__title,\n.glue-page-header.glue-page-header--artist .glue-page-header__content-inner .glue-page-header__title,\n.glue-page-header.glue-page-header--dailymix .glue-page-header__content-inner .glue-page-header__title,\n.glue-page-header.glue-page-header--playlist .glue-page-header__content-inner .glue-page-header__title {\n\tmargin-top: 10px;\n}\n\nspan.glue-page-header__title-text {\n\tcolor: var(--modspotify_main_fg);\n}\n\n.glue-page-header .glue-page-header__content-inner .glue-page-header__button {\n\tmargin-top: 40px;\n}\n\n.glue-page-header__content-inner,\n.glue-page-header__data,\n.glue-page-header__title,\n.Header__content-inner,\n.Header__data,\n.Header__title,\n.Header__title-text,\n.Header__title-text-inner {\n\toverflow: visible !important;\n}\n\n/*Force player bar to has fixed height*/\n.view-player {\n\theight: var(--bar-height) !important;\n\tborder-top: 0;\n}\n\n.view-player .now-playing {\n\toverflow: unset;\n}\n\n.view-player .cover-image-container {\n\tposition: fixed !important;\n\tleft: 0;\n\tbottom: 0;\n}\n\n.view-player .now-playing .cover-image-link,\n.view-player .now-playing .cover-image-link figure {\n\twidth: var(--bar-height);\n\theight: var(--bar-height);\n}\n\n#now-playing-image-small .cover-image {\n    width: var(--bar-height);\n    height: var(--bar-height);\n}\n\n.view-player .now-playing .cover-image-link-wrapper {\n\tflex: 0 1 calc(var(--bar-height) + 10px);\n}\n\n.text-container {\n\tz-index: 3;\n}\n\n.view-player .now-playing-container .button-add {\n\tcolor: var(--modspotify_main_fg) !important;\n}\n\n.progress-container .progress-bar,\n.progress-container .inner {\n\ttop: 0 !important;\n\tmargin-top: 0 !important;\n\theight: 5px;\n}\n\n.progress-container .progress-bar-wrapper {\n\ttop: 0 !important;\n\theight: 5px;\n}\n\n.progress-container {\n\tposition: fixed !important;\n\twidth: 100% !important;\n\tbottom: var(--bar-height) !important;\n\tmargin : 0 !important;\n}\n\n.progress-container .inner {\n\tborder-radius: 0 2px 2px 0 !important;\n\tbackground-color: var(--modspotify_main_fg) !important;\n\tbox-shadow: 0 2px 2px 0 var(--modspotify_main_fg);\n}\n\n.glue-page-header__p2s-details,\n.glue-page-header__p2s-followers {\n\tdisplay: none;\n}\n\n.context-menu {\n\tborder: 2px solid var(--modspotify_main_fg);\n\tbox-shadow: 0 4px 12px 0 rgba(var(--modspotify_rgb_cover_overlay_and_shadow),.2);\n\tborder-radius: 7px !important;\n\toverflow: hidden;\n}\n\n#menu-wrapper ::-webkit-scrollbar {\n\tdisplay: none;\n}\n\n#menu-wrapper {\n\tborder-right: 3px solid black;\n    border-image: linear-gradient(0deg, transparent , var(--modspotify_scrollbar_fg_and_selected_row_bg) 40%, var(--modspotify_scrollbar_fg_and_selected_row_bg) 60%, transparent 90%) 2 90%;\n}\n\n.main-view-wrapper {\n\toverflow: unset;\n}\n\n.Button--style-icon-stroke:after,\n.Button--style-icon-stroke:hover:after,\n.Button--style-icon-stroke,\n.glue-page-header__button .button-icon-with-stroke,\n.glue-page-header__button .button-icon-with-stroke::after {\n\tbox-shadow: unset;\n}\n\n.glue-page-header.glue-page-header--artist .glue-page-header__label {\n\tpadding-top: 10px;\n}\n\n.glue-page-header.glue-page-header--artist.has-custom-image .glue-page-header__label {\n\tpadding-top: 8px;\n}\n\n.glue-page-header__content .glue-page-header__label {\n\tmargin-left: -2px;\n\tz-index: 2;\n}\n\n.glue-page-header__label span,\n.Header__label span {\n\tbackground-color: var(--modspotify_main_fg);\n    color: var(--modspotify_main_bg);\n    padding: 2px 10px;\n}\n\n.glue-page-header__label .header-verified-check {\n\tbackground-color: transparent;\n}\n\nbody.remotebar .view-player .player-bar-wrapper {\n\theight: 100%;\n}\n\n.SidebarListItem--is-active:after,\n.RootlistItem--is-active:after,\n/* For Linux */ #view-navigation-bar .item.active:after {\n\tbackground-color: transparent;\n\tbackground-image: linear-gradient(90deg, var(--modspotify_sidebar_indicator_and_hover_button_bg) , transparent);\n\topacity: 0.2;\n\tbottom: unset;\n\ttop: 5%;\n\theight: 90%;\n\twidth: 100%\n}\n\n.Header__image-inner {\n\tbox-shadow: unset;\n} \n"
  },
  {
    "path": ".config/spicetify/config.ini",
    "content": "[Setting]\noverwrite_assets = 0\nspotify_path     = /opt/spotify\nprefs_path       = /home/will/.config/spotify/prefs\ncurrent_theme    = custom_theme\ncolor_scheme     = \ninject_css       = 1\nreplace_colors   = 1\n\n[Preprocesses]\ndisable_sentry     = 1\ndisable_ui_logging = 1\nremove_rtl_rule    = 1\nexpose_apis        = 1\n\n[AdditionalOptions]\nlyric_always_show            = 0\nlyric_force_no_sync          = 0\nnew_feedback_ui              = 0\nsearch_in_sidebar            = 0\nextensions                   = \nexperimental_features        = 0\nfastUser_switching           = 0\nhome                         = 0\nvisualization_high_framerate = 0\ncustom_apps                  = \nmade_for_you_hub             = 0\nradio                        = 0\nsong_page                    = 0\n\n; DO NOT CHANGE!\n[Backup]\nversion = 1.1.10.546.ge08ef575\n\n"
  },
  {
    "path": ".scripts/wm.sh",
    "content": "# Use i3 as the window manager instead of Kwin \nexport KDEWM=/usr/bin/i3\n"
  },
  {
    "path": ".zshrc",
    "content": "# If you come from bash you might have to change your $PATH.\n# export PATH=$HOME/bin:/usr/local/bin:$PATH\n\n# Path to your oh-my-zsh installation.\n  export ZSH=\"/home/willmckinnon/.oh-my-zsh\"\n\n# Set name of the theme to load --- if set to \"random\", it will\n# load a random theme each time oh-my-zsh is loaded, in which case,\n# to know which specific one was loaded, run: echo $RANDOM_THEME\n# See https://github.com/robbyrussell/oh-my-zsh/wiki/Themes\nZSH_THEME=\"agnoster\"\n\n# Set list of themes to pick from when loading at random\n# Setting this variable when ZSH_THEME=random will cause zsh to load\n# a theme from this variable instead of looking in ~/.oh-my-zsh/themes/\n# If set to an empty array, this variable will have no effect.\n# ZSH_THEME_RANDOM_CANDIDATES=( \"robbyrussell\" \"agnoster\" )\n\n# Uncomment the following line to use case-sensitive completion.\n# CASE_SENSITIVE=\"true\"\n\n# Uncomment the following line to use hyphen-insensitive completion.\n# Case-sensitive completion must be off. _ and - will be interchangeable.\n# HYPHEN_INSENSITIVE=\"true\"\n\n# Uncomment the following line to disable bi-weekly auto-update checks.\n# DISABLE_AUTO_UPDATE=\"true\"\n\n# Uncomment the following line to automatically update without prompting.\n# DISABLE_UPDATE_PROMPT=\"true\"\n\n# Uncomment the following line to change how often to auto-update (in days).\n# export UPDATE_ZSH_DAYS=13\n\n# Uncomment the following line if pasting URLs and other text is messed up.\n# DISABLE_MAGIC_FUNCTIONS=true\n\n# Uncomment the following line to disable colors in ls.\n# DISABLE_LS_COLORS=\"true\"\n\n# Uncomment the following line to disable auto-setting terminal title.\n# DISABLE_AUTO_TITLE=\"true\"\n\n# Uncomment the following line to enable command auto-correction.\n# ENABLE_CORRECTION=\"true\"\n\n# Uncomment the following line to display red dots whilst waiting for completion.\n# COMPLETION_WAITING_DOTS=\"true\"\n\n# Uncomment the following line if you want to disable marking untracked files\n# under VCS as dirty. This makes repository status check for large repositories\n# much, much faster.\n# DISABLE_UNTRACKED_FILES_DIRTY=\"true\"\n\n# Uncomment the following line if you want to change the command execution time\n# stamp shown in the history command output.\n# You can set one of the optional three formats:\n# \"mm/dd/yyyy\"|\"dd.mm.yyyy\"|\"yyyy-mm-dd\"\n# or set a custom format using the strftime function format specifications,\n# see 'man strftime' for details.\n# HIST_STAMPS=\"mm/dd/yyyy\"\n\n# Would you like to use another custom folder than $ZSH/custom?\n# ZSH_CUSTOM=/path/to/new-custom-folder\n\n# Which plugins would you like to load?\n# Standard plugins can be found in ~/.oh-my-zsh/plugins/*\n# Custom plugins may be added to ~/.oh-my-zsh/custom/plugins/\n# Example format: plugins=(rails git textmate ruby lighthouse)\n# Add wisely, as too many plugins slow down shell startup.\n\nplugins=(\n    git\n    zsh-syntax-highlighting\n    zsh-autosuggestions\n)\n\n# plugin URLs:\n# git clone https://github.com/zsh-users/zsh-syntax-highlighting.git ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/zsh-syntax-highlighting\n# git clone https://github.com/zsh-users/zsh-autosuggestions $ZSH_CUSTOM/plugins/zsh-autosuggestions\n\nsource $ZSH/oh-my-zsh.sh\n\n# User configuration\n\n# export MANPATH=\"/usr/local/man:$MANPATH\"\n\n# You may need to manually set your language environment\n# export LANG=en_US.UTF-8\n\n# Preferred editor for local and remote sessions\n# if [[ -n $SSH_CONNECTION ]]; then\n#   export EDITOR='vim'\n# else\n#   export EDITOR='mvim'\n# fi\n\n# Compilation flags\n# export ARCHFLAGS=\"-arch x86_64\"\n\n# Set personal aliases, overriding those provided by oh-my-zsh libs,\n# plugins, and themes. Aliases can be placed here, though oh-my-zsh\n# users are encouraged to define aliases within the ZSH_CUSTOM folder.\n# For a full list of active aliases, run `alias`.\n#\n# Example aliases\n# alias zshconfig=\"mate ~/.zshrc\"\n# alias ohmyzsh=\"mate ~/.oh-my-zsh\"\n"
  },
  {
    "path": "README.md",
    "content": "# dotfiles\nCollection of Dotfiles for the Lovely Members of r/UnixPorn\n\n![](/screenshot.png \"\")\n\n## Contents ##\n1. [Details](#details)\n2. [Dependencies](#dependencies)\n3. [Cool Things to Install](#coolinstall)\n4. [Recommended Applications](#applications)\n5. [Application Theming](#application-theming)\n6. [Latte Dock](#dock)\n\n<a name=\"details\"></a>\n## Details ##\n- **OS**: Arch Linux\n- **DE**: KDE Plasma\n- **WM**: i3-gaps\n- **Theme**: Arc Dark Transparent\n- **Icons**: [McMojave-circle](https://store.kde.org/p/1305429/)\n- **Shell**: ZSH\n- **Terminal**: Konsole\n- **Compositor**: [Compton (tryone)](https://aur.archlinux.org/packages/compton-tryone-git/)\n- [**Wallpaper**](https://www.fabuloussavers.com/new_wallpaper/anime_sky_clouds_sunset-wallpapers-2560x1440.shtml)\n\n<a name=\"dependencies\"></a>\n## Dependencies ##\n\n**[Set Up KDE For i3](https://medium.com/@vishnu_mad/using-i3-window-manager-with-kde-plasma-c2ac70594d8): Best DE + best WM**\n  - Must have splash screen set to \"None\" in KDE settings, otherwise feh will take a long time to set wallpaper\n  - Remember to remove KDE shortcuts to avoid conflict with i3 shortcuts\n  - KDE slows down computer, remove window effects that no longer apply with i3 / compton to speed it up\n    - Settings -> Desktop Behaviour -> Desktop Effects: uncheck everything\n    - Settings -> Display and Monitor -> Compositor: uncheck *enable compositor on startup*, set *Tearing Prevention* to *Never*\n\n| Dependency    | Description             | Usage               |\n|:-------------:|:-----------------------:| :------------------:|\n| `plasma`      | Best DE, imo            | Desktop Environment |\n| `i3-gaps`     | Best WM of a generation | Window Manager      |\n|[Compton (tryone)](https://aur.archlinux.org/packages/compton-tryone-git/)|Fork of the best window compositor with added blur effects|Window Compositor|\n| `rofi`        | Beatiful application launcher | Application Launcher |\n|[oh-my-zsh](https://aur.archlinux.org/packages/oh-my-zsh-git/)|ZSH is a better looking bash alternative|Shell|\n|[Latte Dock](https://store.kde.org/p/1169519)|Panel|Best dock / panel|\n|[Hasklig Font](https://github.com/i-tu/Hasklig)|Beautiful terminal / text editor / IDE font|Monospace Font with Ligature Support|\n|[San Francisco Font](https://aur.archlinux.org/packages/otf-san-francisco/)|Minimial, clean font used in macOS|System Font|\n|[feh](https://wiki.archlinux.org/index.php/feh)|Sets Background|Background Setter|\n\n<a name=\"coolinstall\"></a>\n## Cool Things to Install ##\n- [Conky-Cairo](https://aur.archlinux.org/packages/conky-cairo/): Cool Desktop system monitor tool\n  - Conky theme in dotfiles is set up to apear on a high DPI laptop display, may appear too large on 1920 x 1080 displays\n- [Flashfocus](https://github.com/fennerm/flashfocus): Makes windows flash once when switched to active\n- [Install Unimatrix](https://github.com/will8211/unimatrix): Cool terminal matrix text flow animation\n- [Install pipes](https://aur.archlinux.org/packages/bash-pipes/): Cool pipe terminal animation\n- [Install redshift](https://wiki.archlinux.org/index.php/Redshift): Changes screen tones for evening viewing\n- [Unclutter](https://wiki.archlinux.org/index.php/Unclutter): auto hides cursor after set time\n\n<a name=\"applications\"></a>\n## Recommended Applications ##\n- Terminal: Termite\n- File Manager: Dolphin\n- Web Browser: Firefox with [Vimium](https://addons.mozilla.org/en-US/firefox/addon/vimium-ff/?src=search), [Stylus](https://addons.mozilla.org/en-US/firefox/addon/styl-us/?src=search), and [Dark Reader](https://addons.mozilla.org/en-US/firefox/addon/darkreader/)\n\n<a name=\"application-theming\"></a>\n## Application Theming: ##\n  - [Install a Good Looking Custom Transparent vscode](https://github.com/coler706/vscode), and [follow these settings guidelines](https://dev.to/selrond/tips-to-use-vscode-more-efficiently-3h6p)\n  - [Set up This Firefox Theme](https://github.com/muckSponge/MaterialFox)\n  - [Install Spicetify](https://github.com/khanhas/spicetify-cli): Make spotify sexy, guide below\n\n### Spotify ###\n1. Ensure [spicetify](https://github.com/khanhas/spicetify-cli) is installed\n2. chown spotify directory: `sudo chown $USER -R /opt/spotify`\n3. run `spicetify` once to generate config\n4. `spicetify backup apply enable-devtool` to enable devtools\n5. Place your color.ini and user.css in `~/.config/spicetify/Themes/<your theme name, whatever you want>` and edit `~/.config/spicetify/config.ini` to reflect this name\n6. run `spicetify update restart`\n\n### OhMyZsh ###\n- Install Powerline Fonts\n  - `git clone https://github.com/powerline/fonts.git`\n  - `cd fonts`\n  - `./install.sh`\n  - set font\n- Change theme to agnoster\n  -`open ~/.zshrc`\n  - Set ZSH_THEME=\"agnoster\" and save the file\n- Install Plugins (Note That ~/.zshrc edits are in repo)\n  - Syntax Hilighting\n    - `git clone https://github.com/zsh-users/zsh-syntax-highlighting.git ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/zsh-syntax-highlighting`\n    - Edit `~/.zshrc`, add `zsh-syntax-highlighting` to the plugins section\n    - Reread config `source ~/.zshrc`\n  - Autosuggestion\n    - `git clone https://github.com/zsh-users/zsh-autosuggestions $ZSH_CUSTOM/plugins/zsh-autosuggestions`\n    - Edit `~/.zshrc`, add `zsh-autosuggestions` to the plugins section\n    - Reread config `source ~/.zshrc`\n- [Guide](https://www.freecodecamp.org/news/jazz-up-your-zsh-terminal-in-seven-steps-a-visual-guide-e81a8fd59a38/)\n\n<a name=\"dock\"></a>\n## Latte Dock Setup ##\n**Top Panel:**\n- Mode: panel\n- Widgets (in order):\n  - Window Title Applet\n  - Global Menu\n    - GTK / Electron Global Menu Panel Support:\n      - `sudo pacman -S appmenu-gtk-module appmenu-gtk-module`\n      - `sudo pacman -S appmenu-gtk-module libdbusmenu-glib`\n  - Spacer\n  - Digital Clock\n  - Spacer\n  - Application Icons (Drag icons from application launcher to panel to add)\n  - System Tray\n  - User Switcher\n"
  }
]