xmobar, nvim: change themes to tomorrow-night
This commit is contained in:
		
							
								
								
									
										58
									
								
								home/config/xmonad/padding-icon.sh
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										58
									
								
								home/config/xmonad/padding-icon.sh
									
									
									
									
									
										Executable file
									
								
							@@ -0,0 +1,58 @@
 | 
				
			|||||||
 | 
					#!/usr/bin/env bash
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# Taken from https://github.com/jaor/xmobar/blob/master/examples/padding-icon.sh
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# Detects the width of running window with name given as first
 | 
				
			||||||
 | 
					# argument (xprop name '$1') and creates an XPM icon of that width,
 | 
				
			||||||
 | 
					# 1px height, and transparent.  Outputs an <icon>-tag for use in
 | 
				
			||||||
 | 
					# xmobar to display the generated XPM icon.
 | 
				
			||||||
 | 
					#
 | 
				
			||||||
 | 
					# Run script from xmobar and trayer:
 | 
				
			||||||
 | 
					# `Run Com "/where/ever/padding-icon.sh" ["panel"] "trayerpad" 10`
 | 
				
			||||||
 | 
					# and use `%trayerpad%` in your template.
 | 
				
			||||||
 | 
					# or, if you're using for instance stalonetray:
 | 
				
			||||||
 | 
					# `Run Com "/where/ever/padding-icon.sh" ["stalonetray"] "tray" 10`
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# Very heavily based on Jonas Camillus Jeppensen code
 | 
				
			||||||
 | 
					# https://github.com/jaor/xmobar/issues/239#issuecomment-233206552
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# Function to create a transparent Wx1 px XPM icon
 | 
				
			||||||
 | 
					create_xpm_icon () {
 | 
				
			||||||
 | 
					timestamp=$(date)
 | 
				
			||||||
 | 
					pixels=$(for i in `seq $1`; do echo -n "."; done)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					cat << EOF > "$2"
 | 
				
			||||||
 | 
					/* XPM *
 | 
				
			||||||
 | 
					static char * trayer_pad_xpm[] = {
 | 
				
			||||||
 | 
					/* This XPM icon is used for padding in xmobar to */
 | 
				
			||||||
 | 
					/* leave room for trayer-srg. It is dynamically   */
 | 
				
			||||||
 | 
					/* updated by by trayer-pad-icon.sh which is run  */
 | 
				
			||||||
 | 
					/* by xmobar.                                     */
 | 
				
			||||||
 | 
					/* Created: ${timestamp} */
 | 
				
			||||||
 | 
					/* <w/cols>  <h/rows>  <colors>  <chars per pixel> */
 | 
				
			||||||
 | 
					"$1 1 1 1",
 | 
				
			||||||
 | 
					/* Colors (none: transparent) */
 | 
				
			||||||
 | 
					". c none",
 | 
				
			||||||
 | 
					/* Pixels */
 | 
				
			||||||
 | 
					"$pixels"
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 | 
					EOF
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# panel window name
 | 
				
			||||||
 | 
					pname=${1:-panel}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# Width of the trayer window
 | 
				
			||||||
 | 
					width=$(xprop -name $pname | grep 'program specified minimum size' | cut -d ' ' -f 5)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# Icon file name
 | 
				
			||||||
 | 
					iconfile="/tmp/$pname-padding-${width:-0}px.xpm"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# If the desired icon does not exist create it
 | 
				
			||||||
 | 
					if [ ! -f $iconfile ]
 | 
				
			||||||
 | 
					then
 | 
				
			||||||
 | 
					    create_xpm_icon $width $iconfile
 | 
				
			||||||
 | 
					fi
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# Output the icon tag for xmobar
 | 
				
			||||||
 | 
					echo "<icon=${iconfile}/>"
 | 
				
			||||||
@@ -1,28 +1,46 @@
 | 
				
			|||||||
Config {
 | 
					import Xmobar
 | 
				
			||||||
    position = Static { xpos = 0 , ypos = 0, width = 1805, height = 23 },
 | 
					
 | 
				
			||||||
    font = "xft:Fira Mono:style=Regular:antialias=true:pixelsize=16,Font Awesome 5 Brands:pixelsize=16,Font Awesome 5 Free:pixelsize=16:style=Solid,Lohit Devanagari:style=Regular:pixelsize=16,Lohit Gurmukhi:style=Regular:pixelsize=16,Noto Sans CJK JP:style=Regular:pixelsize=16,Noto Sans CJK KR:style=Regular:pixelsize=16,Noto Sans CJK SC:style=Regular:pixelsize=16"
 | 
					bg, fg, grey, red, green, yellow, blue, magenta, cyan, white, sep :: String
 | 
				
			||||||
 | 
					sep = "<fc=" ++ cyan ++ ">║</fc>"
 | 
				
			||||||
 | 
					bg = "#1d1f21"
 | 
				
			||||||
 | 
					fg = "#c5c8c6"
 | 
				
			||||||
 | 
					grey = "#969896"
 | 
				
			||||||
 | 
					red  = "#cc6666"
 | 
				
			||||||
 | 
					green = "#b5bd68"
 | 
				
			||||||
 | 
					yellow = "#f0c674"
 | 
				
			||||||
 | 
					blue = "#81a2be"
 | 
				
			||||||
 | 
					magenta = "#b294bb"
 | 
				
			||||||
 | 
					cyan = "#8abeb7"
 | 
				
			||||||
 | 
					white = "#ecebec"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					config :: Config
 | 
				
			||||||
 | 
					config = defaultConfig {
 | 
				
			||||||
 | 
					    font = "xft:Fira Mono:style=Regular:antialias=true:pixelsize=16,Font Awesome 5 Brands:pixelsize=16,Font Awesome 5 Free:pixelsize=16:style=Solid,Lohit Devanagari:style=Regular:pixelsize=16,Lohit Gurmukhi:style=Regular:pixelsize=16,Noto Sans CJK JP:style=Regular:pixelsize=16,Noto Sans CJK KR:style=Regular:pixelsize=16,Noto Sans CJK SC:style=Regular:pixelsize=16",
 | 
				
			||||||
    additionalFonts = [ "xft:Font Awesome 5 Free:pixelsize=15:style=Solid", 
 | 
					    additionalFonts = [ "xft:Font Awesome 5 Free:pixelsize=15:style=Solid", 
 | 
				
			||||||
                        "xft:Font Awesome 5 Brands:pixelsize=15"
 | 
					                        "xft:Font Awesome 5 Brands:pixelsize=15"],
 | 
				
			||||||
                      ]
 | 
					    bgColor = bg,
 | 
				
			||||||
    bgColor = "#1d2021",
 | 
					    fgColor = fg,
 | 
				
			||||||
    fgColor = "#d5c4a1",
 | 
					 | 
				
			||||||
    lowerOnStart = False,
 | 
					    lowerOnStart = False,
 | 
				
			||||||
    overrideRedirect = False,
 | 
					    overrideRedirect = False,
 | 
				
			||||||
    allDesktops = True,
 | 
					    allDesktops = True,
 | 
				
			||||||
    persistent = True,
 | 
					    persistent = True,
 | 
				
			||||||
    commands = [
 | 
					    commands = [
 | 
				
			||||||
        Run MultiCpu ["-t","<fn=1>\xf2db</fn> <total>%","-L","20","-H","80","-h","#D3869B","-l","#8EC07C","-n","#EBDBB2"] 10,
 | 
					        Run $ MultiCpu ["-t","<fn=1>\xf2db</fn> <total>%","-L","20","-H","80","-h",magenta,"-l",green,"-n",yellow] 10,
 | 
				
			||||||
        Run Memory ["-t","<fn=1>\xf538</fn> <usedratio>%","-H","12288","-L","6144","-h","#D3869B","-l","#8EC07C","-n","#EBDBB2"] 20,
 | 
					        Run $ Memory ["-t","<fn=1>\xf538</fn> <usedratio>%","-H","10240","-L","6144","-h",magenta,"-l",green,"-n",yellow] 20,
 | 
				
			||||||
        Run BatteryP ["BAT1","BAT0","BAT2"] ["-t", "<acstatus>", "-L", "10", "-H", "80", "-l", "#D3869B", "-h", "#8EC07C", "-n", "#EBDBB2", "--", "-O", "Charging", "-o", "<left>%", "-a", "notify-send -u critical 'Battery running out!'", "-A", "5", "--lows", "<fn=1>\xf243</fn> ", "--mediums", "<fn=1>\xf242</fn> ", "--highs", "<fn=1>\xf240</fn> "] 300,
 | 
					        Run $ BatteryP ["BAT1","BAT0","BAT2"] ["-t", "<acstatus>", "-L", "10", "-H", "80", "-l", magenta, "-h", green, "-n", yellow, "--", "-O", "Charging", "-o", "<left>%", "-a", "notify-send -u critical 'Battery running out!'", "-A", "5", "--lows", "<fn=1>\xf243</fn> ", "--mediums", "<fn=1>\xf242</fn> ", "--highs", "<fn=1>\xf240</fn> "] 300,
 | 
				
			||||||
        Run Network "wlp0s20f3" ["-t","<fn=1>\xf1eb</fn> <fc=#fabd2f><rx>/<tx></fc>"] 10,
 | 
					        Run $ Network "wlp0s20f3" ["-t","<fn=1>\xf1eb</fn> <fc=" ++ magenta ++"><rx>/<tx></fc>"] 10,
 | 
				
			||||||
        Run Date "<fn=1>\xf073 </fn> %a - %b, %_d ║ %H:%M:%S " "date" 100,
 | 
					        Run $ Date "<fn=1>\xf073</fn> %-d/%-m/%-y/%w" "date" 100000,
 | 
				
			||||||
        Run MPD ["-t", "<statei><title>", "--", "-P", ">> ", "-Z", "|| ", "-S", "Stopped", "-h", "127.0.0.1", "-p", "6600"] 10,
 | 
					        Run $ Date "%H:%M:%S" "time" 10,
 | 
				
			||||||
 --       Run Com "playerctl" ["--player", "playerctld", "metadata", "--format", "{{status}}: {{title}}"] "" 10,
 | 
					        Run $ MPD ["-t", "<statei><title><fn="++ magenta ++"> \xf001</fn>", "--", "-P", ">> ", "-Z", "|| ", "-S", "Stopped", "-h", "127.0.0.1", "-p", "6600"] 10,
 | 
				
			||||||
        Run Com "pamixer" ["--get-volume"] "" 600,
 | 
					        Run $ Com "/home/natto/.xmonad/lib/padding-icon.sh" ["stalonetray"] "tray" 10,
 | 
				
			||||||
 | 
					        Run $ Com "pamixer" ["--get-volume"] "" 100,
 | 
				
			||||||
        Run UnsafeStdinReader
 | 
					        Run UnsafeStdinReader
 | 
				
			||||||
    ],
 | 
					    ],
 | 
				
			||||||
    sepChar = "*",
 | 
					    sepChar = "*",
 | 
				
			||||||
    alignSep = "--",
 | 
					    alignSep = "--",
 | 
				
			||||||
    template = "<action=`dmenu_run` button=1><icon=/home/natto/.xmonad/lib/nixos.xpm/></action> *UnsafeStdinReader* | <fn=1></fn> *mpd* -- *multicpu* | *memory* | *wlp0s20f3* | *battery* | <fn=1></fn> <fc=#83a598>*pamixer*%</fc> | <fc=#ebdbb2>*date*</fc>"
 | 
					    template = "<action=`dmenu_run` button=1><icon=/home/natto/.xmonad/lib/nixos.xpm/></action> *UnsafeStdinReader* " ++ sep ++ " <fn=1></fn>*mpd* -- *multicpu* " ++ sep ++ " *memory* " ++ sep ++ " *wlp0s20f3* " ++ sep ++ " *battery* " ++ sep ++ " <fn=1>\xf028</fn> <fc=" ++ green ++ ">*pamixer*%</fc> " ++ sep ++ " *date* - *time* *tray*"
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					main :: IO ()
 | 
				
			||||||
 | 
					main = xmobar config
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -19,20 +19,30 @@ import XMonad.Actions.CycleWindows
 | 
				
			|||||||
import qualified XMonad.StackSet as W
 | 
					import qualified XMonad.StackSet as W
 | 
				
			||||||
import qualified Data.Map        as M
 | 
					import qualified Data.Map        as M
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					--colors
 | 
				
			||||||
 | 
					bgColor = "#1d1f21"
 | 
				
			||||||
 | 
					fgColor = "#c5c8c6"
 | 
				
			||||||
 | 
					activeWinColor = "#f0c674"
 | 
				
			||||||
 | 
					inactiveWinColor = "#b294bb"
 | 
				
			||||||
 | 
					urgentWinColor = "#cc6666"
 | 
				
			||||||
 | 
					miscColor = "#8abeb7"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
myBorderWidth = 2
 | 
					myBorderWidth = 2
 | 
				
			||||||
myTerminal = "/usr/bin/env st"
 | 
					myTerminal = "/usr/bin/env st"
 | 
				
			||||||
myFocusFollowsMouse = True
 | 
					myFocusFollowsMouse = True
 | 
				
			||||||
myNormalBorderColor = "#1d2021"
 | 
					myNormalBorderColor = bgColor
 | 
				
			||||||
myModMask = mod4Mask
 | 
					myModMask = mod4Mask
 | 
				
			||||||
myFocusedBorderColor = "#d5c4a1"
 | 
					myFocusedBorderColor = fgColor
 | 
				
			||||||
myManageHook = composeAll
 | 
					myManageHook = composeAll
 | 
				
			||||||
    [ className =? "Discord" --> doFloat ]
 | 
					    [ className =? "Discord" --> doFloat 
 | 
				
			||||||
 | 
					    , className =? "Anki"    --> doFloat
 | 
				
			||||||
 | 
					    ]
 | 
				
			||||||
 | 
					
 | 
				
			||||||
tabConfig = defaultTheme {
 | 
					tabConfig = defaultTheme {
 | 
				
			||||||
    activeTextColor = "#1d2021",
 | 
					    activeTextColor = bgColor,
 | 
				
			||||||
    activeColor = "#d5c4a1",
 | 
					    activeColor = fgColor,
 | 
				
			||||||
    inactiveTextColor = "#d5c4a1",
 | 
					    inactiveTextColor = fgColor,
 | 
				
			||||||
    inactiveColor = "#1d2021"
 | 
					    inactiveColor = bgColor
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
myXmobarrc = "~/.xmonad/lib/xmobar.hs"
 | 
					myXmobarrc = "~/.xmonad/lib/xmobar.hs"
 | 
				
			||||||
@@ -236,12 +246,12 @@ main = do xmproc <- spawnPipe ("xmobar " ++ myXmobarrc)
 | 
				
			|||||||
              , workspaces         = myWorkspaces
 | 
					              , workspaces         = myWorkspaces
 | 
				
			||||||
              , logHook            = dynamicLogWithPP xmobarPP
 | 
					              , logHook            = dynamicLogWithPP xmobarPP
 | 
				
			||||||
                  { ppOutput = hPutStrLn xmproc
 | 
					                  { ppOutput = hPutStrLn xmproc
 | 
				
			||||||
                  , ppCurrent = xmobarColor "#b8bb26" "" . wrap "+" ""
 | 
					                  , ppCurrent = xmobarColor activeWinColor "" . wrap "(" ")"
 | 
				
			||||||
                  , ppVisible = xmobarColor "#b8bb26" ""
 | 
					                    , ppVisible = xmobarColor activeWinColor ""
 | 
				
			||||||
                  , ppHidden = xmobarColor "#d3869b" ""
 | 
					                    , ppHidden = xmobarColor inactiveWinColor ""
 | 
				
			||||||
                  , ppTitle = xmobarColor "#ebdbb2" "" . shorten 60
 | 
					                  , ppTitle = xmobarColor fgColor "" . shorten 40
 | 
				
			||||||
                  , ppLayout = const ""
 | 
					                  , ppLayout = const ""
 | 
				
			||||||
                  , ppUrgent = xmobarColor "#fabd2f" "" . wrap "!" ""
 | 
					                  , ppUrgent = xmobarColor urgentWinColor "" . wrap "!" ""
 | 
				
			||||||
                  , ppSep = "<fc=#83a598> ║ </fc>"
 | 
					                  , ppSep = "<fc=" ++ miscColor ++ "> ║ </fc>"
 | 
				
			||||||
                  }
 | 
					                  }
 | 
				
			||||||
              }
 | 
					              }
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -89,7 +89,8 @@ in
 | 
				
			|||||||
      stalonetray = {
 | 
					      stalonetray = {
 | 
				
			||||||
        enable = true;
 | 
					        enable = true;
 | 
				
			||||||
        config = {
 | 
					        config = {
 | 
				
			||||||
          geometry = "5x1+1805";
 | 
					          geometry = "5x1-0+0";
 | 
				
			||||||
 | 
					          no_shrink = true;
 | 
				
			||||||
          window_type = "dock";
 | 
					          window_type = "dock";
 | 
				
			||||||
          sticky = true;
 | 
					          sticky = true;
 | 
				
			||||||
          icon_size = 23;
 | 
					          icon_size = 23;
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -13,9 +13,11 @@
 | 
				
			|||||||
      xmonad = {
 | 
					      xmonad = {
 | 
				
			||||||
        enable = true;
 | 
					        enable = true;
 | 
				
			||||||
        enableContribAndExtras = true;
 | 
					        enableContribAndExtras = true;
 | 
				
			||||||
 | 
					        extraPackages = hs: [ hs.xmobar ];
 | 
				
			||||||
        config = ../config/xmonad/xmonad.hs;
 | 
					        config = ../config/xmonad/xmonad.hs;
 | 
				
			||||||
        libFiles = {
 | 
					        libFiles = {
 | 
				
			||||||
          "xmobar.hs" = ../config/xmonad/xmobar.hs;
 | 
					          "xmobar.hs" = ../config/xmonad/xmobar.hs;
 | 
				
			||||||
 | 
					          "padding-icon.sh" = ../config/xmonad/padding-icon.sh;
 | 
				
			||||||
          "nixos.xpm" = ../config/xmonad/nixos.xpm;
 | 
					          "nixos.xpm" = ../config/xmonad/nixos.xpm;
 | 
				
			||||||
        };
 | 
					        };
 | 
				
			||||||
      };
 | 
					      };
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -30,7 +30,8 @@
 | 
				
			|||||||
          vim-vsnip
 | 
					          vim-vsnip
 | 
				
			||||||
          nvim-treesitter
 | 
					          nvim-treesitter
 | 
				
			||||||
          vim-latex-live-preview
 | 
					          vim-latex-live-preview
 | 
				
			||||||
          (gruvbox.overrideAttrs (oa: { patches = [ ./gruvbox.patch ]; }))
 | 
					        # (gruvbox.overrideAttrs (oa: { patches = [ ./gruvbox.patch ]; }))
 | 
				
			||||||
 | 
					          base16-vim
 | 
				
			||||||
        ];
 | 
					        ];
 | 
				
			||||||
      };
 | 
					      };
 | 
				
			||||||
    };
 | 
					    };
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -140,12 +140,12 @@ bind('n', "<M-o>", ":NvimTreeToggle<CR>", {noremap=true, silent=true})
 | 
				
			|||||||
bind('n', "<Space>r", ":NvimTreeRefresh<CR>", {noremap=true, silent=true})
 | 
					bind('n', "<Space>r", ":NvimTreeRefresh<CR>", {noremap=true, silent=true})
 | 
				
			||||||
bind('n', "<Space>f", ":NvimTreeFindFile<CR>", {noremap=true, silent=true})
 | 
					bind('n', "<Space>f", ":NvimTreeFindFile<CR>", {noremap=true, silent=true})
 | 
				
			||||||
 | 
					
 | 
				
			||||||
--gruvbox
 | 
					--theme
 | 
				
			||||||
vim.g.gruvbox_italic=1
 | 
					--im.g.gruvbox_italic=1
 | 
				
			||||||
vim.g.gruvbox_contrast_dark="hard"
 | 
					--vim.g.gruvbox_contrast_dark="hard"
 | 
				
			||||||
vim.g.gruvbox_contrast_light="hard"
 | 
					--vim.g.gruvbox_contrast_light="hard"
 | 
				
			||||||
vim.o.background="dark"
 | 
					vim.o.background="dark"
 | 
				
			||||||
comm("colorscheme gruvbox")
 | 
					comm("colorscheme base16-tomorrow-night")
 | 
				
			||||||
 | 
					
 | 
				
			||||||
--floaterm
 | 
					--floaterm
 | 
				
			||||||
vim.g.floaterm_keymap_toggle = '<F1>'
 | 
					vim.g.floaterm_keymap_toggle = '<F1>'
 | 
				
			||||||
@@ -311,9 +311,9 @@ local function mode()
 | 
				
			|||||||
    return mode_map[m]
 | 
					    return mode_map[m]
 | 
				
			||||||
end
 | 
					end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
hi("Light", "guibg=#fbf1c7 guifg=#1d2021")
 | 
					hi("Light", "guibg=#c5c8c6 guifg=#1d1f21")
 | 
				
			||||||
hi("Dark", "guibg=#1d2021 guifg=#fbf1c7")
 | 
					hi("Dark", "guibg=#1d1f21 guifg=#c5c8c6")
 | 
				
			||||||
hi("Gray", "guifg=#fbf1c7 guibg=#665c54")
 | 
					hi("Gray", "guifg=#1d1f21 guibg=#b294bb")
 | 
				
			||||||
 | 
					
 | 
				
			||||||
local function git()
 | 
					local function git()
 | 
				
			||||||
    local branch = io.popen([[git rev-parse --abbrev-ref HEAD 2>/dev/null | tr -d '\n']]):read("*a")
 | 
					    local branch = io.popen([[git rev-parse --abbrev-ref HEAD 2>/dev/null | tr -d '\n']]):read("*a")
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user