diff --git a/hm-switch b/hm-switch index 3f38a2c..bd895a6 100755 --- a/hm-switch +++ b/hm-switch @@ -2,16 +2,18 @@ echo "You're about to switch your home-manager configuration as '$USER'" read -p "Continue (y/n)?" conf -read -p "Do you want to use doas instead of sudo? (y/n)" conf2 -elev="sudo" -if [ ${conf2,,} == "y" ]; then - elev="doas" -fi if [ ${conf,,} == "n" ]; then echo "If this is not you, then log into your profile first!" exit 1 else + +read -p "Do you want to use sudo instead of doas? (y/n)" conf2 +elev="doas" +if [ ${conf2,,} == "y" ]; then + elev="sudo" +fi + $elev nix build .\#hm-configs.$USER.activationPackage -o hm-result ./hm-result/activate $elev unlink hm-result diff --git a/home/config/dunst/dunstrc b/home/config/dunst/dunstrc new file mode 100644 index 0000000..7c0a600 --- /dev/null +++ b/home/config/dunst/dunstrc @@ -0,0 +1,66 @@ +[global] + monitor = 0 + follow = mouse + geometry = "250x20-50+20" + + # Turn on the progess bar + progress_bar = true + progress_bar_height = 3 + progress_bar_frame_width = 1 + progress_bar_min_width = 125 + progress_bar_max_width = 250 + indicate_hidden = yes + shrink = no + + transparency = 0.8 + separator_height = 2 + padding = 5 + text_icon_padding = 4 + frame_width = 3 + frame_color = "#ebdbb2" + separator_color = frame + sort = yes + idle_threshold = 120 + font = Fira Mono 10 + markup = full + format = "%a - %s\n%b" + alignment = left + vertical_alignment = center + show_age_threshold = 60 + word_wrap = yes + ellipsize = middle + ignore_newline = no + stack_duplicates = true + hide_duplicate_count = false + show_indicators = yes + icon_position = left + min_icon_size = 0 + max_icon_size = 32 + icon_path = /usr/share/icons/gnome/16x16/status/:/usr/share/icons/gnome/16x16/devices/ + sticky_history = yes + history_length = 20 + dmenu = /usr/bin/dmenu -p dunst: + browser = /usr/bin/firefox -new-tab + always_run_script = true + title = Dunst + class = Dunst + startup_notification = false + verbosity = mesg + corner_radius = 1 + ignore_dbusclose = false + +[urgency_low] + background = "#222222" + foreground = "#888888" + timeout = 10 + +[urgency_normal] + background = "#285577" + foreground = "#ffffff" + timeout = 10 + +[urgency_critical] + background = "#900000" + foreground = "#ffffff" + frame_color = "#ff0000" + timeout = 10 diff --git a/home/config/xmonad/nixos.xpm b/home/config/xmonad/nixos.xpm new file mode 100644 index 0000000..9c9c9f6 --- /dev/null +++ b/home/config/xmonad/nixos.xpm @@ -0,0 +1,61 @@ +/* XPM */ +static char *bigger[] = { +/* columns rows colors chars-per-pixel */ +"25 22 33 1 ", +" c None", +". c #5277C3", +"X c #5278C3", +"o c #5378C3", +"O c #557BC5", +"+ c #557CC6", +"@ c #567CC6", +"# c #567DC6", +"$ c #577EC6", +"% c #577EC7", +"& c #5880C7", +"* c #5981C8", +"= c #5C87CB", +"- c #5F8BCC", +"; c #608CCE", +": c #618DCE", +"> c #6594D1", +", c #6A9BD5", +"< c #6C9DD6", +"1 c #6C9ED6", +"2 c #6C9FD6", +"3 c #6DA0D7", +"4 c #71A6DA", +"5 c #76ADDE", +"6 c #76AEDE", +"7 c #79B2E0", +"8 c #79B3E0", +"9 c #7AB4E1", +"0 c #7BB4E1", +"q c #7CB7E2", +"w c #7CB7E3", +"e c #7DB8E3", +"r c #7EBAE4", +/* pixels */ +" .. rr r ", +" .. rr rr ", +" ... rrrrr ", +" ... rrrrr ", +" ........O2err ", +" ..........=6rr . ", +" rrr .. ", +" rr rrr ... ", +" rrr rq>X. ", +" rrr r4$X... ", +"rrrrrrrr :X..... ", +"rrrrrr7< ....... ", +" rre3$ ... ", +" rr9-o. .X ", +" rr $.. *$O ", +" rr ...2rrrr667rrrr ", +" r ..:7rrrrrrrrr ", +" ...$,rrrrrrrrr ", +" ..... rrr ", +" ... .. rr ", +" .. ... rr ", +" " +}; diff --git a/home/config/xmonad/xmobar.hs b/home/config/xmonad/xmobar.hs index d5f5bff..e9c03be 100644 --- a/home/config/xmonad/xmobar.hs +++ b/home/config/xmonad/xmobar.hs @@ -1,7 +1,9 @@ Config { position = Static { xpos = 0 , ypos = 0, width = 1805, height = 23 }, - font = "xft:Fira Mono:style=Regular:antialias=true:pixelsize=16" - additionalFonts = [ "xft:Font Awesome 5 Free Solid:pixelsize=15", "xft:Font Awesome 5 Brands:pixelsize=15" ] + 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", + "xft:Font Awesome 5 Brands:pixelsize=15" + ] bgColor = "#1d2021", fgColor = "#d5c4a1", lowerOnStart = False, @@ -9,16 +11,17 @@ Config { allDesktops = True, persistent = True, commands = [ - Run MultiCpu ["-t","\xf2db ","-L","20","-H","80","-h","#D3869B","-l","#8EC07C","-n","#EBDBB2"] 10, - Run Memory ["-t","\xf538 ","-H","12288","-L","6144","-h","#D3869B","-l","#8EC07C","-n","#EBDBB2"] 10, + Run MultiCpu ["-t","\xf2db %","-L","20","-H","80","-h","#D3869B","-l","#8EC07C","-n","#EBDBB2"] 10, + Run Memory ["-t","\xf538 %","-H","12288","-L","6144","-h","#D3869B","-l","#8EC07C","-n","#EBDBB2"] 20, + Run BatteryP ["BAT1","BAT0","BAT2"] ["-t", "", "-L", "10", "-H", "80", "-l", "#D3869B", "-h", "#8EC07C", "-n", "#EBDBB2", "--", "-O", "Charging", "-o", "%", "-a", "notify-send -u critical 'Battery running out!'", "-A", "5", "--lows", "\xf243 ", "--mediums", "\xf242 ", "--highs", "\xf240 "] 300, Run Network "wlp0s20f3" ["-t","\xf1eb /"] 10, - Run Date "\xf073 %b, %_d ║%l:%M:%S " "date" 10, - Run MPD ["-t", "\xf001 : ", "--", "-P", ">>", "-Z", "|", "-S", "><", "-h", "127.0.0.1", "-p", "6600"] 10, - Run Com "pamixer" ["--get-volume"] "" 10, + Run Date "<fn=1>\xf073 </fn>%a - %b, %_d ║%l:%M:%S " "date" 100, + Run MPD ["-t", "<fn=1>\xf001</fn> <statei><title>", "--", "-P", ">>: ", "-Z", "||: ", "-S", "Stopped", "-h", "127.0.0.1", "-p", "6600"] 10, + Run Com "pamixer" ["--get-volume"] "" 600, Run UnsafeStdinReader ], sepChar = "*", alignSep = "--", - template = "*UnsafeStdinReader* ║ *mpd* -- *multicpu*% ║ *memory*% ║ *wlp0s20f3* ║ <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* ║ *mpd* -- *multicpu* ║ *memory* ║ *wlp0s20f3* ║ *battery* ║ <fn=1></fn> <fc=#83a598>*pamixer*%</fc> ║ <fc=#ebdbb2>*date*</fc>" } diff --git a/home/config/xmonad/xmonad.hs b/home/config/xmonad/xmonad.hs index fd97c0c..ba5a470 100644 --- a/home/config/xmonad/xmonad.hs +++ b/home/config/xmonad/xmonad.hs @@ -1,8 +1,7 @@ import System.IO import System.Exit import XMonad -import XMonad.Config.Desktop -import XMonad.Layout.Fullscreen +import XMonad.Hooks.SetWMName import XMonad.Hooks.EwmhDesktops import XMonad.Hooks.DynamicLog import XMonad.Layout.NoBorders @@ -11,7 +10,6 @@ import XMonad.Layout.Spiral import XMonad.Layout.Tabbed import XMonad.Layout.ThreeColumns import XMonad.Layout.ResizableTile -import XMonad.Layout.ToggleLayouts (ToggleLayout(..), toggleLayouts) import XMonad.Hooks.ManageDocks import XMonad.Util.Run (spawnPipe) import qualified XMonad.StackSet as W @@ -24,10 +22,18 @@ myNormalBorderColor = "#1d2021" myModMask = mod4Mask myFocusedBorderColor = "#d5c4a1" myManageHook = composeAll - [ className =? "mpv" --> doFloat - , className =? "Discord" --> doFloat ] + [ className =? "Discord" --> doFloat ] -myWorkspaces = clickable $ ["I", "II", "III", "IV", "V", "VI", "VII", "VIII", "IX" ] +tabConfig = defaultTheme { + activeTextColor = "#1d2021", + activeColor = "#d5c4a1", + inactiveTextColor = "#d5c4a1", + inactiveColor = "#1d2021" +} + +myXmobarrc = "~/.xmonad/lib/xmobar.hs" + +myWorkspaces = clickable $ ["\xf269", "\xf120", "\xf121", "\xf392", "\xf008", "\xf07b", "\xf11b", "\xf086", "\xf074" ] where clickable l = ["<action=`xdotool key super+" ++ show (n) ++ "`>" ++ ws ++ "</action>" | (i,ws) <- zip [1..9] l, let n = i ] myKeys conf@(XConfig {XMonad.modMask = modMask}) = M.fromList $ @@ -74,7 +80,7 @@ myKeys conf@(XConfig {XMonad.modMask = modMask}) = M.fromList $ sendMessage NextLayout) , ((modMask, xK_f), - sendMessage (Toggle "Full")) + toggleFullscreen) , ((modMask .|. shiftMask, xK_space), setLayout $ XMonad.layoutHook conf) @@ -131,27 +137,58 @@ myKeys conf@(XConfig {XMonad.modMask = modMask}) = M.fromList $ | (i, k) <- zip (XMonad.workspaces conf) [xK_1 .. xK_9] , (f, m) <- [(W.greedyView, 0), (W.shift, shiftMask)]] -myLayoutHook = toggleLayouts (noBorders Full) ( smartSpacing 8 $ smartBorders $ avoidStruts ( +myLayoutHook = smartSpacing 8 $ smartBorders $ avoidStruts ( spiral (1/1) ||| tabbed shrinkText tabConfig ||| ThreeCol 1 (3/100) (1/2) ||| Tall 1 (3/100) (1/2) ||| Mirror (Tall 1 (3/100) (1/2)) ||| - Full)) + Full) -tabConfig = defaultTheme { - activeTextColor = "#1d2021", - activeColor = "#d5c4a1", - inactiveTextColor = "#d5c4a1", - inactiveColor = "#1d2021" -} +-- {{{source: https://github.com/liskin/dotfiles/commit/659af2ec68c26044f9e6ddf11655856613285685#diff-f3bd9f70ef878f30362ff11bbea7fd1d0d6abde1b4befa44b18cce5a27456204R190 +toggleFullscreen = + withWindowSet $ \ws -> + withFocused $ \w -> do + let fullRect = W.RationalRect 0 0 1 1 + let isFullFloat = w `M.lookup` W.floating ws == Just fullRect + windows $ if isFullFloat then W.sink w else W.float w fullRect +--}}} +--{{{ +--couldnt get fullScreenEventHook to work normally so using this for now +--source code: https://github.com/xmonad/xmonad-contrib/blob/v0.16/XMonad/Hooks/EwmhDesktops.hs -myXmobarrc = "~/.xmonad/lib/xmobar.hs" +fullscreenFix :: XConfig a -> XConfig a +fullscreenFix c = c { + startupHook = startupHook c +++ setSupportedWithFullscreen + } + where x +++ y = mappend x y + +setSupportedWithFullscreen :: X () +setSupportedWithFullscreen = withDisplay $ \dpy -> do + r <- asks theRoot + a <- getAtom "_NET_SUPPORTED" + c <- getAtom "ATOM" + supp <- mapM getAtom ["_NET_WM_STATE_HIDDEN" + ,"_NET_WM_STATE_FULLSCREEN" + ,"_NET_NUMBER_OF_DESKTOPS" + ,"_NET_CLIENT_LIST" + ,"_NET_CLIENT_LIST_STACKING" + ,"_NET_CURRENT_DESKTOP" + ,"_NET_DESKTOP_NAMES" + ,"_NET_ACTIVE_WINDOW" + ,"_NET_WM_DESKTOP" + ,"_NET_WM_STRUT" + ] + io $ changeProperty32 dpy r a c propModeReplace (fmap fromIntegral supp) + + setWMName "xmonad" +--}}} main = do xmproc <- spawnPipe ("xmobar " ++ myXmobarrc) - xmonad $ ewmh desktopConfig + xmonad $ docks $ fullscreenFix $ ewmh def { borderWidth = myBorderWidth - , manageHook = manageDocks <+> myManageHook + , manageHook = manageDocks <+> myManageHook + , handleEventHook = handleEventHook def <+> fullscreenEventHook , terminal = myTerminal , focusFollowsMouse = myFocusFollowsMouse , normalBorderColor = myNormalBorderColor @@ -162,7 +199,7 @@ main = do xmproc <- spawnPipe ("xmobar " ++ myXmobarrc) , workspaces = myWorkspaces , logHook = dynamicLogWithPP xmobarPP { ppOutput = hPutStrLn xmproc - , ppCurrent = xmobarColor "#b8bb26" "" . wrap "[" "]" + , ppCurrent = xmobarColor "#b8bb26" "" . wrap "+" "" , ppVisible = xmobarColor "#b8bb26" "" , ppHidden = xmobarColor "#d3869b" "" , ppTitle = xmobarColor "#ebdbb2" "" . shorten 60 diff --git a/home/natto.nix b/home/natto.nix index b6a721d..cd7c5a4 100644 --- a/home/natto.nix +++ b/home/natto.nix @@ -80,7 +80,7 @@ in ]; file = { - dwm-autostart = { + dwm-autostart = { source = ./config/dwm/autostart.sh; target = "${home}/.dwm/autostart.sh"; }; @@ -88,6 +88,10 @@ in source = ./config/dwm/bruhstatus.sh; target = "${home}/.dwm/bruhstatus.sh"; }; + dunstrc = { + source = ./config/dunst/dunstrc; + target = "${home}/.config/dunst/dunstrc"; + }; }; }; } diff --git a/home/stuff/services.nix b/home/stuff/services.nix index 8526549..6ad9ec3 100644 --- a/home/stuff/services.nix +++ b/home/stuff/services.nix @@ -83,6 +83,7 @@ in sticky = true; icon_size = 23; background = "#1d2021"; + icon_gravity = "E"; }; extraConfig = '' kludges force_icons_size diff --git a/home/stuff/xsession.nix b/home/stuff/xsession.nix index 3eaa699..9f2db7c 100644 --- a/home/stuff/xsession.nix +++ b/home/stuff/xsession.nix @@ -16,6 +16,7 @@ config = ../config/xmonad/xmonad.hs; libFiles = { "xmobar.hs" = ../config/xmonad/xmobar.hs; + "nixos.xpm" = ../config/xmonad/nixos.xpm; }; }; }; diff --git a/hosts/personal/satori/stuff.nix b/hosts/personal/satori/stuff.nix index 91c804b..de94070 100644 --- a/hosts/personal/satori/stuff.nix +++ b/hosts/personal/satori/stuff.nix @@ -23,6 +23,8 @@ fonts.fonts = with pkgs; [ fira-mono noto-fonts-cjk + lohit-fonts.devanagari + lohit-fonts.gurmukhi nerdfonts font-awesome ]; diff --git a/overlays/overridesandshit.nix b/overlays/overridesandshit.nix index 102f496..98cc7a3 100644 --- a/overlays/overridesandshit.nix +++ b/overlays/overridesandshit.nix @@ -5,7 +5,7 @@ final: prev: { url = "https://dl.suckless.org/tools/dmenu-5.0.tar.gz"; sha256 = "0gjjbh49j85rpbmiqj236g4c1zb1h8xh41mcjsvnzgwn72893mk6"; }; - patches = [./suckless/dmenu.patch]; + patches = [./patches/dmenu.patch]; }); dwm = prev.dwm.overrideAttrs (oldAttrs: rec { @@ -13,7 +13,7 @@ final: prev: { url = "https://dl.suckless.org/dwm/dwm-6.2.tar.gz"; sha256 = "0qdh8amfkjpvbwffar0byybcqi5w7v1wdqb39h75521haa6mh8xg"; }; - patches = [./suckless/dwm.patch]; + patches = [./patches/dwm.patch]; }); st = prev.st.overrideAttrs (oldAttrs: rec { @@ -21,7 +21,7 @@ final: prev: { url = "https://dl.suckless.org/st/st-0.8.4.tar.gz"; sha256 = "01z6i60fmdi5h6g80rgvqr6d00jxszphrldx07w4v6nq8cq2r4nr"; }; - patches = [./suckless/st.patch]; + patches = [./patches/st.patch]; }); kbd = prev.kbd.overrideAttrs (oldAttrs: rec{ @@ -47,5 +47,5 @@ final: prev: { }); discord = prev.discord.overrideAttrs (_ : { src = builtins.fetchTarball { url = "https://discord.com/api/download/stable?platform=linux&format=tar.gz"; sha256="1ahj4bhdfd58jcqh54qcgafljqxl1747fqqwxhknqlasa83li75n";}; - }); + }); } diff --git a/overlays/suckless/dmenu.patch b/overlays/patches/dmenu.patch similarity index 100% rename from overlays/suckless/dmenu.patch rename to overlays/patches/dmenu.patch diff --git a/overlays/suckless/dwm.patch b/overlays/patches/dwm.patch similarity index 100% rename from overlays/suckless/dwm.patch rename to overlays/patches/dwm.patch diff --git a/overlays/suckless/st.patch b/overlays/patches/st.patch similarity index 100% rename from overlays/suckless/st.patch rename to overlays/patches/st.patch