From ba8dbff5116321d6f571432d1cc95bd1d3ea98a4 Mon Sep 17 00:00:00 2001 From: natto1784 Date: Wed, 16 Jun 2021 01:36:39 +0530 Subject: [PATCH] home:natto: switched to xmonad+xmobar --- configs/nvim.nix | 5 +- configs/nvim/init.lua | 7 +- home/config/xmonad/xmobar.hs | 24 ++++ home/config/xmonad/xmonad.hs | 173 +++++++++++++++++++++++++++++ home/natto.nix | 3 +- home/stuff/services.nix | 19 +++- home/stuff/xsession.nix | 18 ++- hosts/personal/satori/boot.nix | 7 +- hosts/personal/satori/hardware.nix | 6 + hosts/personal/satori/stuff.nix | 2 + overlays/customscripts/src/up | 6 + overlays/customscripts/src/x0 | 2 +- 12 files changed, 253 insertions(+), 19 deletions(-) create mode 100644 home/config/xmonad/xmobar.hs create mode 100644 home/config/xmonad/xmonad.hs create mode 100644 overlays/customscripts/src/up diff --git a/configs/nvim.nix b/configs/nvim.nix index 1e6432a..e3e8f50 100644 --- a/configs/nvim.nix +++ b/configs/nvim.nix @@ -6,9 +6,10 @@ package = pkgs.neovim-nightly; defaultEditor = true; configure = { - customRC ="lua << EOF\n" + builtins.readFile ./nvim/init.lua + "\nEOF\n"; + customRC = "lua << EOF\n" + builtins.readFile ./nvim/init.lua + "\nEOF\n"; packages.myVimPackage = with pkgs.vimPlugins; { start = [ + nvim-colorizer-lua auto-pairs vim-floaterm vim-closetag @@ -22,6 +23,7 @@ vim-rooter vim-polyglot nvim-tree-lua + indentLine (gruvbox.overrideAttrs (oa: { patches = [ ./nvim/gruvbox.patch ]; })) (pkgs.vimUtils.buildVimPlugin { name = "presence-nvim"; @@ -38,4 +40,3 @@ }; }; } - diff --git a/configs/nvim/init.lua b/configs/nvim/init.lua index 6f880d2..1279cb3 100644 --- a/configs/nvim/init.lua +++ b/configs/nvim/init.lua @@ -41,6 +41,7 @@ set("lazyredraw") set("timeoutlen=100") set("clipboard=unnamedplus") + --KEYBINDS --Colemak-DH bind fuction for hjkl [mnei]) @@ -133,8 +134,8 @@ vim.g.nvim_tree_window_picker_exclude = { ['buftype'] = { 'terminal' } } bind('n', "", ":NvimTreeToggle", {noremap=true, silent=true}) ---bind('n', "r", ":NvimTreeRefresh", {noremap=true, silent=true}) ---bind('n', "f", ":NvimTreeFindFile", {noremap=true, silent=true}) +bind('n', "r", ":NvimTreeRefresh", {noremap=true, silent=true}) +bind('n', "f", ":NvimTreeFindFile", {noremap=true, silent=true}) --gruvbox vim.g.gruvbox_italic=1 @@ -317,3 +318,5 @@ local servers = { "clangd", "rust_analyzer", "tsserver", "jedi_language_server" for _, lsp in ipairs(servers) do nvim_lsp[lsp].setup { on_attach = on_attach } end + +require'colorizer'.setup() diff --git a/home/config/xmonad/xmobar.hs b/home/config/xmonad/xmobar.hs new file mode 100644 index 0000000..d5f5bff --- /dev/null +++ b/home/config/xmonad/xmobar.hs @@ -0,0 +1,24 @@ +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" ] + bgColor = "#1d2021", + fgColor = "#d5c4a1", + lowerOnStart = False, + overrideRedirect = False, + 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 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 UnsafeStdinReader + ], + sepChar = "*", + alignSep = "--", + template = "*UnsafeStdinReader* ║ *mpd* -- *multicpu*% ║ *memory*% ║ *wlp0s20f3* ║ <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 new file mode 100644 index 0000000..fd97c0c --- /dev/null +++ b/home/config/xmonad/xmonad.hs @@ -0,0 +1,173 @@ +import System.IO +import System.Exit +import XMonad +import XMonad.Config.Desktop +import XMonad.Layout.Fullscreen +import XMonad.Hooks.EwmhDesktops +import XMonad.Hooks.DynamicLog +import XMonad.Layout.NoBorders +import XMonad.Layout.Spacing (smartSpacing) +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 +import qualified Data.Map as M + +myBorderWidth = 2 +myTerminal = "/usr/bin/env st" +myFocusFollowsMouse = True +myNormalBorderColor = "#1d2021" +myModMask = mod4Mask +myFocusedBorderColor = "#d5c4a1" +myManageHook = composeAll + [ className =? "mpv" --> doFloat + , className =? "Discord" --> doFloat ] + +myWorkspaces = clickable $ ["I", "II", "III", "IV", "V", "VI", "VII", "VIII", "IX" ] + 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 $ + [ ((modMask, xK_Return), + spawn $ XMonad.terminal conf) + + , ((modMask, xK_d), + spawn "/usr/bin/env dmenu_run -l 20") + + , ((shiftMask, xK_Print), + spawn "flameshot gui -p /home/natto/Pictures") + + , ((0, xK_Print), + spawn "flameshot full -p /home/natto/Pictures") + + , ((mod1Mask, xK_Print), + spawn "flameshot full -p /home/natto/Pictures -d 10000") + + , ((modMask, xK_p), + spawn "mpc toggle") + + , ((modMask, xK_h), + spawn "mpc next") + + , ((modMask, xK_k), + spawn "mpc prev") + + , ((modMask .|. shiftMask, xK_a), + spawn "mpc seek -00:00:05") + + , ((modMask .|. shiftMask, xK_s), + spawn "mpc seek +00:00:05") + + , ((modMask .|. shiftMask, xK_period), + spawn "pamixer --allow-boost -i 5") + + , ((modMask .|. shiftMask, xK_comma), + spawn "pamixer -d 5") + + , ((modMask .|. shiftMask, xK_q), + kill) + + , ((modMask, xK_space), + sendMessage NextLayout) + + , ((modMask, xK_f), + sendMessage (Toggle "Full")) + + , ((modMask .|. shiftMask, xK_space), + setLayout $ XMonad.layoutHook conf) + + , ((modMask, xK_r), + refresh) + + , ((modMask, xK_n), + windows W.focusDown) + + , ((modMask, xK_e), windows W.focusUp ) + + , ((modMask .|. shiftMask, xK_m), + windows W.focusMaster ) + + , ((modMask .|. shiftMask, xK_Return), + windows W.swapMaster) + + , ((modMask .|. shiftMask, xK_n), + windows W.swapDown ) + + , ((modMask .|. shiftMask, xK_e), + windows W.swapUp ) + + , ((mod1Mask, xK_m), + sendMessage Shrink) + + , ((mod1Mask, xK_i), + sendMessage Expand) + + , ((mod1Mask, xK_n), + sendMessage MirrorShrink) + + , ((mod1Mask, xK_e), + sendMessage MirrorExpand) + + , ((modMask, xK_t), + withFocused $ windows . W.sink) + + , ((modMask, xK_comma), + sendMessage (IncMasterN 1)) + + , ((modMask, xK_period), + sendMessage (IncMasterN (-1))) + + , ((modMask .|. mod1Mask, xK_f), + io (exitWith ExitSuccess)) + + , ((modMask .|. mod1Mask, xK_r), + restart "xmonad" True) + ] + ++ + [((m .|. modMask, k), windows $ f i) + | (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 ( + 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)) + +tabConfig = defaultTheme { + activeTextColor = "#1d2021", + activeColor = "#d5c4a1", + inactiveTextColor = "#d5c4a1", + inactiveColor = "#1d2021" +} + +myXmobarrc = "~/.xmonad/lib/xmobar.hs" + +main = do xmproc <- spawnPipe ("xmobar " ++ myXmobarrc) + xmonad $ ewmh desktopConfig + { borderWidth = myBorderWidth + , manageHook = manageDocks <+> myManageHook + , terminal = myTerminal + , focusFollowsMouse = myFocusFollowsMouse + , normalBorderColor = myNormalBorderColor + , layoutHook = myLayoutHook + , modMask = myModMask + , keys = myKeys + , focusedBorderColor = myFocusedBorderColor + , workspaces = myWorkspaces + , logHook = dynamicLogWithPP xmobarPP + { ppOutput = hPutStrLn xmproc + , ppCurrent = xmobarColor "#b8bb26" "" . wrap "[" "]" + , ppVisible = xmobarColor "#b8bb26" "" + , ppHidden = xmobarColor "#d3869b" "" + , ppTitle = xmobarColor "#ebdbb2" "" . shorten 60 + , ppLayout = const "" + , ppUrgent = xmobarColor "#fabd2f" "" . wrap "!" "" + , ppSep = "<fc=#83a598> ║ </fc>" + } + } diff --git a/home/natto.nix b/home/natto.nix index c8a34d5..b6a721d 100644 --- a/home/natto.nix +++ b/home/natto.nix @@ -72,10 +72,11 @@ in sxiv vim feh - dwm dmenu st neofetch + xmobar + xdotool ]; file = { diff --git a/home/stuff/services.nix b/home/stuff/services.nix index 27ff85b..8526549 100644 --- a/home/stuff/services.nix +++ b/home/stuff/services.nix @@ -10,8 +10,8 @@ in '' shadow = true; shadow-radius = 20; - shadow-offset-x = -20; - shadow-offset-y = -20; + shadow-offset-x = 30; + shadow-offset-y = 30; blurExclude = [ "class_g = 'dwm'" ] inactive-opacity = 0.92; @@ -36,7 +36,7 @@ in popup_menu={opacity=0.8;}; dropdown_menu={opacity=0.8;}; }; - shadow-exclude = ["x = 0 && y = 0 && override_redirect = true"] + shadow-exclude = ["x = 0 && y = 0 && override_redirect = true", "class_g = 'xmobar' && argb", "class_g = 'stalonetray' && argb"] ''; }; @@ -75,5 +75,18 @@ in ''; network.startWhenNeeded = true; }; + stalonetray = { + enable = true; + config = { + geometry = "5x1+1805"; + window_type = "dock"; + sticky = true; + icon_size = 23; + background = "#1d2021"; + }; + extraConfig = '' + kludges force_icons_size + ''; + }; }; } diff --git a/home/stuff/xsession.nix b/home/stuff/xsession.nix index 544942f..3eaa699 100644 --- a/home/stuff/xsession.nix +++ b/home/stuff/xsession.nix @@ -1,13 +1,23 @@ {pkgs, config, ...}: { xsession = { - windowManager.bspwm = { - enable = false; - extraConfig = builtins.readFile ./config/bspwm/bspwmrc; - }; pointerCursor = { package = pkgs.numix-cursor-theme; name = "Numix"; }; + windowManager = { + bspwm = { + enable = false; + extraConfig = builtins.readFile ./config/bspwm/bspwmrc; + }; + xmonad = { + enable = true; + enableContribAndExtras = true; + config = ../config/xmonad/xmonad.hs; + libFiles = { + "xmobar.hs" = ../config/xmonad/xmobar.hs; + }; + }; + }; }; } diff --git a/hosts/personal/satori/boot.nix b/hosts/personal/satori/boot.nix index 5c519d6..df9c3df 100644 --- a/hosts/personal/satori/boot.nix +++ b/hosts/personal/satori/boot.nix @@ -2,12 +2,7 @@ { boot = { - kernelPackages = pkgs.linuxPackagesFor (pkgs.linux_zen.override { - structuredExtraConfig = with lib.kernel; { - CONFIG_SCHED_MUQSS = yes; - }; - ignoreConfigErrors = true; - }); + kernelPackages = pkgs.linuxPackages_lqx; initrd={ availableKernelModules = [ "xhci_pci" "ahci" "nvme" "usb_storage" "sd_mod"]; kernelModules = [ ]; diff --git a/hosts/personal/satori/hardware.nix b/hosts/personal/satori/hardware.nix index ecfb5b3..6a990a4 100644 --- a/hosts/personal/satori/hardware.nix +++ b/hosts/personal/satori/hardware.nix @@ -43,6 +43,12 @@ options = ["compress-force=zstd:1"]; }; swapDevices = [ {device = "/dev/nvme0n1p7";} ]; + zramSwap = { + enable = true; + algorithm = "zstd"; + memoryPercent = 50; + priority = -1; + }; powerManagement = { enable = true; cpuFreqGovernor = "powersave"; diff --git a/hosts/personal/satori/stuff.nix b/hosts/personal/satori/stuff.nix index f6cc9d3..91c804b 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 + nerdfonts + font-awesome ]; users.users.natto = { isNormalUser = true; diff --git a/overlays/customscripts/src/up b/overlays/customscripts/src/up new file mode 100644 index 0000000..9462c2e --- /dev/null +++ b/overlays/customscripts/src/up @@ -0,0 +1,6 @@ +#!/usr/bin/env nix-shell +#! nix-shell -i bash -p curl +for x in $@; do + curl -F file=@"$x" --header "key: $FILEHOST_KEY" https://f.weirdnatto.in + echo " " +done diff --git a/overlays/customscripts/src/x0 b/overlays/customscripts/src/x0 index 21faf75..0557292 100644 --- a/overlays/customscripts/src/x0 +++ b/overlays/customscripts/src/x0 @@ -1,6 +1,6 @@ #!/usr/bin/env nix-shell #! nix-shell -i bash -p curl for x in $@; do - curl -F "file=@\"$x\"" https://x0.at/ + curl -F file=@"$x" https://x0.at/ echo " " done