Initial commit

Dotfiles managed with GNU Stow: Hyprland (Lua config), Neovim, zsh,
tmux, ghostty, alacritty, waybar, yazi, lazygit, herdr, Claude Code.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
2026-08-12 17:51:29 +02:00
commit 4eb93b7640
75 changed files with 3783 additions and 0 deletions
View File
+29
View File
@@ -0,0 +1,29 @@
general {
lock_cmd = pidof hyprlock || hyprlock
before_sleep_cmd = loginctl lock-session
after_sleep_cmd = hyprctl dispatch 'hl.dsp.dpms({ action = "on" })'
}
listener {
timeout = 600
on-timeout = brightnessctl -s set 10
on-resume = brightnessctl -r
}
listener {
timeout = 630
on-timeout = loginctl lock-session
}
listener {
timeout = 650
on-timeout = hyprctl dispatch 'hl.dsp.dpms({ action = "off" })'
on-resume = hyprctl dispatch 'hl.dsp.dpms({ action = "on" })'
}
# listener {
# timeout = 1800
# on-timeout = systemctl suspend
# }
+303
View File
@@ -0,0 +1,303 @@
-- Hyprland Lua config (migrated from hyprland.conf, hyprlang deprecated since 0.55)
-- https://wiki.hypr.land/Configuring/Start/
-- Multiple config files?
-- Create your files separately and then source them like this:
-- require("myColors")
------------------
---- MONITORS ----
------------------
-- See https://wiki.hypr.land/Configuring/Basics/Monitors/
hl.monitor({ output = "", mode = "preferred", position = "auto", scale = "auto" })
hl.monitor({ output = "DP-3", mode = "highres", position = "auto", scale = "auto" })
---------------------
---- MY PROGRAMS ----
---------------------
-- Set programs that you use
local terminal = "ghostty"
local fileManager = "nautilus"
local browser = "brave"
local menu = "wofi --show drun"
local pwManager = "bitwarden-desktop"
-------------------
---- AUTOSTART ----
-------------------
-- See https://wiki.hypr.land/Configuring/Basics/Autostart/
hl.on("hyprland.start", function()
hl.exec_cmd("waybar & swaync & hyprpaper & hypridle")
hl.exec_cmd("wl-paste --type text --watch cliphist store") -- Stores only text data
-- hl.exec_cmd("wl-paste --type image --watch cliphist store") -- Stores only image data
hl.exec_cmd("nextcloud --background")
hl.exec_cmd("handy") -- English instance (parakeet)
hl.exec_cmd("handy-no start") -- Norwegian instance (whisper-large-v3), private D-Bus + own data dir
-- Launch apps on specific workspaces (window rules below)
hl.exec_cmd("ghostty -e tmux")
hl.exec_cmd("brave")
hl.exec_cmd("steam")
end)
hl.window_rule({ match = { class = "^(com.mitchellh.ghostty)$" }, workspace = "1 silent" })
hl.window_rule({ match = { class = "^(brave-browser)$" }, workspace = "2 silent" })
hl.window_rule({ match = { class = "^(steam)$" }, workspace = "3 silent" })
-------------------------------
---- ENVIRONMENT VARIABLES ----
-------------------------------
-- See https://wiki.hypr.land/Configuring/Advanced-and-Cool/Environment-variables/
hl.env("XCURSOR_SIZE", "24")
hl.env("HYPRCURSOR_SIZE", "24")
hl.env("LIBVA_DRIVER_NAME", "nvidia")
hl.env("__GLX_VENDOR_LIBRARY_NAME", "nvidia")
-----------------------
---- LOOK AND FEEL ----
-----------------------
-- Refer to https://wiki.hypr.land/Configuring/Basics/Variables/
hl.config({
general = {
gaps_in = 5,
gaps_out = 20,
border_size = 2,
col = {
active_border = { colors = { "rgba(33ccffee)", "rgba(00ff99ee)" }, angle = 45 },
inactive_border = "rgba(595959aa)",
},
-- Set to true to enable resizing windows by clicking and dragging on borders and gaps
resize_on_border = true,
-- Please see https://wiki.hypr.land/Configuring/Advanced-and-Cool/Tearing/ before you turn this on
allow_tearing = false,
layout = "dwindle",
},
decoration = {
rounding = 10,
rounding_power = 2,
-- Change transparency of focused and unfocused windows
active_opacity = 1.0,
inactive_opacity = 1.0,
shadow = {
enabled = true,
range = 4,
render_power = 3,
color = "rgba(1a1a1aee)",
},
blur = {
enabled = true,
size = 3,
passes = 1,
vibrancy = 0.1696,
},
},
animations = {
enabled = false,
},
})
-- Default curves and animations, see https://wiki.hypr.land/Configuring/Advanced-and-Cool/Animations/
hl.curve("easeOutQuint", { type = "bezier", points = { {0.23, 1}, {0.32, 1} } })
hl.curve("easeInOutCubic", { type = "bezier", points = { {0.65, 0.05}, {0.36, 1} } })
hl.curve("linear", { type = "bezier", points = { {0, 0}, {1, 1} } })
hl.curve("almostLinear", { type = "bezier", points = { {0.5, 0.5}, {0.75, 1} } })
hl.curve("quick", { type = "bezier", points = { {0.15, 0}, {0.1, 1} } })
hl.animation({ leaf = "global", enabled = true, speed = 10, bezier = "default" })
hl.animation({ leaf = "border", enabled = true, speed = 5.39, bezier = "easeOutQuint" })
hl.animation({ leaf = "windows", enabled = true, speed = 4.79, bezier = "easeOutQuint" })
hl.animation({ leaf = "windowsIn", enabled = true, speed = 4.1, bezier = "easeOutQuint", style = "popin 87%" })
hl.animation({ leaf = "windowsOut", enabled = true, speed = 1.49, bezier = "linear", style = "popin 87%" })
hl.animation({ leaf = "fadeIn", enabled = true, speed = 1.73, bezier = "almostLinear" })
hl.animation({ leaf = "fadeOut", enabled = true, speed = 1.46, bezier = "almostLinear" })
hl.animation({ leaf = "fade", enabled = true, speed = 3.03, bezier = "quick" })
hl.animation({ leaf = "layers", enabled = true, speed = 3.81, bezier = "easeOutQuint" })
hl.animation({ leaf = "layersIn", enabled = true, speed = 4, bezier = "easeOutQuint", style = "fade" })
hl.animation({ leaf = "layersOut", enabled = true, speed = 1.5, bezier = "linear", style = "fade" })
hl.animation({ leaf = "fadeLayersIn", enabled = true, speed = 1.79, bezier = "almostLinear" })
hl.animation({ leaf = "fadeLayersOut", enabled = true, speed = 1.39, bezier = "almostLinear" })
hl.animation({ leaf = "workspaces", enabled = true, speed = 1.94, bezier = "almostLinear", style = "fade" })
hl.animation({ leaf = "workspacesIn", enabled = true, speed = 1.21, bezier = "almostLinear", style = "fade" })
hl.animation({ leaf = "workspacesOut", enabled = true, speed = 1.94, bezier = "almostLinear", style = "fade" })
-- Ref https://wiki.hypr.land/Configuring/Basics/Workspace-Rules/
-- "Smart gaps" / "No gaps when only"
-- uncomment all if you wish to use that.
-- hl.workspace_rule({ workspace = "w[tv1]", gaps_out = 0, gaps_in = 0 })
-- hl.workspace_rule({ workspace = "f[1]", gaps_out = 0, gaps_in = 0 })
-- hl.window_rule({ match = { float = false, workspace = "w[tv1]" }, border_size = 0, rounding = 0 })
-- hl.window_rule({ match = { float = false, workspace = "f[1]" }, border_size = 0, rounding = 0 })
hl.config({
-- See https://wiki.hypr.land/Configuring/Layouts/Dwindle-Layout/ for more
dwindle = {
-- pseudotile = true, -- Master switch for pseudotiling
preserve_split = true, -- You probably want this
},
-- See https://wiki.hypr.land/Configuring/Layouts/Master-Layout/ for more
master = {
new_status = "master",
},
misc = {
force_default_wallpaper = -1, -- Set to 0 or 1 to disable the anime mascot wallpapers
disable_hyprland_logo = false, -- If true disables the random hyprland logo / anime girl background. :(
},
})
---------------
---- INPUT ----
---------------
hl.config({
input = {
kb_layout = "us,no",
kb_variant = "",
kb_model = "",
kb_options = "caps:escape,grp:alt_shift_toggle",
kb_rules = "",
follow_mouse = 1,
sensitivity = 0, -- -1.0 - 1.0, 0 means no modification.
touchpad = {
natural_scroll = false,
},
},
})
-- Example per-device config
-- See https://wiki.hypr.land/Configuring/Advanced-and-Cool/Devices/ for more
hl.device({
name = "epic-mouse-v1",
sensitivity = -0.5,
})
---------------------
---- KEYBINDINGS ----
---------------------
local mainMod = "SUPER" -- Sets "Windows" key as main modifier
-- See https://wiki.hypr.land/Configuring/Basics/Binds/ for more
hl.bind(mainMod .. " + C", hl.dsp.window.close())
hl.bind(mainMod .. " + M", hl.dsp.exec_cmd("uwsm stop")) -- graceful uwsm session teardown instead of hl.dsp.exit()
hl.bind(mainMod .. " + F", hl.dsp.window.fullscreen())
hl.bind(mainMod .. " + Return", hl.dsp.exec_cmd(terminal))
hl.bind(mainMod .. " + E", hl.dsp.exec_cmd(fileManager))
hl.bind(mainMod .. " + space", hl.dsp.exec_cmd(menu))
hl.bind(mainMod .. " + B", hl.dsp.exec_cmd(browser))
hl.bind(mainMod .. " + P", hl.dsp.exec_cmd(pwManager))
hl.bind(mainMod .. " + A", hl.dsp.exec_cmd("grimblast copy area"))
hl.bind(mainMod .. " + S", hl.dsp.exec_cmd("grimblast save area"))
hl.bind(mainMod .. " + V", hl.dsp.exec_cmd("cliphist list | wofi --dmenu | cliphist decode | wl-copy"))
-- Handy speech-to-text, two instances (Wayland blocks app-global hotkeys,
-- so toggles go through the CLI single-instance forwarder instead):
-- T = English (parakeet), Y = Norwegian (whisper-large-v3, language pinned)
-- G / SHIFT+G = open English / Norwegian settings GUI
-- Push-to-talk: press toggles recording on, release toggles it off.
-- Release T/Y before SUPER, else the release event won't match and recording stays on.
-- Switch toggles to --toggle-post-process once a post-processing provider is set up
-- (plain --toggle-transcription avoids the 0.9.4 unconfigured-post-process segfault).
hl.bind(mainMod .. " + T", hl.dsp.exec_cmd("handy --toggle-transcription"))
hl.bind(mainMod .. " + T", hl.dsp.exec_cmd("handy --toggle-transcription"), { release = true })
hl.bind(mainMod .. " + Y", hl.dsp.exec_cmd("handy-no toggle"))
hl.bind(mainMod .. " + Y", hl.dsp.exec_cmd("handy-no toggle"), { release = true })
hl.bind(mainMod .. " + G", hl.dsp.exec_cmd("handy"))
hl.bind(mainMod .. " + SHIFT + G", hl.dsp.exec_cmd("handy-no gui"))
hl.bind("SUPER + SHIFT + L", hl.dsp.exec_cmd("hyprlock"))
-- System shutdown and reboot with confirmation
hl.bind(mainMod .. " + Q", hl.dsp.exec_cmd([=[if [[ $(wofi --dmenu --prompt="Shutdown?" --width=200 --height=100 <<< $'Yes\nNo') == "Yes" ]]; then pkill brave; systemctl poweroff; fi]=]))
hl.bind(mainMod .. " + R", hl.dsp.exec_cmd([=[if [[ $(wofi --dmenu --prompt="Reboot?" --width=200 --height=100 <<< $'Yes\nNo') == "Yes" ]]; then pkill brave; systemctl reboot; fi]=]))
-- Move focus with mainMod + hjkl
hl.bind(mainMod .. " + h", hl.dsp.focus({ direction = "left" }))
hl.bind(mainMod .. " + k", hl.dsp.focus({ direction = "up" }))
hl.bind(mainMod .. " + l", hl.dsp.focus({ direction = "right" }))
hl.bind(mainMod .. " + j", hl.dsp.focus({ direction = "down" }))
-- Switch workspaces with mainMod + [0-9]
-- Move active window to a workspace with mainMod + SHIFT + [0-9]
for i = 1, 10 do
local key = i % 10 -- 10 maps to key 0
hl.bind(mainMod .. " + " .. key, hl.dsp.focus({ workspace = i }))
hl.bind(mainMod .. " + SHIFT + " .. key, hl.dsp.window.move({ workspace = i }))
end
-- Example special workspace (scratchpad)
-- hl.bind(mainMod .. " + S", hl.dsp.workspace.toggle_special("magic"))
-- hl.bind(mainMod .. " + SHIFT + S", hl.dsp.window.move({ workspace = "special:magic" }))
-- Scroll through existing workspaces with mainMod + scroll
hl.bind(mainMod .. " + mouse_down", hl.dsp.focus({ workspace = "e+1" }))
hl.bind(mainMod .. " + mouse_up", hl.dsp.focus({ workspace = "e-1" }))
-- Move/resize windows with mainMod + LMB/RMB and dragging
hl.bind(mainMod .. " + mouse:272", hl.dsp.window.drag(), { mouse = true })
hl.bind(mainMod .. " + mouse:273", hl.dsp.window.resize(), { mouse = true })
-- Laptop multimedia keys for volume and LCD brightness
hl.bind("XF86AudioRaiseVolume", hl.dsp.exec_cmd("wpctl set-volume -l 1 @DEFAULT_AUDIO_SINK@ 5%+"), { locked = true, repeating = true })
hl.bind("XF86AudioLowerVolume", hl.dsp.exec_cmd("wpctl set-volume @DEFAULT_AUDIO_SINK@ 5%-"), { locked = true, repeating = true })
hl.bind("XF86AudioMute", hl.dsp.exec_cmd("wpctl set-mute @DEFAULT_AUDIO_SINK@ toggle"), { locked = true, repeating = true })
hl.bind("XF86AudioMicMute", hl.dsp.exec_cmd("wpctl set-mute @DEFAULT_AUDIO_SOURCE@ toggle"), { locked = true, repeating = true })
hl.bind("XF86MonBrightnessUp", hl.dsp.exec_cmd("brightnessctl s 10%+"), { locked = true, repeating = true })
hl.bind("XF86MonBrightnessDown", hl.dsp.exec_cmd("brightnessctl s 10%-"), { locked = true, repeating = true })
-- Requires playerctl
hl.bind("XF86AudioNext", hl.dsp.exec_cmd("playerctl next"), { locked = true })
hl.bind("XF86AudioPause", hl.dsp.exec_cmd("playerctl play-pause"), { locked = true })
hl.bind("XF86AudioPlay", hl.dsp.exec_cmd("playerctl play-pause"), { locked = true })
hl.bind("XF86AudioPrev", hl.dsp.exec_cmd("playerctl previous"), { locked = true })
--------------------------------
---- WINDOWS AND WORKSPACES ----
--------------------------------
-- See https://wiki.hypr.land/Configuring/Basics/Window-Rules/
-- and https://wiki.hypr.land/Configuring/Basics/Workspace-Rules/
-- Example windowrule
-- hl.window_rule({ match = { class = "^(kitty)$", title = "^(kitty)$" }, float = true })
-- Ignore maximize requests from apps. You'll probably like this.
-- hl.window_rule({ match = { class = ".*" }, suppress_event = "maximize" })
-- Fix some dragging issues with XWayland
-- hl.window_rule({
-- match = { class = "^$", title = "^$", xwayland = true, float = true, fullscreen = false, pin = false },
-- no_focus = true,
-- })
+79
View File
@@ -0,0 +1,79 @@
source = $HOME/.config/hypr/mocha.conf
$accent = $mauve
$accentAlpha = $mauveAlpha
$font = RobotoMono Nerd Font
# GENERAL
general {
disable_loading_bar = true
hide_cursor = true
}
# BACKGROUND
background {
monitor =
path = ~/dev/dotfiles/images/shaded.png
blur_passes = 2
color = $base
}
# TIME
label {
monitor =
text = cmd[update:30000] echo "$(date +"%R")"
color = $text
font_size = 90
font_family = $font
position = -30, 0
halign = right
valign = top
}
# DATE
label {
monitor =
text = cmd[update:43200000] echo "$(date +"%A, %d %B %Y")"
color = $text
font_size = 25
font_family = $font
position = -30, -150
halign = right
valign = top
}
# USER AVATAR
# image {
# monitor =
# path = ~/.face
# size = 100
# border_color = $accent
#
# position = 0, 75
# halign = center
# valign = center
# }
# INPUT FIELD
input-field {
monitor =
size = 300, 60
outline_thickness = 4
dots_size = 0.2
dots_spacing = 0.2
dots_center = true
outer_color = $accent
inner_color = $surface0
font_color = $text
fade_on_empty = false
placeholder_text = <span foreground="##$textAlpha"><i>󰌾 Logged in as </i><span foreground="##$accentAlpha">$USER</span></span>
hide_input = false
check_color = $accent
fail_color = $red
fail_text = <i>$FAIL <b>($ATTEMPTS)</b></i>
capslock_color = $yellow
position = 0, -35
halign = center
valign = center
}
+5
View File
@@ -0,0 +1,5 @@
preload = ~/dev/dotfiles/images/shaded.png
wallpaper {
monitor = DP-3
path = ~/dev/dotfiles/images/shaded.png
}
+77
View File
@@ -0,0 +1,77 @@
$rosewater = rgb(f5e0dc)
$rosewaterAlpha = f5e0dc
$flamingo = rgb(f2cdcd)
$flamingoAlpha = f2cdcd
$pink = rgb(f5c2e7)
$pinkAlpha = f5c2e7
$mauve = rgb(cba6f7)
$mauveAlpha = cba6f7
$red = rgb(f38ba8)
$redAlpha = f38ba8
$maroon = rgb(eba0ac)
$maroonAlpha = eba0ac
$peach = rgb(fab387)
$peachAlpha = fab387
$yellow = rgb(f9e2af)
$yellowAlpha = f9e2af
$green = rgb(a6e3a1)
$greenAlpha = a6e3a1
$teal = rgb(94e2d5)
$tealAlpha = 94e2d5
$sky = rgb(89dceb)
$skyAlpha = 89dceb
$sapphire = rgb(74c7ec)
$sapphireAlpha = 74c7ec
$blue = rgb(89b4fa)
$blueAlpha = 89b4fa
$lavender = rgb(b4befe)
$lavenderAlpha = b4befe
$text = rgb(cdd6f4)
$textAlpha = cdd6f4
$subtext1 = rgb(bac2de)
$subtext1Alpha = bac2de
$subtext0 = rgb(a6adc8)
$subtext0Alpha = a6adc8
$overlay2 = rgb(9399b2)
$overlay2Alpha = 9399b2
$overlay1 = rgb(7f849c)
$overlay1Alpha = 7f849c
$overlay0 = rgb(6c7086)
$overlay0Alpha = 6c7086
$surface2 = rgb(585b70)
$surface2Alpha = 585b70
$surface1 = rgb(45475a)
$surface1Alpha = 45475a
$surface0 = rgb(313244)
$surface0Alpha = 313244
$base = rgb(1e1e2e)
$baseAlpha = 1e1e2e
$mantle = rgb(181825)
$mantleAlpha = 181825
$crust = rgb(11111b)
$crustAlpha = 11111b
+45
View File
@@ -0,0 +1,45 @@
{
"position": "top",
"modules-left": ["hyprland/workspaces"],
"modules-center": ["hyprland/window"],
"modules-right": ["tray", "network", "pulseaudio", "clock"],
"tray": {
"icon-size": 16,
"spacing": 8
},
"clock": {
"interval": 60,
"format": "<span foreground='#f5c2e7'> </span>{:%a %d %H:%M}",
"tooltip-format": "<big>{:%Y %B}</big>\n<tt><small>{calendar}</small></tt>"
},
"battery": {
"states": {
"warning": 30,
"critical": 15
},
"format": "<span size='13000' foreground='#a6e3a1'>{icon} </span> {capacity}%",
"format-warning": "<span size='13000' foreground='#B1E3AD'>{icon} </span> {capacity}%",
"format-critical": "<span size='13000' foreground='#E38C8F'>{icon} </span> {capacity}%",
"format-charging": "<span size='13000' foreground='#B1E3AD'> </span>{capacity}%",
"format-plugged": "<span size='13000' foreground='#B1E3AD'> </span>{capacity}%",
"format-alt": "<span size='13000' foreground='#B1E3AD'>{icon} </span> {time}",
"format-full": "<span size='13000' foreground='#B1E3AD'> </span>{capacity}%",
"format-icons": ["", "", "", "", ""],
"tooltip-format": "{time}"
},
"network": {
"format-wifi": "<span size='13000' foreground='#f5e0dc'> </span>{essid}",
"format-ethernet": "<span size='13000' foreground='#f5e0dc'>󰤭 </span> Disconnected",
"format-linked": "{ifname} (No IP) ",
"format-disconnected": "<span size='13000' foreground='#f5e0dc'> </span>Disconnected",
"tooltip-format-wifi": "Signal Strenght: {signalStrength}%"
},
"pulseaudio": {
"format": "{icon} {volume}%",
"format-muted": "",
"format-icons": {
"default": ["", "", " "]
},
"on-click": "pavucontrol"
}
}
+26
View File
@@ -0,0 +1,26 @@
@define-color rosewater #f5e0dc;
@define-color flamingo #f2cdcd;
@define-color pink #f5c2e7;
@define-color mauve #cba6f7;
@define-color red #f38ba8;
@define-color maroon #eba0ac;
@define-color peach #fab387;
@define-color yellow #f9e2af;
@define-color green #a6e3a1;
@define-color teal #94e2d5;
@define-color sky #89dceb;
@define-color sapphire #74c7ec;
@define-color blue #89b4fa;
@define-color lavender #b4befe;
@define-color text #cdd6f4;
@define-color subtext1 #bac2de;
@define-color subtext0 #a6adc8;
@define-color overlay2 #9399b2;
@define-color overlay1 #7f849c;
@define-color overlay0 #6c7086;
@define-color surface2 #585b70;
@define-color surface1 #45475a;
@define-color surface0 #313244;
@define-color base #1e1e2e;
@define-color mantle #181825;
@define-color crust #11111b;
+132
View File
@@ -0,0 +1,132 @@
@import "mocha.css";
* {
font-family: "MesloLGS Nerd Font Mono Bold";
font-size: 16px;
min-height: 0;
font-weight: bold;
}
window#waybar {
background: transparent;
background-color: @crust;
color: @overlay0;
transition-property: background-color;
transition-duration: 0.1s;
border-bottom: 1px solid @overlay1;
}
#window {
margin: 8px;
padding-left: 8px;
padding-right: 8px;
}
button {
box-shadow: inset 0 -3px transparent;
border: none;
border-radius: 0;
}
button:hover {
background: inherit;
color: @mauve;
border-top: 2px solid @mauve;
}
#workspaces button {
padding: 0 4px;
}
#workspaces button.focused {
background-color: rgba(0, 0, 0, 0.3);
color: @rosewater;
border-top: 2px solid @rosewater;
}
#workspaces button.active {
background-color: rgba(0, 0, 0, 0.3);
color: @mauve;
border-top: 2px solid @mauve;
}
#workspaces button.urgent {
background-color: #eb4d4b;
}
#pulseaudio,
#clock,
#battery,
#cpu,
#memory,
#disk,
#temperature,
#backlight,
#wireplumber,
#tray,
#network,
#mode,
#scratchpad {
margin-top: 2px;
margin-bottom: 2px;
margin-left: 4px;
margin-right: 4px;
padding-left: 4px;
padding-right: 4px;
}
#language {
color: @peach;
border-bottom: 2px solid @peach;
}
#clock {
color: @maroon;
border-bottom: 2px solid @maroon;
}
#clock.date {
color: @mauve;
border-bottom: 2px solid @mauve;
}
#pulseaudio {
color: @blue;
border-bottom: 2px solid @blue;
}
#network {
color: @yellow;
border-bottom: 2px solid @yellow;
}
#idle_inhibitor {
margin-right: 12px;
color: #7cb342;
}
#idle_inhibitor.activated {
color: @red;
}
#battery {
color: @green;
border-bottom: 2px solid @green;
}
/* If workspaces is the leftmost module, omit left margin */
.modules-left>widget:first-child>#workspaces {
margin-left: 0;
}
/* If workspaces is the rightmost module, omit right margin */
.modules-right>widget:last-child>#workspaces {
margin-right: 0;
}
#custom-vpn {
color: @lavender;
border-radius: 15px;
padding-left: 6px;
padding-right: 6px;
}