Repository: WillPower3309/dotfiles Branch: master Commit: b49b127e051f Files: 12 Total size: 59.4 KB Directory structure: gitextract_g19so2w7/ ├── .config/ │ ├── compton.conf │ ├── conky/ │ │ ├── clock_rings.lua │ │ └── conkyrc │ ├── i3/ │ │ └── config │ ├── rofi/ │ │ ├── config.rasi │ │ └── config.rasiclear │ └── spicetify/ │ ├── Themes/ │ │ └── custom_theme/ │ │ ├── color.ini │ │ └── user.css │ └── config.ini ├── .scripts/ │ └── wm.sh ├── .zshrc └── README.md ================================================ FILE CONTENTS ================================================ ================================================ FILE: .config/compton.conf ================================================ ################################# # # Backend # ################################# # Backend to use: "xrender" or "glx". # GLX backend is typically much faster but depends on a sane driver. backend = "glx"; ################################# # # GLX backend # ################################# glx-no-stencil = true; # GLX backend: Copy unmodified regions from front buffer instead of redrawing them all. # My tests with nvidia-drivers show a 10% decrease in performance when the whole screen is modified, # but a 20% increase when only 1/4 is. # My tests on nouveau show terrible slowdown. # Useful with --glx-swap-method, as well. glx-copy-from-front = false; # GLX backend: Use MESA_copy_sub_buffer to do partial screen update. # My tests on nouveau shows a 200% performance boost when only 1/4 of the screen is updated. # May break VSync and is not available on some drivers. # Overrides --glx-copy-from-front. # glx-use-copysubbuffermesa = true; # GLX backend: Avoid rebinding pixmap on window damage. # Probably could improve performance on rapid window content changes, but is known to break things on some drivers (LLVMpipe). # Recommended if it works. # glx-no-rebind-pixmap = true; # GLX backend: GLX buffer swap method we assume. # Could be undefined (0), copy (1), exchange (2), 3-6, or buffer-age (-1). # undefined is the slowest and the safest, and the default value. # copy is fastest, but may fail on some drivers, # 2-6 are gradually slower but safer (6 is still faster than 0). # Usually, double buffer means 2, triple buffer means 3. # buffer-age means auto-detect using GLX_EXT_buffer_age, supported by some drivers. # Useless with --glx-use-copysubbuffermesa. # Partially breaks --resize-damage. # Defaults to undefined. glx-swap-method = "undefined"; ################################# # # Shadows # ################################# # Enabled client-side shadows on windows. shadow = false; # Don't draw shadows on DND windows. no-dnd-shadow = true; # Avoid drawing shadows on dock/panel windows. no-dock-shadow = true; # Zero the part of the shadow's mask behind the window. Fix some weirdness with ARGB windows. clear-shadow = true; # The blur radius for shadows. (default 12) shadow-radius = 12; # The left offset for shadows. (default -15) shadow-offset-x = -15; # The top offset for shadows. (default -15) shadow-offset-y = -15; # The translucency for shadows. (default .75) shadow-opacity = 0.65; # Set if you want different colour shadows # shadow-red = 0.0; # shadow-green = 0.0; # shadow-blue = 0.0; # 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 # (most applications are fine, only apps that do weird things with xshapes or argb are affected). # 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. shadow-exclude = [ "! name~=''", "name = 'Notification'", "name = 'Plank'", "name = 'Docky'", "name = 'Kupfer'", "name = 'GLava'", "name = 'xfce4-notifyd'", "name *= 'VLC'", "name *= 'compton'", "name *= 'Chromium'", "name *= 'Chrome'", "class_g = 'Conky'", "class_g = 'Kupfer'", "class_g = 'Synapse'", "class_g ?= 'Notify-osd'", "class_g ?= 'Cairo-dock'", "class_g ?= 'Xfce4-notifyd'", "class_g ?= 'Xfce4-power-manager'", "_GTK_FRAME_EXTENTS@:c" ]; # Avoid drawing shadow on all shaped windows (see also: --detect-rounded-corners) shadow-ignore-shaped = true; ################################# # # Opacity # ################################# menu-opacity = 1; inactive-opacity = 1; active-opacity = 1; frame-opacity = 1; inactive-opacity-override = false; alpha-step = 0.06; opacity-rule = [ "85:class_g = 'Dolphin'", "85:class_g = 'Code'", "85:class_g = 'code'", "0:_NET_WM_STATE@:32a *= '_NET_WM_STATE_HIDDEN'" #FLASHFOCUS ] # Dim inactive windows. (0.0 - 1.0) #inactive-dim = 0.1; # Do not let dimness adjust based on window opacity. # inactive-dim-fixed = true; # Blur background of transparent windows. Bad performance with X Render backend. GLX backend is preferred. blur-background = true; blur-method = "kawase"; blur-strength = 10; # Blur background of opaque windows with transparent frames as well. # blur-background-frame = true; # Do not let blur radius adjust based on window opacity. # blur-background-fixed = false; blur-background-exclude = [ "window_type = 'dock'", "class_g ?= 'Konsole'" ]; ################################# # # Fading # ################################# # Fade windows during opacity changes. fading = true; # The time between steps in a fade in milliseconds. (default 10). fade-delta = 4; # Opacity change between steps while fading in. (default 0.028). fade-in-step = 0.03; # Opacity change between steps while fading out. (default 0.03). fade-out-step = 0.03; # Fade windows in/out when opening/closing no-fading-openclose = false; # Specify a list of conditions of windows that should not be faded. fade-exclude = [ ]; ################################# # # Other # ################################# # Try to detect WM windows and mark them as active. mark-wmwin-focused = true; # Mark all non-WM but override-redirect windows active (e.g. menus). mark-ovredir-focused = true; # Use EWMH _NET_WM_ACTIVE_WINDOW to determine which window is focused instead of using FocusIn/Out events. # Usually more reliable but depends on a EWMH-compliant WM. use-ewmh-active-win = true; # Detect rounded corners and treat them as rectangular when --shadow-ignore-shaped is on. detect-rounded-corners = true; # Detect _NET_WM_OPACITY on client windows, useful for window managers not passing _NET_WM_OPACITY of client windows to frame windows. # This prevents opacity being ignored for some apps. # For example without this enabled my xfce4-notifyd is 100% opacity no matter what. detect-client-opacity = true; # Specify refresh rate of the screen. # If not specified or 0, compton will try detecting this with X RandR extension. refresh-rate = 60; # Set VSync method. VSync methods currently available: # none: No VSync # drm: VSync with DRM_IOCTL_WAIT_VBLANK. May only work on some drivers. # opengl: Try to VSync with SGI_video_sync OpenGL extension. Only work on some drivers. # opengl-oml: Try to VSync with OML_sync_control OpenGL extension. Only work on some drivers. # 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. # opengl-mswc: Try to VSync with MESA_swap_control OpenGL extension. Basically the same as opengl-swc above, except the extension we use. # (Note some VSync methods may not be enabled at compile time.) vsync = "opengl-swc"; # Enable DBE painting mode, intended to use with VSync to (hopefully) eliminate tearing. # Reported to have no effect, though. dbe = false; # Painting on X Composite overlay window. Recommended. paint-on-overlay = true; # Limit compton to repaint at most once every 1 / refresh_rate second to boost performance. # This should not be used with --vsync drm/opengl/opengl-oml as they essentially does --sw-opti's job already, # unless you wish to specify a lower refresh rate than the actual value. sw-opti = true; # Unredirect all windows if a full-screen opaque window is detected, to maximize performance for full-screen windows, like games. # Known to cause flickering when redirecting/unredirecting windows. # paint-on-overlay may make the flickering less obvious. unredir-if-possible = true; # Specify a list of conditions of windows that should always be considered focused. focus-exclude = [ ]; # Use WM_TRANSIENT_FOR to group windows, and consider windows in the same group focused at the same time. detect-transient = true; # Use WM_CLIENT_LEADER to group windows, and consider windows in the same group focused at the same time. # WM_TRANSIENT_FOR has higher priority if --detect-transient is enabled, too. detect-client-leader = true; ################################# # # Window type settings # ################################# wintypes: { tooltip = { # fade: Fade the particular type of windows. fade = true; # shadow: Give those windows shadow shadow = false; # opacity: Default opacity for the type of windows. opacity = 0.85; # focus: Whether to always consider windows of this type focused. focus = true; }; }; ================================================ FILE: .config/conky/clock_rings.lua ================================================ --[[ Clock Rings by Linux Mint (2011) reEdited by despot77 This 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. IMPORTANT: 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. To call this script in Conky, use the following (assuming that you save this script to ~/scripts/rings.lua): lua_load ~/scripts/clock_rings.lua lua_draw_hook_pre clock_rings Changelog: + v1.0 -- Original release (30.09.2009) v1.1p -- Jpope edit londonali1010 (05.10.2009) *v 2011mint -- reEdit despot77 (18.02.2011) ]] settings_table = { -- Hour { -- Edit this table to customise your rings. -- You can create more rings simply by adding more elements to settings_table. -- "name" is the type of stat to display; you can choose from 'cpu', 'memperc', 'fs_used_perc', 'battery_used_perc'. name='time', -- "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 ''. arg='%I.%M', -- "max" is the maximum value of the ring. If the Conky variable outputs a percentage, use 100. max=12, -- "bg_colour" is the colour of the base ring. bg_colour=0xffffff, -- "bg_alpha" is the alpha value of the base ring. bg_alpha=0.1, -- "fg_colour" is the colour of the indicator part of the ring. fg_colour=0xffffff, -- "fg_alpha" is the alpha value of the indicator part of the ring. fg_alpha=0.2, -- "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. x=200, y=250, -- "radius" is the radius of the ring. radius=100, -- "thickness" is the thickness of the ring, centred around the radius. thickness=7, -- "start_angle" is the starting angle of the ring, in degrees, clockwise from top. Value can be either positive or negative. start_angle=0, -- "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. end_angle=360 }, -- Minute { name='time', arg='%M.%S', max=60, bg_colour=0xffffff, bg_alpha=0.1, fg_colour=0xffffff, fg_alpha=0.4, x=200, y=250, radius=120, thickness=7, start_angle=0, end_angle=360 }, -- Second { name='time', arg='%S', max=60, bg_colour=0xffffff, bg_alpha=0.1, fg_colour=0xffffff, fg_alpha=0.6, x=200, y=250, radius=140, thickness=7, start_angle=0, end_angle=360 }, -- Day { name='time', arg='%d', max=31, bg_colour=0xffffff, bg_alpha=0.1, fg_colour=0xffffff, fg_alpha=0.8, x=200, y=250, radius=170, thickness=7, start_angle=-90, end_angle=90 }, -- Month { name='time', arg='%m', max=12, bg_colour=0xffffff, bg_alpha=0.1, fg_colour=0xffffff, fg_alpha=1, x=200, y=250, radius=185, thickness=7, start_angle=-90, end_angle=90 }, { name='cpu', arg='cpu0', max=100, bg_colour=0xffffff, bg_alpha=0.2, fg_colour=0xffffff, fg_alpha=0.8, x=100, y=500, radius=45, thickness=7, start_angle=-90, end_angle=180 }, { name='memperc', arg='', max=100, bg_colour=0xffffff, bg_alpha=0.2, fg_colour=0xffffff, fg_alpha=0.8, x=150, y=600, radius=45, thickness=7, start_angle=-90, end_angle=180 }, { name='swapperc', arg='', max=100, bg_colour=0xffffff, bg_alpha=0.2, fg_colour=0xffffff, fg_alpha=0.8, x=200, y=700, radius=45, thickness=7, start_angle=-90, end_angle=180 }, { name='fs_used_perc', arg='/', max=100, bg_colour=0xffffff, bg_alpha=0.2, fg_colour=0xffffff, fg_alpha=0.8, x=250, y=800, radius=45, thickness=7, start_angle=-90, end_angle=180 }, { name='downspeedf', arg='eth0', max=100, bg_colour=0xffffff, bg_alpha=0.2, fg_colour=0xffffff, fg_alpha=0.8, x=300, y=905, radius=50, thickness=6, start_angle=-90, end_angle=180 }, { name='upspeedf', arg='eth0', max=100, bg_colour=0xffffff, bg_alpha=0.2, fg_colour=0xffffff, fg_alpha=0.8, x=300, y=905, radius=40, thickness=6, start_angle=-90, end_angle=180 }, } -- Use these settings to define the origin and extent of your clock. clock_r=140 -- "clock_x" and "clock_y" are the coordinates of the centre of the clock, in pixels, from the top left of the Conky window. clock_x=200 clock_y=250 show_seconds=true require 'cairo' function rgb_to_r_g_b(colour,alpha) return ((colour / 0x10000) % 0x100) / 255., ((colour / 0x100) % 0x100) / 255., (colour % 0x100) / 255., alpha end function draw_ring(cr,t,pt) local w,h=conky_window.width,conky_window.height local xc,yc,ring_r,ring_w,sa,ea=pt['x'],pt['y'],pt['radius'],pt['thickness'],pt['start_angle'],pt['end_angle'] local bgc, bga, fgc, fga=pt['bg_colour'], pt['bg_alpha'], pt['fg_colour'], pt['fg_alpha'] local angle_0=sa*(2*math.pi/360)-math.pi/2 local angle_f=ea*(2*math.pi/360)-math.pi/2 local t_arc=t*(angle_f-angle_0) -- Draw background ring cairo_arc(cr,xc,yc,ring_r,angle_0,angle_f) cairo_set_source_rgba(cr,rgb_to_r_g_b(bgc,bga)) cairo_set_line_width(cr,ring_w) cairo_stroke(cr) -- Draw indicator ring cairo_arc(cr,xc,yc,ring_r,angle_0,angle_0+t_arc) cairo_set_source_rgba(cr,rgb_to_r_g_b(fgc,fga)) cairo_stroke(cr) end function draw_clock_hands(cr,xc,yc) local secs,mins,hours,secs_arc,mins_arc,hours_arc local xh,yh,xm,ym,xs,ys secs=os.date("%S") mins=os.date("%M") hours=os.date("%I") secs_arc=(2*math.pi/60)*secs mins_arc=(2*math.pi/60)*mins+secs_arc/60 hours_arc=(2*math.pi/12)*hours+mins_arc/12 -- Draw hour hand xh=xc+0.7*clock_r*math.sin(hours_arc) yh=yc-0.7*clock_r*math.cos(hours_arc) cairo_move_to(cr,xc,yc) cairo_line_to(cr,xh,yh) cairo_set_line_cap(cr,CAIRO_LINE_CAP_ROUND) cairo_set_line_width(cr,5) cairo_set_source_rgba(cr,1.0,1.0,1.0,1.0) cairo_stroke(cr) -- Draw minute hand xm=xc+clock_r*math.sin(mins_arc) ym=yc-clock_r*math.cos(mins_arc) cairo_move_to(cr,xc,yc) cairo_line_to(cr,xm,ym) cairo_set_line_width(cr,3) cairo_stroke(cr) -- Draw seconds hand if show_seconds then xs=xc+clock_r*math.sin(secs_arc) ys=yc-clock_r*math.cos(secs_arc) cairo_move_to(cr,xc,yc) cairo_line_to(cr,xs,ys) cairo_set_line_width(cr,1) cairo_stroke(cr) end end function conky_clock_rings() local function setup_rings(cr,pt) local str='' local value=0 str=string.format('${%s %s}',pt['name'],pt['arg']) str=conky_parse(str) value=tonumber(str) pct=value/pt['max'] draw_ring(cr,pct,pt) end -- Check that Conky has been running for at least 5s if conky_window==nil then return end local cs=cairo_xlib_surface_create(conky_window.display,conky_window.drawable,conky_window.visual, conky_window.width,conky_window.height) local cr=cairo_create(cs) local updates=conky_parse('${updates}') update_num=tonumber(updates) if update_num>5 then for i in pairs(settings_table) do setup_rings(cr,settings_table[i]) end end draw_clock_hands(cr,clock_x,clock_y) end ================================================ FILE: .config/conky/conkyrc ================================================ # Conky settings # background yes update_interval 1 cpu_avg_samples 2 net_avg_samples 2 override_utf8_locale yes double_buffer yes no_buffers yes text_buffer_size 2048 #imlib_cache_size 0 temperature_unit fahrenheit # Window specifications # own_window yes own_window_type override own_window_transparent yes own_window_hints undecorated,sticky,skip_taskbar,skip_pager,below border_inner_margin 0 border_outer_margin 0 minimum_size 400 1000 maximum_width 400 alignment tr gap_x 100 gap_y 80 # Graphics settings # draw_shades no draw_outline no draw_borders no draw_graph_borders no # Text settings # use_xft yes xftfont SF Pro Text:size=8 xftalpha 0.5 uppercase no temperature_unit celsius default_color FFFFFF # Lua Load # lua_load ~/.config/conky/clock_rings.lua lua_draw_hook_pre clock_rings TEXT ${voffset 450} ${color FFFFFF}${goto 45}${voffset 35}${cpu cpu0}% ${color FFFFFF}${goto 45}CPU ${color FFFFFF}${goto 95}${voffset 45}${memperc}% ${color FFFFFF}${goto 95}RAM ${color FFFFFF}${goto 140}${voffset 50}${swapperc}% ${color FFFFFF}${goto 140}Swap ${color FFFFFF}${goto 200}${voffset 50}${fs_used_perc /}% ${color FFFFFF}${goto 200}Disk ${color FFFFFF}${goto 260}${voffset 55}${downspeed eth0} ${color FFFFFF}${goto 260}${upspeed eth0} ${color FFFFFF}${goto 260}Net ================================================ FILE: .config/i3/config ================================================ # >>> Plasma Integration <<< # Try to kill the wallpaper set by Plasma (it takes up the entire workspace # and hides everythiing) exec --no-startup-id wmctrl -c Plasma for_window [title="Desktop — Plasma"] kill; floating enable; border none # Avoid tiling latte panel components for_window [title="Latte Dock"] floating enable; # Avoid tiling popups, dropdown windows from plasma for_window [class="plasmashell"] floating enable for_window [class="Plasma"] floating enable for_window [class="krunner"] floating enable for_window [class="Kmix"] floating enable for_window [class="Klipper"] floating enable for_window [class="Plasmoidviewer"] floating enable # >>> Window Rules <<< # >>> Avoid tiling for non-Plasma stuff <<< for_window [window_role="pop-up"] floating enable for_window [window_role="bubble"] floating enable for_window [window_role="task_dialog"] floating enable for_window [window_role="Preferences"] floating enable for_window [window_role="About"] floating enable for_window [window_type="dialog"] floating enable for_window [window_type="menu"] floating enable for_window [title="Android Emulator"] floating enable #android emulator #**************************************************************************** # Keybinds #**************************************************************************** set $mod Mod4 # Font for window titles. Will also be used by the bar unless a different font # is used in the bar {} block below. font pango:monospace 8 # This font is widely installed, provides lots of unicode glyphs, right-to-left # text rendering and scalability on retina/hidpi displays (thanks to pango). #font pango:DejaVu Sans Mono 8 # Before i3 v4.8, we used to recommend this one as the default: # font -misc-fixed-medium-r-normal--13-120-75-75-C-70-iso10646-1 # The font above is very space-efficient, that is, it looks good, sharp and # clear in small sizes. However, its unicode glyph coverage is limited, the old # X core fonts rendering does not support right-to-left and this being a bitmap # font, it doesn’t scale on retina/hidpi displays. # Use Mouse+$mod to drag floating windows to their wanted position floating_modifier $mod # start a terminal bindsym $mod+Return exec konsole # kill focused window bindsym $mod+Shift+q kill # change focus bindsym $mod+j focus left bindsym $mod+k focus down bindsym $mod+l focus up bindsym $mod+semicolon focus right # alternatively, you can use the cursor keys: bindsym $mod+Left focus left bindsym $mod+Down focus down bindsym $mod+Up focus up bindsym $mod+Right focus right # move focused window bindsym $mod+Shift+j move left bindsym $mod+Shift+k move down bindsym $mod+Shift+l move up bindsym $mod+Shift+semicolon move right # alternatively, you can use the cursor keys: bindsym $mod+Shift+Left move left bindsym $mod+Shift+Down move down bindsym $mod+Shift+Up move up bindsym $mod+Shift+Right move right # split in horizontal orientation bindsym $mod+h split h # split in vertical orientation bindsym $mod+v split v # enter fullscreen mode for the focused container bindsym $mod+f fullscreen toggle # change container layout (stacked, tabbed, toggle split) bindsym $mod+s layout stacking bindsym $mod+w layout tabbed bindsym $mod+e layout toggle split # toggle tiling / floating bindsym $mod+Shift+space floating toggle # change focus between tiling / floating windows bindsym $mod+space focus mode_toggle # focus the parent container bindsym $mod+a focus parent # focus the child container #bindsym $mod+d focus child # Define names for default workspaces for which we configure key bindings later on. # We use variables to avoid repeating the names in multiple places. set $ws1 "1" set $ws2 "2" set $ws3 "3" set $ws4 "4" set $ws5 "5" set $ws6 "6" set $ws7 "7" set $ws8 "8" set $ws9 "9" set $ws10 "10" # switch to workspace bindsym $mod+1 workspace $ws1 bindsym $mod+2 workspace $ws2 bindsym $mod+3 workspace $ws3 bindsym $mod+4 workspace $ws4 bindsym $mod+5 workspace $ws5 bindsym $mod+6 workspace $ws6 bindsym $mod+7 workspace $ws7 bindsym $mod+8 workspace $ws8 bindsym $mod+9 workspace $ws9 bindsym $mod+0 workspace $ws10 # move focused container to workspace bindsym $mod+Shift+1 move container to workspace $ws1 bindsym $mod+Shift+2 move container to workspace $ws2 bindsym $mod+Shift+3 move container to workspace $ws3 bindsym $mod+Shift+4 move container to workspace $ws4 bindsym $mod+Shift+5 move container to workspace $ws5 bindsym $mod+Shift+6 move container to workspace $ws6 bindsym $mod+Shift+7 move container to workspace $ws7 bindsym $mod+Shift+8 move container to workspace $ws8 bindsym $mod+Shift+9 move container to workspace $ws9 bindsym $mod+Shift+0 move container to workspace $ws10 # reload the configuration file bindsym $mod+Shift+c reload # restart i3 inplace (preserves your layout/session, can be used to upgrade i3) bindsym $mod+Shift+r restart # exit i3 (logs you out of your X session) bindsym $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'" # resize window (you can also use the mouse for that) mode "resize" { # These bindings trigger as soon as you enter the resize mode # Pressing left will shrink the window’s width. # Pressing right will grow the window’s width. # Pressing up will shrink the window’s height. # Pressing down will grow the window’s height. bindsym j resize shrink width 10 px or 10 ppt bindsym k resize grow height 10 px or 10 ppt bindsym l resize shrink height 10 px or 10 ppt bindsym semicolon resize grow width 10 px or 10 ppt # same bindings, but for the arrow keys bindsym Left resize shrink width 10 px or 10 ppt bindsym Down resize grow height 10 px or 10 ppt bindsym Up resize shrink height 10 px or 10 ppt bindsym Right resize grow width 10 px or 10 ppt # back to normal: Enter or Escape or $mod+r bindsym Return mode "default" bindsym Escape mode "default" bindsym $mod+r mode "default" } bindsym $mod+r mode "resize" # rofi bindsym $mod+d exec rofi -show drun # flash current window bindsym $mod+n exec --no-startup-id flash_window #********************************************************************************* # Startup #******************************************************************************** exec --no-startup-id feh --bg-scale ~/Documents/background.JPG exec --no-startup-id compton exec --no-startup-id ~/.scripts/feh-blur -b 12 -D 0 exec --no-startup-id flashfocus #exec --no-startup-id conky -c ~/.config/conky/conkyrc #******************************************************************************** # Appearance #******************************************************************************** # Theme colors # class border backgr. text indic. child_border client.focused #4c7899 #285577 #ffffff #2e9ef4 #285577 client.focused_inactive #333333 #5f676a #ffffff #484e50 #5f676a client.unfocused #333333 #222222 #888888 #292d2e #222222 client.urgent #2f343a #900000 #ffffff #900000 #900000 client.placeholder #000000 #0c0c0c #ffffff #000000 #0c0c0c # Configure border style new_window none new_float normal # Hide borders hide_edge_borders none # change borders bindsym $mod+y border none bindsym $mod+u border pixel 1 bindsym $mod+i border normal ############################# ### settings for i3-gaps: ### ############################# # Set inner/outer gaps gaps inner 15 gaps outer 5 # Activate smart borders (always) smart_borders on ================================================ FILE: .config/rofi/config.rasi ================================================ configuration { display-drun: "Apps"; display-window: "Window"; show-icons:true; } * { lines: 15; columns: 1; background-color: #00000065; border-color: #00000000; text-color: #EFEFEF; font: "SF Pro Text 16"; } #window { border: 0; border-radius: 4px; padding: 40; width: 30%; height: 50%; } #mainbox { background-color: #00000000; children: [inputbar, listview]; spacing: 10px; /*margin: 20%;*/ padding: 30px 0; border: 1px; border-color: @base0D; } #listview { background-color: #00000000; fixed-height: 0; border: 0px; spacing: 5px; scrollbar: false; padding: 10px 10px 0px; } #element { background-color: #00000000; border: 0; border-radius: 15px; padding: 3 0 3 4 ; } #element selected { background-color: #00a0e6; text-color: #EFEFEF; } #inputbar { children: [ prompt,textbox-prompt-colon,entry,case-indicator ]; background-color: #00000000; } #case-indicator { background-color: #00000000; spacing: 0; } #entry { background-color: #00000000; spacing: 0; } #prompt { background-color: #00000000; spacing: 0; } #textbox-prompt-colon { background-color: #00000000; expand: false; str: ":"; margin: 0px 0.3em 0em 0em ; } ================================================ FILE: .config/rofi/config.rasiclear ================================================ configuration { /* modi: "window,run,ssh";*/ width: 1920; lines: 20; /* columns: 1;*/ /* font: "mono 12";*/ /* bw: 1;*/ location: 0; padding: 50; /* yoffset: 0;*/ /* xoffset: 0;*/ /* fixed-num-lines: true;*/ show-icons: true; /* terminal: "rofi-sensible-terminal";*/ /* ssh-client: "ssh";*/ /* ssh-command: "{terminal} -e {ssh-client} {host}";*/ /* run-command: "{cmd}";*/ /* run-list-command: "";*/ /* run-shell-command: "{terminal} -e {cmd}";*/ /* window-command: "xkill -id {window}";*/ /* window-match-fields: "all";*/ /* icon-theme: ;*/ /* drun-match-fields: "name,generic,exec,categories";*/ /* drun-show-actions: false;*/ /* drun-display-format: "{name} [({generic})]";*/ /* disable-history: false;*/ /* sort: false;*/ /* sorting-method: ;*/ /* case-sensitive: false;*/ /* cycle: true;*/ sidebar-mode: true; eh: 1; /* auto-select: false;*/ /* parse-hosts: false;*/ /* parse-known-hosts: true;*/ /* combi-modi: "window,run";*/ /* matching: "normal";*/ /* tokenize: true;*/ /* m: "-5";*/ line-margin: 5; /* line-padding: 1;*/ /* filter: ;*/ /* separator-style: "dash";*/ hide-scrollbar: true; /* fullscreen: false;*/ /* fake-transparency: false;*/ /* dpi: -1;*/ /* threads: 0;*/ /* scrollbar-width: 8;*/ /* scroll-method: 0;*/ /* fake-background: "screenshot";*/ /* window-format: "{w} {i}{c} {t}";*/ /* click-to-exit: true;*/ /* show-match: true;*/ /* theme: ;*/ /* color-normal: ;*/ /* color-urgent: ;*/ /* color-active: ;*/ /* color-window: ;*/ /* max-history-size: 25;*/ /* combi-hide-mode-prefix: false;*/ /* matching-negate-char: '-' /* unsupported */;*/ /* pid: "/run/user/1000/rofi.pid";*/ /* display-window: ;*/ /* display-windowcd: ;*/ /* display-run: ;*/ /* display-ssh: ;*/ /* display-drun: ;*/ /* display-combi: ;*/ /* display-keys: ;*/ /* kb-primary-paste: "Control+V,Shift+Insert";*/ /* kb-secondary-paste: "Control+v,Insert";*/ /* kb-clear-line: "Control+w";*/ /* kb-move-front: "Control+a";*/ /* kb-move-end: "Control+e";*/ /* kb-move-word-back: "Alt+b,Control+Left";*/ /* kb-move-word-forward: "Alt+f,Control+Right";*/ /* kb-move-char-back: "Left,Control+b";*/ /* kb-move-char-forward: "Right,Control+f";*/ /* kb-remove-word-back: "Control+Alt+h,Control+BackSpace";*/ /* kb-remove-word-forward: "Control+Alt+d";*/ /* kb-remove-char-forward: "Delete,Control+d";*/ /* kb-remove-char-back: "BackSpace,Shift+BackSpace,Control+h";*/ /* kb-remove-to-eol: "Control+k";*/ /* kb-remove-to-sol: "Control+u";*/ /* kb-accept-entry: "Control+j,Control+m,Return,KP_Enter";*/ /* kb-accept-custom: "Control+Return";*/ /* kb-accept-alt: "Shift+Return";*/ /* kb-delete-entry: "Shift+Delete";*/ /* kb-mode-next: "Shift+Right,Control+Tab";*/ /* kb-mode-previous: "Shift+Left,Control+ISO_Left_Tab";*/ /* kb-row-left: "Control+Page_Up";*/ /* kb-row-right: "Control+Page_Down";*/ /* kb-row-up: "Up,Control+p,ISO_Left_Tab";*/ /* kb-row-down: "Down,Control+n";*/ /* kb-row-tab: "Tab";*/ /* kb-page-prev: "Page_Up";*/ /* kb-page-next: "Page_Down";*/ /* kb-row-first: "Home,KP_Home";*/ /* kb-row-last: "End,KP_End";*/ /* kb-row-select: "Control+space";*/ /* kb-screenshot: "Alt+S";*/ /* kb-toggle-case-sensitivity: "grave,dead_grave";*/ /* kb-toggle-sort: "Alt+grave";*/ /* kb-cancel: "Escape,Control+g,Control+bracketleft";*/ /* kb-custom-1: "Alt+1";*/ /* kb-custom-2: "Alt+2";*/ /* kb-custom-3: "Alt+3";*/ /* kb-custom-4: "Alt+4";*/ /* kb-custom-5: "Alt+5";*/ /* kb-custom-6: "Alt+6";*/ /* kb-custom-7: "Alt+7";*/ /* kb-custom-8: "Alt+8";*/ /* kb-custom-9: "Alt+9";*/ /* kb-custom-10: "Alt+0";*/ /* kb-custom-11: "Alt+exclam";*/ /* kb-custom-12: "Alt+at";*/ /* kb-custom-13: "Alt+numbersign";*/ /* kb-custom-14: "Alt+dollar";*/ /* kb-custom-15: "Alt+percent";*/ /* kb-custom-16: "Alt+dead_circumflex";*/ /* kb-custom-17: "Alt+ampersand";*/ /* kb-custom-18: "Alt+asterisk";*/ /* kb-custom-19: "Alt+parenleft";*/ /* kb-select-1: "Super+1";*/ /* kb-select-2: "Super+2";*/ /* kb-select-3: "Super+3";*/ /* kb-select-4: "Super+4";*/ /* kb-select-5: "Super+5";*/ /* kb-select-6: "Super+6";*/ /* kb-select-7: "Super+7";*/ /* kb-select-8: "Super+8";*/ /* kb-select-9: "Super+9";*/ /* kb-select-10: "Super+0";*/ /* ml-row-left: "ScrollLeft";*/ /* ml-row-right: "ScrollRight";*/ /* ml-row-up: "ScrollUp";*/ /* ml-row-down: "ScrollDown";*/ /* me-select-entry: "MousePrimary";*/ /* me-accept-entry: "MouseDPrimary";*/ /* me-accept-custom: "Control+MouseDPrimary";*/ } ================================================ FILE: .config/spicetify/Themes/custom_theme/color.ini ================================================ [Base] ; Light green on Dark Blue background main_fg = 00FF9C secondary_fg = DEDEDE main_bg = 2E2837 sidebar_and_player_bg = 2E2837 cover_overlay_and_shadow = 000000 indicator_fg_and_button_bg = 00FF9C pressing_fg = FF5C86 slider_bg = 3F3C45 sidebar_indicator_and_hover_button_bg = 00BF76 scrollbar_fg_and_selected_row_bg = 615670 pressing_button_fg = DEDEDE pressing_button_bg = 383145 selected_button = 00BF76 miscellaneous_bg = 3F3C45 miscellaneous_hover_bg = 383145 preserve_1 = FFFFFF ================================================ FILE: .config/spicetify/Themes/custom_theme/user.css ================================================ :root { --bar-height: 120px; } /*Round corner cover image*/ .card-image, .card-placeholder-wrapper, .card-image-content-wrapper, .Card:not(.Card--artist) .Card__image, .Card:not(.Card--artist) .Card__image-wrapper { border-radius: 10px !important; overflow: hidden !important } /*Hide some annoying elements like profile name and pic, upgrade button and device connect bar at bottom, new playlist button*/ .profile.content-top-bar__profile-link, .upgrade-button, .view-player .remote-playback-bar, .NewPlaylistButton { display: none !important; } /*Exclude these elements from draggable property because it stops them from clickable*/ .profile-items-container, .profile { -webkit-app-region: no-drag !important; } /*Thinner scrollbar*/ ::-webkit-scrollbar { height: 6px !important; width: 6px !important; background-color: transparent; } /*Round corner scrollbar*/ ::-webkit-scrollbar-thumb { border-radius: 3px !important; } /*Hide top and bottom buttons of scrollbar */ /*who uses those, lol*/ ::-webkit-scrollbar-button { display: none !important; } /*Hide cover image overlay*/ .card-overlay { visibility: hidden !important; } /*Lift up cover when hovering on it*/ .card-image-content-wrapper, .Card:not(.Card--artist) .Card__image-wrapper { transition-property: transform, box-shadow !important; transition-duration: 1s !important; transition-timing-function: cubic-bezier(.3,0,0,1) !important; box-shadow: 0 5px 20px rgba(0,0,0,0.1); } .card-image-hit-area:not(.no-hover):hover .card-image-content-wrapper, .Card:not(.Card--artist) .Card__image-hit-area-counter-scale:hover .Card__image-wrapper { transform: translateY(-10px); box-shadow: 0 15px 30px rgba(0,0,0,0.3); } .card-image-hit-area .card-button-add, .card-image-hit-area .card-button-play, .card-image-hit-area .card-button-more, .Card__image-hit-area .card-button-add, .Card__image-hit-area .card-button-play, .Card__image-hit-area .card-button-more, .Card__image-hit-area .Card__play-button, .Card__image-hit-area .Card__add-button, .Card__image-hit-area .Card__more-button, .Card__image-hit-area .Card__overlay { transition-property: all !important; transition-duration: 1s !important; transition-timing-function: cubic-bezier(.3,0,0,1) !important; opacity: 0 !important; } .card-image-hit-area:not(.no-hover):hover .card-button-add, .card-image-hit-area:not(.no-hover):hover .card-button-play, .card-image-hit-area:not(.no-hover):hover .card-button-more, .Card__image-hit-area:not(.no-hover):hover .card-button-add, .Card__image-hit-area:not(.no-hover):hover .card-button-play, .Card__image-hit-area:not(.no-hover):hover .card-button-more { opacity: 1 !important; transform: translateY(-10px); } .Card__image-hit-area:hover .Card__play-button, .Card__image-hit-area:hover .Card__add-button, .Card__image-hit-area:hover .Card__more-button, .Card__image-hit-area:hover .Card__overlay { opacity: 1 !important; } .glue-page-header__content .glue-page-header__image-inner { border-radius: 10px; box-shadow: unset !important; } .glue-page-header__full-description-overlay { box-shadow: unset !important; } .card-placeholder-wrapper { background: transparent !important; } /*Spice up search input background*/ .SearchInput { color: var(--modspotify_main_fg); } .SearchInput__input { color: var(--modspotify_secondary_fg); background-color: rgba(var(--modspotify_rgb_scrollbar_fg_and_selected_row_bg), 0.5) !important; border-radius: 4px !important; padding-left: 34px; } .sidebar:hover .sidebar-navbar.sidebar-scroll-element { opacity: 1!important; } .view-player .player-controls-container, .view-player .player-controls-container .controls { overflow: visible !important; } .view-player .player-controls-container .controls .button-play{ height:50px !important; border-radius:50px !important; background: transparent !important; box-shadow:0 0 0 0 !important; width:50px !important; overflow: visible !important; box-shadow: 0 4px 15px rgba(0,0,0,0.2) !important; transition:none 0.3s cubic-bezier(.3,0,.7,1); } .view-player .player-controls-container .controls .button-play:before{ font-size:18px !important; padding-left: 16px !important; padding-top: 9px !important; } .view-player .player-controls-container .controls .button-play:after { box-shadow: unset !important; } .view-player .player-controls-container { position: absolute !important; width: 100% !important; } .view-player .player-controls-container .controls { width: 100% !important; height: 100% !important; align-items: center !important; margin-top : 0px !important; } /* Hide the song duration and elapsed text. I dont know where to put those so I just hide them */ .view-player .player-controls-container .progress-container .elapsed, .view-player .player-controls-container .progress-container .remaining { display: none !important; } /* Add round corner for Gerne and Mood cards */ .gc-image-container, .gc-image { border-radius: 10px !important; } /* Collage of 3 album covers is usually seen in Browse and Chart. */ .card-puff__image-wrapper, .card-puff__info-container, .card-puff__card-image { border-radius: 10px !important; } .card-puff__image-wrapper { overflow: visible; } .card-puff__card-image { box-shadow: 5px 0 30px rgba(0,0,0,0.7); overflow: visible; } .card-puff__title-container { background-color: transparent !important; } .card-puff.pressed .card-puff__image-wrapper, .card-puff.pressed .card-puff__info-container { opacity: 0.7 !important; } .card-puff__title { padding: 5px 10px 5px 10px !important; background-color: var(--modspotify_main_bg) !important; border-radius: 4px; border: 2px solid var(--modspotify_main_fg); } /* We use round corner on cover so they look weird in original form, so I move last cover to the right 20px and first one to the left 20px */ .card-puff__card-image:nth-child(1) { right: 20px; box-shadow: 0 0 0 0 !important; } .card-puff__card-image:nth-child(3) { left: 20px; } .grid-overlay-label { top: 140px !important; } /**/ .glue-page-header__background-color { background-image: none !important; background: var(--modspotify_main_bg); } /* .glue-page-header__sticky { padding-top: 60px !important; } */ /* Remove those title, cringy description and meaningless followers number */ .carousel .card-info-subtitle-description, .carousel .card-info-subtitle-metadata, .carousel .card:not(.card-type-station).card-info-title, .carousel .card.card-type-playlist.image-loaded .card-info-subtitle-description, .carousel .card.card-type-playlist.image-loaded .card-info-subtitle-metadata { display: none !important; } /* In top of Browse usually has bunch of Playlist or Album cards, and they has .carousel as a wrapper and it hides anything that overflows from its zone, aka our shadow and lifting animation. */ .carousel { overflow: visible !important; } /* Button with text Play */ .button.button-green, .GlueButton.GlueButton--style-green { color: var(--modspotify_main_bg) !important; } /* Change text color in playlist */ .tl-explicit .label, .tl-premium .label, .tl-cell:not(.tl-number), .tl-cell a:link, .tl-highlight { color: var(--modspotify_secondary_fg); } .card-type-album .card-info-title, .card-type-track .card-info-title, .card-type-collection-album .card-info-title, .card-type-episode .card-info-title { font-size: 15px; font-weight: 900 !important; text-align: center !important; width: 100% !important; } .card-type-album .card-info-subtitle-links, .card-type-track .card-info-subtitle-links, .card-type-collection-album .card-info-subtitle-links, .card-type-episode .card-info-subtitle-links { text-align: center !important; width: 100% !important; } .tracklist-station-container::after { background: transparent !important; } .GlueHeader__background-overlay { background: var(--modspotify_main_bg) !important; } /* Move navigation buttons and search field to the right and down */ .browser-navigation-top-bar { margin-left: 40px !important; margin-top: 15px !important; } .SearchInput__input, .SearchInput__searchIcon, .SearchInput__clearButton { margin-top: 15px !important; } .content-top-bar__profile-menu-button { margin-top: 15px !important; } .body-container--windows:not(.with-buddy-list):not(.messagebar) .content-top-bar__profile { margin-right: 110px !important; margin-top: -5px; } /* Spice up Fullscreen mode */ #view-player .album-art .album-art__image { border-radius: 30px !important; box-shadow: 0 10px 70px rgba(var(--modspotify_rgb_cover_overlay_and_shadow),.5) !important; } #view-player .album-art .album-art__image .card-image-content-wrapper, #view-player .album-art .album-art__image .card-image-content-wrapper .card-image { border-radius: 30px !important; } #video-player .album-art__foreground { flex-direction: row; text-align: left; } #video-player .album-art__background { background-color: initial; } #video-player .album-art__track-details { padding-left: 50px; line-height: initial; } #video-player .album-art__track-title { font-size: 84px; margin-top: 0; line-height: initial; } #video-player .album-art__artist-name { font-size: 54px; margin-top: 0; line-height: initial; } /* Daily mixes */ .carousel .card-info-wrapper.card-info-with-description.card-info-with-metadata { height: 50px !important; } /* Remove section divider */ .section-divider { border-bottom: 0 !important; } /* Adjust Position of border active tab in Nav bar at top and add little glowing effect */ .nav.navbar-nav { overflow: hidden !important; } .nav.navbar-nav a { overflow: visible !important; } .nav.navbar-nav a::after { bottom: 0px !important; width: 100% !important; } .nav.navbar-nav .active a::after{ box-shadow: 0 0px 20px !important; } .nav.navbar-nav a:focus:not(.button):active::after{ background-color: var(--modspotify_pressing_fg) !important; } /* Notification bar */ #content-wrapper #view-message-bar { position: absolute !important; width: calc(100% - 160px) !important; margin-left: 80px !important; border-radius: 0 0 10px 10px !important; } /* Small cover Big cover mechanism */ .now-playing.cover-size-transition.active.image-expanded #now-playing-image-small { display: none; } .now-playing.cover-size-transition.active.image-expanded .cover-image-link-wrapper { flex: 0 1 10px; } #view-now-playing a.image { overflow: visible !important; } /* Profile arrow in top left */ .content-top-bar__profile-menu-button .dropdown { position: fixed !important; top: 10px !important; -webkit-app-region: no-drag !important; } /* [WINDOWS] Change Profile menu horizontal position */ body.body-container--windows .content-top-bar__profile-menu-button .dropdown { right: 190px !important; } body:not(.body-container--windows) .content-top-bar__profile-menu-button .dropdown { right: 20px !important; } /* Small tooltip */ #tooltip { box-shadow: 0 0 10px rgba(0,0,0,0.2) !important; border-radius: 5px !important; border: 2px solid var(--modspotify_main_fg); padding: 10px 10px; } .tooltip-arrow-top, .tooltip-arrow-bottom { display: none !important; } .lyrics-lines-container, .message-container { color: #FFFFFF !important; } /* Home page */ .GlueCarousel__grid-wrapper::-webkit-scrollbar-thumb { display: none; } .GlueCard__info-wrapper, .Card__info-wrapper { margin-bottom: 30px; } .card-horizontal-interior-wrapper .card-info-title { text-align: start !important; } .tl-row.selected:hover .tl-cell { background: var(--modspotify_scrollbar_fg_and_selected_row_bg) !important; } .GlueTableRow--is-selected { background-color: var(--modspotify_scrollbar_fg_and_selected_row_bg) !important; } .tracklist-podcast .tl-progress .row-progress__bar { background-color: var(--modspotify_main_fg); } .Header__background-color{ background-color: var(--modspotify_main_bg) !important; } .Button--style-green, .button.button-green, .button.button-white { border-radius: 4px; color: var(--modspotify_main_bg) !important; } .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) .glue-page-header__content-inner .glue-page-header__title-text, .HomeHeader .Header__content-inner .Header__title-text-inner, .MadeForYouHeader .Header__content-inner .Header__title-text-inner, .RecentlyPlayedPage__header .Header__content-inner .Header__title-text-inner { background-color: var(--modspotify_main_bg); padding: 5px 20px; border: 5px solid var(--modspotify_main_fg) !important; border-radius: 6px; box-shadow: 0 4px 12px 0 rgba(var(--modspotify_rgb_cover_overlay_and_shadow),.2); text-transform: uppercase; } .glue-page-header.glue-page-header--album .glue-page-header__content-inner .glue-page-header__title, .glue-page-header.glue-page-header--artist .glue-page-header__content-inner .glue-page-header__title, .glue-page-header.glue-page-header--dailymix .glue-page-header__content-inner .glue-page-header__title, .glue-page-header.glue-page-header--playlist .glue-page-header__content-inner .glue-page-header__title { margin-top: 10px; } span.glue-page-header__title-text { color: var(--modspotify_main_fg); } .glue-page-header .glue-page-header__content-inner .glue-page-header__button { margin-top: 40px; } .glue-page-header__content-inner, .glue-page-header__data, .glue-page-header__title, .Header__content-inner, .Header__data, .Header__title, .Header__title-text, .Header__title-text-inner { overflow: visible !important; } /*Force player bar to has fixed height*/ .view-player { height: var(--bar-height) !important; border-top: 0; } .view-player .now-playing { overflow: unset; } .view-player .cover-image-container { position: fixed !important; left: 0; bottom: 0; } .view-player .now-playing .cover-image-link, .view-player .now-playing .cover-image-link figure { width: var(--bar-height); height: var(--bar-height); } #now-playing-image-small .cover-image { width: var(--bar-height); height: var(--bar-height); } .view-player .now-playing .cover-image-link-wrapper { flex: 0 1 calc(var(--bar-height) + 10px); } .text-container { z-index: 3; } .view-player .now-playing-container .button-add { color: var(--modspotify_main_fg) !important; } .progress-container .progress-bar, .progress-container .inner { top: 0 !important; margin-top: 0 !important; height: 5px; } .progress-container .progress-bar-wrapper { top: 0 !important; height: 5px; } .progress-container { position: fixed !important; width: 100% !important; bottom: var(--bar-height) !important; margin : 0 !important; } .progress-container .inner { border-radius: 0 2px 2px 0 !important; background-color: var(--modspotify_main_fg) !important; box-shadow: 0 2px 2px 0 var(--modspotify_main_fg); } .glue-page-header__p2s-details, .glue-page-header__p2s-followers { display: none; } .context-menu { border: 2px solid var(--modspotify_main_fg); box-shadow: 0 4px 12px 0 rgba(var(--modspotify_rgb_cover_overlay_and_shadow),.2); border-radius: 7px !important; overflow: hidden; } #menu-wrapper ::-webkit-scrollbar { display: none; } #menu-wrapper { border-right: 3px solid black; 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%; } .main-view-wrapper { overflow: unset; } .Button--style-icon-stroke:after, .Button--style-icon-stroke:hover:after, .Button--style-icon-stroke, .glue-page-header__button .button-icon-with-stroke, .glue-page-header__button .button-icon-with-stroke::after { box-shadow: unset; } .glue-page-header.glue-page-header--artist .glue-page-header__label { padding-top: 10px; } .glue-page-header.glue-page-header--artist.has-custom-image .glue-page-header__label { padding-top: 8px; } .glue-page-header__content .glue-page-header__label { margin-left: -2px; z-index: 2; } .glue-page-header__label span, .Header__label span { background-color: var(--modspotify_main_fg); color: var(--modspotify_main_bg); padding: 2px 10px; } .glue-page-header__label .header-verified-check { background-color: transparent; } body.remotebar .view-player .player-bar-wrapper { height: 100%; } .SidebarListItem--is-active:after, .RootlistItem--is-active:after, /* For Linux */ #view-navigation-bar .item.active:after { background-color: transparent; background-image: linear-gradient(90deg, var(--modspotify_sidebar_indicator_and_hover_button_bg) , transparent); opacity: 0.2; bottom: unset; top: 5%; height: 90%; width: 100% } .Header__image-inner { box-shadow: unset; } ================================================ FILE: .config/spicetify/config.ini ================================================ [Setting] overwrite_assets = 0 spotify_path = /opt/spotify prefs_path = /home/will/.config/spotify/prefs current_theme = custom_theme color_scheme = inject_css = 1 replace_colors = 1 [Preprocesses] disable_sentry = 1 disable_ui_logging = 1 remove_rtl_rule = 1 expose_apis = 1 [AdditionalOptions] lyric_always_show = 0 lyric_force_no_sync = 0 new_feedback_ui = 0 search_in_sidebar = 0 extensions = experimental_features = 0 fastUser_switching = 0 home = 0 visualization_high_framerate = 0 custom_apps = made_for_you_hub = 0 radio = 0 song_page = 0 ; DO NOT CHANGE! [Backup] version = 1.1.10.546.ge08ef575 ================================================ FILE: .scripts/wm.sh ================================================ # Use i3 as the window manager instead of Kwin export KDEWM=/usr/bin/i3 ================================================ FILE: .zshrc ================================================ # If you come from bash you might have to change your $PATH. # export PATH=$HOME/bin:/usr/local/bin:$PATH # Path to your oh-my-zsh installation. export ZSH="/home/willmckinnon/.oh-my-zsh" # Set name of the theme to load --- if set to "random", it will # load a random theme each time oh-my-zsh is loaded, in which case, # to know which specific one was loaded, run: echo $RANDOM_THEME # See https://github.com/robbyrussell/oh-my-zsh/wiki/Themes ZSH_THEME="agnoster" # Set list of themes to pick from when loading at random # Setting this variable when ZSH_THEME=random will cause zsh to load # a theme from this variable instead of looking in ~/.oh-my-zsh/themes/ # If set to an empty array, this variable will have no effect. # ZSH_THEME_RANDOM_CANDIDATES=( "robbyrussell" "agnoster" ) # Uncomment the following line to use case-sensitive completion. # CASE_SENSITIVE="true" # Uncomment the following line to use hyphen-insensitive completion. # Case-sensitive completion must be off. _ and - will be interchangeable. # HYPHEN_INSENSITIVE="true" # Uncomment the following line to disable bi-weekly auto-update checks. # DISABLE_AUTO_UPDATE="true" # Uncomment the following line to automatically update without prompting. # DISABLE_UPDATE_PROMPT="true" # Uncomment the following line to change how often to auto-update (in days). # export UPDATE_ZSH_DAYS=13 # Uncomment the following line if pasting URLs and other text is messed up. # DISABLE_MAGIC_FUNCTIONS=true # Uncomment the following line to disable colors in ls. # DISABLE_LS_COLORS="true" # Uncomment the following line to disable auto-setting terminal title. # DISABLE_AUTO_TITLE="true" # Uncomment the following line to enable command auto-correction. # ENABLE_CORRECTION="true" # Uncomment the following line to display red dots whilst waiting for completion. # COMPLETION_WAITING_DOTS="true" # Uncomment the following line if you want to disable marking untracked files # under VCS as dirty. This makes repository status check for large repositories # much, much faster. # DISABLE_UNTRACKED_FILES_DIRTY="true" # Uncomment the following line if you want to change the command execution time # stamp shown in the history command output. # You can set one of the optional three formats: # "mm/dd/yyyy"|"dd.mm.yyyy"|"yyyy-mm-dd" # or set a custom format using the strftime function format specifications, # see 'man strftime' for details. # HIST_STAMPS="mm/dd/yyyy" # Would you like to use another custom folder than $ZSH/custom? # ZSH_CUSTOM=/path/to/new-custom-folder # Which plugins would you like to load? # Standard plugins can be found in ~/.oh-my-zsh/plugins/* # Custom plugins may be added to ~/.oh-my-zsh/custom/plugins/ # Example format: plugins=(rails git textmate ruby lighthouse) # Add wisely, as too many plugins slow down shell startup. plugins=( git zsh-syntax-highlighting zsh-autosuggestions ) # plugin URLs: # git clone https://github.com/zsh-users/zsh-syntax-highlighting.git ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/zsh-syntax-highlighting # git clone https://github.com/zsh-users/zsh-autosuggestions $ZSH_CUSTOM/plugins/zsh-autosuggestions source $ZSH/oh-my-zsh.sh # User configuration # export MANPATH="/usr/local/man:$MANPATH" # You may need to manually set your language environment # export LANG=en_US.UTF-8 # Preferred editor for local and remote sessions # if [[ -n $SSH_CONNECTION ]]; then # export EDITOR='vim' # else # export EDITOR='mvim' # fi # Compilation flags # export ARCHFLAGS="-arch x86_64" # Set personal aliases, overriding those provided by oh-my-zsh libs, # plugins, and themes. Aliases can be placed here, though oh-my-zsh # users are encouraged to define aliases within the ZSH_CUSTOM folder. # For a full list of active aliases, run `alias`. # # Example aliases # alias zshconfig="mate ~/.zshrc" # alias ohmyzsh="mate ~/.oh-my-zsh" ================================================ FILE: README.md ================================================ # dotfiles Collection of Dotfiles for the Lovely Members of r/UnixPorn ![](/screenshot.png "") ## Contents ## 1. [Details](#details) 2. [Dependencies](#dependencies) 3. [Cool Things to Install](#coolinstall) 4. [Recommended Applications](#applications) 5. [Application Theming](#application-theming) 6. [Latte Dock](#dock) ## Details ## - **OS**: Arch Linux - **DE**: KDE Plasma - **WM**: i3-gaps - **Theme**: Arc Dark Transparent - **Icons**: [McMojave-circle](https://store.kde.org/p/1305429/) - **Shell**: ZSH - **Terminal**: Konsole - **Compositor**: [Compton (tryone)](https://aur.archlinux.org/packages/compton-tryone-git/) - [**Wallpaper**](https://www.fabuloussavers.com/new_wallpaper/anime_sky_clouds_sunset-wallpapers-2560x1440.shtml) ## Dependencies ## **[Set Up KDE For i3](https://medium.com/@vishnu_mad/using-i3-window-manager-with-kde-plasma-c2ac70594d8): Best DE + best WM** - Must have splash screen set to "None" in KDE settings, otherwise feh will take a long time to set wallpaper - Remember to remove KDE shortcuts to avoid conflict with i3 shortcuts - KDE slows down computer, remove window effects that no longer apply with i3 / compton to speed it up - Settings -> Desktop Behaviour -> Desktop Effects: uncheck everything - Settings -> Display and Monitor -> Compositor: uncheck *enable compositor on startup*, set *Tearing Prevention* to *Never* | Dependency | Description | Usage | |:-------------:|:-----------------------:| :------------------:| | `plasma` | Best DE, imo | Desktop Environment | | `i3-gaps` | Best WM of a generation | Window Manager | |[Compton (tryone)](https://aur.archlinux.org/packages/compton-tryone-git/)|Fork of the best window compositor with added blur effects|Window Compositor| | `rofi` | Beatiful application launcher | Application Launcher | |[oh-my-zsh](https://aur.archlinux.org/packages/oh-my-zsh-git/)|ZSH is a better looking bash alternative|Shell| |[Latte Dock](https://store.kde.org/p/1169519)|Panel|Best dock / panel| |[Hasklig Font](https://github.com/i-tu/Hasklig)|Beautiful terminal / text editor / IDE font|Monospace Font with Ligature Support| |[San Francisco Font](https://aur.archlinux.org/packages/otf-san-francisco/)|Minimial, clean font used in macOS|System Font| |[feh](https://wiki.archlinux.org/index.php/feh)|Sets Background|Background Setter| ## Cool Things to Install ## - [Conky-Cairo](https://aur.archlinux.org/packages/conky-cairo/): Cool Desktop system monitor tool - Conky theme in dotfiles is set up to apear on a high DPI laptop display, may appear too large on 1920 x 1080 displays - [Flashfocus](https://github.com/fennerm/flashfocus): Makes windows flash once when switched to active - [Install Unimatrix](https://github.com/will8211/unimatrix): Cool terminal matrix text flow animation - [Install pipes](https://aur.archlinux.org/packages/bash-pipes/): Cool pipe terminal animation - [Install redshift](https://wiki.archlinux.org/index.php/Redshift): Changes screen tones for evening viewing - [Unclutter](https://wiki.archlinux.org/index.php/Unclutter): auto hides cursor after set time ## Recommended Applications ## - Terminal: Termite - File Manager: Dolphin - 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/) ## Application Theming: ## - [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) - [Set up This Firefox Theme](https://github.com/muckSponge/MaterialFox) - [Install Spicetify](https://github.com/khanhas/spicetify-cli): Make spotify sexy, guide below ### Spotify ### 1. Ensure [spicetify](https://github.com/khanhas/spicetify-cli) is installed 2. chown spotify directory: `sudo chown $USER -R /opt/spotify` 3. run `spicetify` once to generate config 4. `spicetify backup apply enable-devtool` to enable devtools 5. Place your color.ini and user.css in `~/.config/spicetify/Themes/` and edit `~/.config/spicetify/config.ini` to reflect this name 6. run `spicetify update restart` ### OhMyZsh ### - Install Powerline Fonts - `git clone https://github.com/powerline/fonts.git` - `cd fonts` - `./install.sh` - set font - Change theme to agnoster -`open ~/.zshrc` - Set ZSH_THEME="agnoster" and save the file - Install Plugins (Note That ~/.zshrc edits are in repo) - Syntax Hilighting - `git clone https://github.com/zsh-users/zsh-syntax-highlighting.git ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/zsh-syntax-highlighting` - Edit `~/.zshrc`, add `zsh-syntax-highlighting` to the plugins section - Reread config `source ~/.zshrc` - Autosuggestion - `git clone https://github.com/zsh-users/zsh-autosuggestions $ZSH_CUSTOM/plugins/zsh-autosuggestions` - Edit `~/.zshrc`, add `zsh-autosuggestions` to the plugins section - Reread config `source ~/.zshrc` - [Guide](https://www.freecodecamp.org/news/jazz-up-your-zsh-terminal-in-seven-steps-a-visual-guide-e81a8fd59a38/) ## Latte Dock Setup ## **Top Panel:** - Mode: panel - Widgets (in order): - Window Title Applet - Global Menu - GTK / Electron Global Menu Panel Support: - `sudo pacman -S appmenu-gtk-module appmenu-gtk-module` - `sudo pacman -S appmenu-gtk-module libdbusmenu-glib` - Spacer - Digital Clock - Spacer - Application Icons (Drag icons from application launcher to panel to add) - System Tray - User Switcher