diff --git a/build-mac-remote.sh b/build-mac-remote.sh new file mode 100755 index 0000000..13c6a15 --- /dev/null +++ b/build-mac-remote.sh @@ -0,0 +1,4 @@ +sudo nixos-rebuild switch --flake . \ + --impure --override-input mac-brcm-fw path:/home/jade/mac-brcm-fw \ + --build-host 192.168.178.119 --no-build-nix + diff --git a/build-mac.sh b/build-mac.sh new file mode 100755 index 0000000..31bbe5a --- /dev/null +++ b/build-mac.sh @@ -0,0 +1,3 @@ +sudo nixos-rebuild switch --flake . \ + --impure --override-input mac-brcm-fw path:/home/jade/mac-brcm-fw \ + diff --git a/build.sh b/build.sh new file mode 100755 index 0000000..941d5cf --- /dev/null +++ b/build.sh @@ -0,0 +1 @@ +sudo nixos-rebuild switch --flake . --impure diff --git a/common.nix b/common.nix index c2aebb0..423e577 100644 --- a/common.nix +++ b/common.nix @@ -27,13 +27,12 @@ with builtins; environment = { systemPackages = with pkgs; [ - nushellFull networkmanager htmlq + wget git neofetch pciutils zip unzip gnutar iw btop nodejs jdk8 jdk11 jdk libsecret gh nix-prefetch-scripts fzf glab ripgrep sl lolcat appimage-run git-crypt file whois p7zip file nmap cmatrix tree - socat smartmontools mprocs - dig aria2 usbutils + socat smartmontools ]; }; @@ -102,7 +101,7 @@ with builtins; users.users.jade = { isNormalUser = true; - extraGroups = [ "wheel" "input" "uinput" "libvirtd" "adbusers" "dialout" "plugdev" "wireshark" ]; + extraGroups = [ "wheel" "input" "uinput" "libvirtd" "adbusers" "dialout" "plugdev" ]; packages = [ pkgs.marksman ]; diff --git a/flake.lock b/flake.lock index b62c4ec..c5ea79a 100644 --- a/flake.lock +++ b/flake.lock @@ -245,11 +245,11 @@ ] }, "locked": { - "lastModified": 1697838989, - "narHash": "sha256-hwVlO+st8vWJO6iy3/JbMHrUyY4Ak7xUSmffoWqBPUg=", + "lastModified": 1695550077, + "narHash": "sha256-xoxR/iY69/3lTnnZDP6gf3J46DUKPcf+Y1jH03tfZXE=", "owner": "nix-community", "repo": "home-manager", - "rev": "ae631b0b20f06f7d239d160723d228891ddb2fe0", + "rev": "a88df2fb101778bfd98a17556b3a2618c6c66091", "type": "github" }, "original": { @@ -418,11 +418,11 @@ }, "nixpkgs-stable": { "locked": { - "lastModified": 1697777081, - "narHash": "sha256-n2vQARhKevRGyeo+LAa8g+CdUQsdH/caNk8jnylcPhY=", + "lastModified": 1695559356, + "narHash": "sha256-kXZ1pUoImD9OEbPCwpTz4tHsNTr4CIyIfXb3ocuR8sI=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "679cadfdfed2b90311a247b2d6ef6dfd3d6cab73", + "rev": "261abe8a44a7e8392598d038d2e01f7b33cf26d0", "type": "github" }, "original": { @@ -569,11 +569,11 @@ }, "nixpkgs_9": { "locked": { - "lastModified": 1697723726, - "narHash": "sha256-SaTWPkI8a5xSHX/rrKzUe+/uVNy6zCGMXgoeMb7T9rg=", + "lastModified": 1695360818, + "narHash": "sha256-JlkN3R/SSoMTa+CasbxS1gq+GpGxXQlNZRUh9+LIy/0=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "7c9cc5a6e5d38010801741ac830a3f8fd667a7a0", + "rev": "e35dcc04a3853da485a396bdd332217d0ac9054f", "type": "github" }, "original": { diff --git a/flake.nix b/flake.nix index a1f7382..cb5c0bb 100644 --- a/flake.nix +++ b/flake.nix @@ -55,7 +55,7 @@ home-manager.useUserPackages = true; home-manager.users.jade = { nixosConfig, pkgs, ... }: { home.sessionVariables.TZ = nixosConfig.time.timeZone; - home.stateVersion = "22.11"; + home.stateVersion = "${nixosConfig.system.stateVersion}"; }; } ]; diff --git a/haskell/xmonad/xmonad.hs b/haskell/xmonad/xmonad.hs index 2ec0677..d06fad1 100644 --- a/haskell/xmonad/xmonad.hs +++ b/haskell/xmonad/xmonad.hs @@ -13,7 +13,6 @@ import System.Exit import XMonad.Hooks.StatusBar import XMonad.Hooks.StatusBar.PP -import XMonad.Hooks.EwmhDesktops import qualified XMonad.StackSet as W import qualified Data.Map as M @@ -21,8 +20,6 @@ import qualified Data.Map as M import XMonad.Layout.Spacing import XMonad.Layout.Tabbed -import XMonad.Actions.KeyRemap - import XMonad.Prompt import XMonad.Prompt.Layout import Graphics.X11.ExtraTypes.XF86 @@ -32,7 +29,7 @@ import Control.Monad (when) -- The preferred terminal program, which is used in a binding below and by -- certain contrib modules. -- -myTerminal = "kitty" +myTerminal = "kitty" -- Whether focus follows the mouse pointer. myFocusFollowsMouse :: Bool @@ -44,14 +41,14 @@ myClickJustFocuses = False -- Width of the window border in pixels. -- -myBorderWidth = 2 +myBorderWidth = 2 -- modMask lets you specify which modkey you want to use. The default -- is mod1Mask ("left alt"). You may also consider using mod3Mask -- ("right alt"), which does not conflict with emacs keybindings. The -- "windows key" is usually mod4Mask. -- -myModMask = mod4Mask +myModMask = mod4Mask -- The default number of workspaces (virtual screens) and their names. -- By default we use numeric strings, but any string may be used as a @@ -62,129 +59,129 @@ myModMask = mod4Mask -- -- > workspaces = ["web", "irc", "code" ] ++ map show [4..9] -- -myWorkspaces = ["comms","browser","3","4","5","6","7","8","9"] +myWorkspaces = ["comms","browser","3","4","5","6","7","8","9"] -- Border colors for unfocused and focused windows, respectively. -- myNormalBorderColor = "#3c3836" myFocusedBorderColor = "#504945" -myRemaps = KeymapTable [ ((0, xK_a), (0, xK_b)) ] - ------------------------------------------------------------------------ -- Key bindings. Add, modify or remove key bindings here. -- myKeys conf@(XConfig {XMonad.modMask = modm}) = M.fromList $ - [ ((modm, xK_Return), spawn $ XMonad.terminal conf) - , ((modm .|. shiftMask, xK_q), kill) - -- -- Rotate through the available layout algorithms - , ((modm, xK_space ), sendMessage NextLayout) - -- rofiing - , ((modm, xK_d), spawn "rofi -show drun") - , ((modm .|. shiftMask, xK_e), spawn "rofi -show desktopctl -modes desktopctl:desktopctl -show-icons") - , ((modm, xK_m), spawn "menu-qalc -- -theme gruvbox-dark") - , ((modm, xK_i), spawn "rofimoji --selector-args '-theme gruvbox-dark' -f alchemical_symbols anatolian_hieroglyphs emojis braille_patterns box_drawing chess_symbols emoticons geometric_shapes gothic greek_extended math mathematical_alphanumeric_symbols mathematical_operators miscellaneous_symbols miscellaneous_mathematical_symbols-a miscellaneous_mathematical_symbols-b miscellaneous_symbols_and_arrows miscellaneous_symbols_and_pictographs miscellaneous_technical modi modifier_tone_letters musical_symbols nerd_font number_forms shorthand_format_controls specials variation_selectors vertical_forms -a copy") + [ ((modm, xK_Return), spawn $ XMonad.terminal conf) + , ((modm .|. shiftMask, xK_q), kill) + -- Rotate through the available layout algorithms + , ((modm, xK_space ), sendMessage NextLayout) - , ((modm, xK_o), spawn "rofi -show searchwolf -modes searchwolf:searchwolf -theme gruvbox-dark") + -- rofiing + , ((modm, xK_d), spawn "rofi -show drun") + , ((modm .|. shiftMask, xK_e), spawn "rofi -show desktopctl -modes desktopctl:desktopctl -show-icons") + , ((modm, xK_m), spawn "menu-qalc -- -theme gruvbox-dark") + , ((modm, xK_i), spawn "rofimoji --selector-args '-theme gruvbox-dark' -f alchemical_symbols anatolian_hieroglyphs emojis braille_patterns box_drawing chess_symbols emoticons geometric_shapes gothic greek_extended math mathematical_alphanumeric_symbols mathematical_operators miscellaneous_symbols miscellaneous_mathematical_symbols-a miscellaneous_mathematical_symbols-b miscellaneous_symbols_and_arrows miscellaneous_symbols_and_pictographs miscellaneous_technical modi modifier_tone_letters musical_symbols nerd_font number_forms shorthand_format_controls specials variation_selectors vertical_forms -a copy") - -- screenshotting - -- TODO: Fix/rewrite window-screenshot.sh - , ((modm, xK_w), spawn "window-screenshot.nu") - , ((modm, xK_s), spawn "flameshot gui -c -p $HOME/Pictures/screenshots") - , ((modm, xK_a), spawn "flameshot screen -c -p $HOME/Pictures/screenshots") - , ((modm, xK_t), spawn "ocr-screenshot.sh") + , ((modm, xK_o), spawn "rofi -show searchwolf -modes searchwolf:searchwolf -theme gruvbox-dark") - , ((modm .|. shiftMask, xK_t), spawn "DEVICE=\"MELF0410:00 1FD2:7007\"; if [ $(xinput list-props \"$DEVICE\" | awk '/^\\tDevice Enabled \\([0-9]+\\):\\t[01]/ {print $NF}') = \"1\" ]; then xinput disable \"$DEVICE\"; else xinput enable \"$DEVICE\"; fi") + -- screenshotting + -- TODO: Fix/rewrite window-screenshot.sh + , ((modm, xK_w), spawn "window-screenshot.sh") + , ((modm, xK_s), spawn "flameshot gui -c -p $HOME/Pictures/screenshots") + , ((modm, xK_a), spawn "flameshot screen -c -p $HOME/Pictures/screenshots") + , ((modm, xK_t), spawn "ocr-screenshot.sh") - -- Reset the layouts on the current workspace to default - -- , ((modm .|. shiftMask, xK_space ), setLayout $ XMonad.layoutHook conf) - -- , ((modm .|. shiftMask, xK_space ), setLayout $ XMonad.layoutHook conf) - -- Push window back into tiling - , ((modm .|. shiftMask, xK_space ), withFocused $ windows . W.sink) + , ((modm .|. shiftMask, xK_t), spawn "DEVICE=\"MELF0410:00 1FD2:7007\"; if [ $(xinput list-props \"$DEVICE\" | awk '/^\\tDevice Enabled \\([0-9]+\\):\\t[01]/ {print $NF}') = \"1\" ]; then xinput disable \"$DEVICE\"; else xinput enable \"$DEVICE\"; fi") + + -- Reset the layouts on the current workspace to default + -- , ((modm .|. shiftMask, xK_space ), setLayout $ XMonad.layoutHook conf) + -- , ((modm .|. shiftMask, xK_space ), setLayout $ XMonad.layoutHook conf) + -- Push window back into tiling + , ((modm .|. shiftMask, xK_space ), withFocused $ windows . W.sink) - -- Resize viewed windows to the correct size - , ((modm, xK_n ), refresh) + -- Resize viewed windows to the correct size + , ((modm, xK_n ), refresh) - -- Move focus to the next window - , ((modm, xK_Tab ), layoutPrompt def) + -- Move focus to the next window + , ((modm, xK_Tab ), layoutPrompt def) - -- Move focus - , ((modm, xK_j ), windows W.focusDown) - , ((modm, xK_k ), windows W.focusUp ) + -- Move focus + , ((modm, xK_j ), windows W.focusDown) + , ((modm, xK_k ), windows W.focusUp ) - -- Swap the focused window with the next window - , ((modm .|. shiftMask, xK_j ), windows W.swapDown ) - , ((modm .|. shiftMask, xK_k ), windows W.swapUp ) + -- Swap the focused window with the next window + , ((modm .|. shiftMask, xK_j ), windows W.swapDown ) + , ((modm .|. shiftMask, xK_k ), windows W.swapUp ) - -- Shrink the master area - , ((modm, xK_h ), sendMessage Shrink) - , ((modm, xK_l ), sendMessage Expand) + -- Shrink the master area + , ((modm, xK_h ), sendMessage Shrink) + , ((modm, xK_l ), sendMessage Expand) - -- Increment the number of windows in the master area - , ((modm , xK_comma ), sendMessage (IncMasterN 1)) - , ((modm , xK_period), sendMessage (IncMasterN (-1))) + -- Increment the number of windows in the master area + , ((modm , xK_comma ), sendMessage (IncMasterN 1)) + , ((modm , xK_period), sendMessage (IncMasterN (-1))) - -- Brightness n stuff - -- , ((0, xF86XK_AudioRaiseVolume), spawn "amixer -D pulse sset Master 10%+") - -- , ((0, xF86XK_AudioLowerVolume), spawn "amixer -D pulse sset Master 10%-") - -- , ((0, xF86XK_AudioMute), spawn "amixer -D pulse sset Master toggle") - -- , ((0, xF86XK_MonBrightnessUp), spawn "brightnessctl set +10%") - -- , ((0, xF86XK_MonBrightnessDown), spawn "brightnessctl set 10%-") - -- , ((0, xF86XK_KbdBrightnessUp), spawn "brightnessctl -d \"kbd_backlight\" set +10%") - -- , ((0, xF86XK_KbdBrightnessDown), spawn "brightnessctl -d \"kbd_backlight\" set 10%-") + -- Brightness n stuff + -- , ((0, xF86XK_AudioRaiseVolume), spawn "amixer -D pulse sset Master 10%+") + -- , ((0, xF86XK_AudioLowerVolume), spawn "amixer -D pulse sset Master 10%-") + -- , ((0, xF86XK_AudioMute), spawn "amixer -D pulse sset Master toggle") + -- , ((0, xF86XK_MonBrightnessUp), spawn "brightnessctl set +10%") + -- , ((0, xF86XK_MonBrightnessDown), spawn "brightnessctl set 10%-") + -- , ((0, xF86XK_KbdBrightnessUp), spawn "brightnessctl -d \"kbd_backlight\" set +10%") + -- , ((0, xF86XK_KbdBrightnessDown), spawn "brightnessctl -d \"kbd_backlight\" set 10%-") - -- Toggle the status bar gap - -- Use this binding with avoidStruts from Hooks.ManageDocks. - -- See also the statusBar function from Hooks.DynamicLog. - -- - -- , ((modm , xK_b ), sendMessage ToggleStruts) + -- Toggle the status bar gap + -- Use this binding with avoidStruts from Hooks.ManageDocks. + -- See also the statusBar function from Hooks.DynamicLog. + -- + -- , ((modm , xK_b ), sendMessage ToggleStruts) - --, ((modm .|. shiftMask, xK_e ), io (exitWith ExitSuccess)) + --, ((modm .|. shiftMask, xK_e ), io (exitWith ExitSuccess)) - -- Restart xmonad - --, ((modm , xK_q ), spawn "xmonad --recompile; xmonad --restart") + -- Restart xmonad + --, ((modm , xK_q ), spawn "xmonad --recompile; xmonad --restart") - -- Run xmessage with a summary of the default keybindings (useful for beginners) - ] - ++ + -- Run xmessage with a summary of the default keybindings (useful for beginners) + ] + ++ - -- - -- mod-[1..9], Switch to workspace N - -- mod-shift-[1..9], Move client to workspace N - -- - [((m .|. modm, k), windows $ f i) - | (i, k) <- zip (XMonad.workspaces conf) [xK_1 .. xK_9] - , (f, m) <- [(W.greedyView, 0), (W.shift, shiftMask)]] - -- ++ + -- + -- mod-[1..9], Switch to workspace N + -- mod-shift-[1..9], Move client to workspace N + -- + [((m .|. modm, k), windows $ f i) + | (i, k) <- zip (XMonad.workspaces conf) [xK_1 .. xK_9] + , (f, m) <- [(W.greedyView, 0), (W.shift, shiftMask)]] + -- ++ - -- - -- mod-{w,e,r}, Switch to physical/Xinerama screens 1, 2, or 3 - -- mod-shift-{w,e,r}, Move client to screen 1, 2, or 3 - -- - -- [((m .|. modm, key), screenWorkspace sc >>= flip whenJust (windows . f)) - -- | (key, sc) <- zip [xK_w, xK_e, xK_r] [0..] - -- , (f, m) <- [(W.view, 0), (W.shift, shiftMask)]] + -- + -- mod-{w,e,r}, Switch to physical/Xinerama screens 1, 2, or 3 + -- mod-shift-{w,e,r}, Move client to screen 1, 2, or 3 + -- + -- [((m .|. modm, key), screenWorkspace sc >>= flip whenJust (windows . f)) + -- | (key, sc) <- zip [xK_w, xK_e, xK_r] [0..] + -- , (f, m) <- [(W.view, 0), (W.shift, shiftMask)]] ------------------------------------------------------------------------ -- Mouse bindings: default actions bound to mouse events -- myMouseBindings (XConfig {XMonad.modMask = modm}) = M.fromList $ - -- mod-button1, Set the window to floating mode and move by dragging - [ ((modm, button1), (\w -> focus w >> mouseMoveWindow w - >> windows W.shiftMaster)) - -- mod-button2, Raise the window to the top of the stack - , ((modm, button2), (\w -> focus w >> windows W.shiftMaster)) + -- mod-button1, Set the window to floating mode and move by dragging + [ ((modm, button1), (\w -> focus w >> mouseMoveWindow w + >> windows W.shiftMaster)) - -- mod-button3, Set the window to floating mode and resize by dragging - , ((modm, button3), (\w -> focus w >> mouseResizeWindow w - >> windows W.shiftMaster)) + -- mod-button2, Raise the window to the top of the stack + , ((modm, button2), (\w -> focus w >> windows W.shiftMaster)) - -- you may also bind events to the mouse scroll wheel (button4 and button5) - ] + -- mod-button3, Set the window to floating mode and resize by dragging + , ((modm, button3), (\w -> focus w >> mouseResizeWindow w + >> windows W.shiftMaster)) + + -- you may also bind events to the mouse scroll wheel (button4 and button5) + ] ------------------------------------------------------------------------ -- Layouts: @@ -198,16 +195,16 @@ myMouseBindings (XConfig {XMonad.modMask = modm}) = M.fromList $ -- which denotes layout choice. tabCfg = def - { activeColor = "#282828" - , inactiveColor = "#1d2021" - , urgentColor = "#9d0006" - , activeBorderColor = "#504945" - , inactiveBorderColor = "#3c3836" - , urgentBorderColor = "#cc241d" - , activeTextColor = "#ebdbb2" - , inactiveTextColor = "#bdae93" - , urgentTextColor = "#ebdbb2" - } + { activeColor = "#282828" + , inactiveColor = "#1d2021" + , urgentColor = "#9d0006" + , activeBorderColor = "#504945" + , inactiveBorderColor = "#3c3836" + , urgentBorderColor = "#cc241d" + , activeTextColor = "#ebdbb2" + , inactiveTextColor = "#bdae93" + , urgentTextColor = "#ebdbb2" + } myLayout = tiled ||| tabbed shrinkText tabCfg ||| Mirror tiled where -- default tiling algorithm partitions the screen into two panes @@ -238,10 +235,10 @@ myLayout = tiled ||| tabbed shrinkText tabCfg ||| Mirror tiled -- 'className' and 'resource' are used below. -- myManageHook = composeAll - [ className =? "MPlayer" --> doFloat - , className =? "Gimp" --> doFloat - , resource =? "desktop_window" --> doIgnore - , resource =? "kdesktop" --> doIgnore ] + [ className =? "MPlayer" --> doFloat + , className =? "Gimp" --> doFloat + , resource =? "desktop_window" --> doIgnore + , resource =? "kdesktop" --> doIgnore ] ------------------------------------------------------------------------ -- Event handling @@ -276,12 +273,11 @@ myLogHook = return () -- -- By default, do nothing. myStartupHook = do - spawn "pkill oneko; oneko -tofocus -tora -position +-1+5 -fg palevioletred3 -bg pink -name 'Rose the desktop kitty'" - --spawn "pkill polybar; polybar" - spawn "pkill volumeicon; volumeicon" - spawn "pkill nm-applet; nm-applet" - spawn "mullvad-vpn --background" - setDefaultKeyRemap myRemaps [myRemaps] + spawn "pkill oneko; oneko -tofocus -tora -position +-1+5 -fg palevioletred3 -bg pink -name 'Rose the desktop kitty'" + --spawn "pkill polybar; polybar" + spawn "pkill volumeicon; volumeicon" + spawn "pkill nm-applet; nm-applet" + spawn "mullvad-vpn --background" @@ -291,7 +287,7 @@ myStartupHook = do -- Run xmonad with the settings you specify. No need to modify this. -- mySB = statusBarProp "polybar" (pure xmobarPP) -main = xmonad $ withEasySB mySB defToggleStrutsKey (ewmh defaults) +main = xmonad $ withEasySB mySB defToggleStrutsKey defaults -- A structure containing your configuration settings, overriding -- fields in the default config. Any you don't override, will @@ -320,3 +316,4 @@ defaults = def , logHook = myLogHook , startupHook = myStartupHook } + diff --git a/hosts/catbook-j/configuration.nix b/hosts/catbook-j/configuration.nix index 12aaed4..2db92c3 100644 --- a/hosts/catbook-j/configuration.nix +++ b/hosts/catbook-j/configuration.nix @@ -53,11 +53,6 @@ in { device = "DELL081C:00 044E:121F Mouse"; sensitivity = 255; }; - hardware.usbWwan.enable = true; - systemd.services."ModemManager".enable = true; - systemd.services."ModemManager".wants = [ "NetworkManager.service" ]; - systemd.services."ModemManager".wantedBy = [ "multi-user.target" ]; - programs.wireshark.enable = true; boot.resumeDevice = "/dev/disk/by-uuid/4f9e8afa-f8d7-40bf-b3ea-17e8e8fbb694"; boot.kernelParams = [ "resume_offset=7380652" ]; @@ -69,7 +64,7 @@ in { services.xserver.libinput.touchpad.tapping = false; - environment.systemPackages = [ pkgs.vivaldi pkgs.vivaldi-ffmpeg-codecs pkgs.plantuml pkgs.mqttui pkgs.mobile-broadband-provider-info pkgs.modem-manager-gui pkgs.wireshark]; + environment.systemPackages = [ pkgs.vivaldi pkgs.vivaldi-ffmpeg-codecs pkgs.plantuml ]; # Bootloader. boot.loader.systemd-boot.enable = true; @@ -87,31 +82,31 @@ in { }; }; - # nixpkgs = { - # overlays = [ - # (self: super: { - # linux_zen_xeniafied = pkgs.linuxPackagesFor (pkgs.linuxKernel.kernels.linux_zen.override { - # structuredExtraConfig = with lib.kernel; { - # "FB" = yes; - # "FRAMEBUFFER_CONSOLE" = yes; - # "VGA_CONSOLE" = yes; - # "VIDEO_SELECT" = yes; - # LOGO = lib.mkForce yes; - # LOGO_LINUX_CLUT224 = yes; - # }; - # ignoreConfigErrors = true; - # }); - # }) - # ]; - # }; + nixpkgs = { + overlays = [ + (self: super: { + linux_zen_xeniafied = pkgs.linuxPackagesFor (pkgs.linuxKernel.kernels.linux_zen.override { + structuredExtraConfig = with lib.kernel; { + "FB" = yes; + "FRAMEBUFFER_CONSOLE" = yes; + "VGA_CONSOLE" = yes; + "VIDEO_SELECT" = yes; + LOGO = lib.mkForce yes; + LOGO_LINUX_CLUT224 = yes; + }; + ignoreConfigErrors = true; + }); + }) + ]; + }; boot.kernelPackages = pkgs.linuxPackages_zen; - # boot.kernelPatches = [ - # { - # name = "fomx"; - # patch = ../../other/0001-fomx.patch; - # } - # ]; + boot.kernelPatches = [ + { + name = "fomx"; + patch = ../../other/0001-fomx.patch; + } + ]; services.xserver.displayManager.autoLogin = { enable = true; diff --git a/hosts/monosodium-glutamate-g/configuration.nix b/hosts/monosodium-glutamate-g/configuration.nix index 0c0f11b..dee73a9 100644 --- a/hosts/monosodium-glutamate-g/configuration.nix +++ b/hosts/monosodium-glutamate-g/configuration.nix @@ -57,7 +57,7 @@ # latest linux kernel #boot.kernelPackages = pkgs.linuxPackages_latest; #boot.kernelPackages = pkgs.linux_zen_xeniafied; - kernelPackages = pkgs.linuxPackages_zen; + boot.kernelPackages = pkgs.linuxPackages_zen; # boot.kernelPatches = [ # { # name = "fomx"; diff --git a/hosts/schrottserver/configuration.nix b/hosts/schrottserver/configuration.nix index df7eb1e..a426de4 100644 --- a/hosts/schrottserver/configuration.nix +++ b/hosts/schrottserver/configuration.nix @@ -30,7 +30,7 @@ }; services = { - openssh.permitRootLogin = "without-password"; + openssh.permitRootLogin = "no"; fail2ban = { enable = true; bantime-increment.enable = true; diff --git a/hosts/schrottserver/nextcloud.nix b/hosts/schrottserver/nextcloud.nix index dd4e04c..9f4be80 100644 --- a/hosts/schrottserver/nextcloud.nix +++ b/hosts/schrottserver/nextcloud.nix @@ -7,7 +7,7 @@ dbuser = "nextcloud"; dbhost = "/run/postgresql"; # nextcloud will add /.s.PGSQL.5432 by itself dbname = "nextcloud"; - adminpassFile = "${../../secret-data/nextcloud-admin-pass}"; + adminpassFile = "${../secret-data/nextcloud-admin-pass}"; adminuser = "root"; }; package = pkgs.nextcloud25; diff --git a/hosts/schrottserver/penpot.nix b/hosts/schrottserver/penpot.nix index 2e7f227..865f6ec 100644 --- a/hosts/schrottserver/penpot.nix +++ b/hosts/schrottserver/penpot.nix @@ -33,7 +33,7 @@ "PENPOT_SMTP_HOST" = "smtp.migadu.com"; "PENPOT_SMTP_PORT" = "587"; "PENPOT_SMTP_USERNAME" = "noreply-pp@schrottkatze.de"; - "PENPOT_SMTP_PASSWORD" = "${builtins.readFile ../../secret-data/penpot-smtp-pass}"; + "PENPOT_SMTP_PASSWORD" = "${builtins.readFile ../secret-data/penpot-smtp-pass}"; "PENPOT_SMTP_TLS" = "true"; "PENPOT_SMTP_SSL" = "false"; }; diff --git a/hosts/schrottserver/vaultwarden.nix b/hosts/schrottserver/vaultwarden.nix index a9b4edf..a581d0f 100644 --- a/hosts/schrottserver/vaultwarden.nix +++ b/hosts/schrottserver/vaultwarden.nix @@ -13,7 +13,7 @@ SIGNUPS_VERIFY = true; ROCKET_LOG = "debug"; ENABLE_WAL = false; - ADMIN_TOKEN = builtins.readFile ../../secret-data/vaultwarden-admin-token; + ADMIN_TOKEN = builtins.readFile ../secret-data/vaultwarden-admin-token; DOMAIN = "https://vw.schrottkatze.de"; SMTP_TIMEOUT = 15; ROCKET_PORT = 8812; diff --git a/justfile b/justfile deleted file mode 100644 index 18dab21..0000000 --- a/justfile +++ /dev/null @@ -1,5 +0,0 @@ -test: - sudo nixos-rebuild test --flake . --impure - -build: - sudo nixos-rebuild switch --flake . --impure diff --git a/modules/desktop/audio.nix b/modules/desktop/audio.nix index e61b48e..f015427 100644 --- a/modules/desktop/audio.nix +++ b/modules/desktop/audio.nix @@ -13,7 +13,6 @@ jack.enable = true; }; }; - hardware.pulseaudio.enable = pkgs.lib.mkForce false; sound.mediaKeys.enable = true; home-manager.users.jade = { pkgs, ... }: { home.packages = with pkgs; [ diff --git a/modules/desktop/default.nix b/modules/desktop/default.nix index 563288d..ca4bd97 100644 --- a/modules/desktop/default.nix +++ b/modules/desktop/default.nix @@ -2,7 +2,6 @@ let cfg = config.jade.desktop; - # window-screenshot = pkgs.writeTextFile "window-screenshot.nu" (builtins.readFile ../../other/scripts/desktop/window-screenshot.nu); window-screenshot = pkgs.writeShellScriptBin "window-screenshot.sh" (builtins.readFile ../../other/scripts/desktop/window-screenshot.sh); # desktop-ctl = pkgs.writeShellScriptBin "desktop-ctl.sh" (builtins.readFile ../scripts/desktop/desktop-ctl.sh); desktop-ctl = import ../../other/scripts/desktop/desktopctl.nix { inherit pkgs; }; @@ -103,13 +102,10 @@ in with lib; { desktopManager = { xterm.enable = false; - # gnome = { - # enable = true; - # }; }; displayManager = { - defaultSession = "none+xmonad"; + #defaultSession = "none+i3"; gdm.enable = true; }; @@ -157,12 +153,17 @@ in with lib; { notifications.x11.enable = true; notifications.test = true; }; + services.colord.enable = true; home-manager.users.jade = { pkgs, ... }: { programs.bat = { # TODO: more config enable = true; }; + programs.exa = { + # TODO: more config + enable = true; + }; programs.nushell = { enable = true; package = config.users.defaultUserShell; @@ -171,6 +172,9 @@ in with lib; { source ${pkgs.nu_scripts}/share/nu_scripts/modules/nix/nix.nu; ''; }; + programs.ripgrep = { + enable = true; + }; services.dunst = { enable = true; settings = { @@ -191,17 +195,11 @@ in with lib; { theme = ../../other/rofi-themes/applauncher.rasi; }; home.packages = with pkgs; [ - spotifyd spotify-tui - #nushell nu_scripts direnv - just bacon - magic-wormhole-rs - yt-dlp - argyllcms displaycal @@ -211,13 +209,11 @@ in with lib; { i3lock rofimoji feh xorg.xinput arandr flameshot tesseract5 imagemagick xclip xmacro libwacom wacomtablet xorg.xev - syncplay - # categories # filemanager xfce.thunar xfce.tumbler xfce.thunar-archive-plugin gnome.file-roller # media/file viewers - vlc mpv evince nomacs + vlc evince nomacs # from environment.systemPackages cleanup font-manager xdotool xorg.xwininfo gparted librewolf firefox uhk-agent diff --git a/modules/desktop/networking.nix b/modules/desktop/networking.nix index 7a62d05..2c761db 100644 --- a/modules/desktop/networking.nix +++ b/modules/desktop/networking.nix @@ -1,60 +1,34 @@ { config, lib, pkgs, ... }: -let - addNuShebang = path: builtins.concatStringsSep "\n\n" [ - "#!${pkgs.nushellFull}/bin/nu" - (builtins.readFile path) - ]; -in { +{ config = { networking = { - networkmanager = { - wifi.backend = "wpa_supplicant"; - dispatcherScripts = [ - { - type = "basic"; - source = pkgs.writeText "dispatcher" (addNuShebang ../../other/scripts/dispatcher.nu); - } - ]; - }; - hosts = { - "127.0.0.1" = [ - "www.tiktok.com" - "www.twitter.com" - "www.instagram.com" - "www.facebook.com" - "www.snapchat.com" + networkmanager.wifi.backend = "wpa_supplicant"; + extraHosts = '' + 127.0.0.1 www.youtube.com + 127.0.0.1 www.reddit.com + 127.0.0.1 www.tiktok.com + 127.0.0.1 www.twitter.com + 127.0.0.1 www.instagram.com + 127.0.0.1 www.facebook.com + 127.0.0.1 www.snapchat.com - "tiktok.com" - "twitter.com" - "instagram.com" - "facebook.com" - "snapchat.com" + 127.0.0.1 youtube.com + 127.0.0.1 reddit.com + 127.0.0.1 tiktok.com + 127.0.0.1 twitter.com + 127.0.0.1 instagram.com + 127.0.0.1 facebook.com + 127.0.0.1 snapchat.com - "google-analytics.com" - "stats.g.doubleclick.net" - "googleadservices.com" - "googletagmanager.com" - "googletagservices.com" - "googlesyndication.com" - ]; - "10.31.208.9" = [ - "mqtt.z9" - ]; - }; + 127.0.0.1 google-analytics.com + 127.0.0.1 stats.g.doubleclick.net + 127.0.0.1 googleadservices.com + 127.0.0.1 googletagmanager.com + 127.0.0.1 googletagservices.com + 127.0.0.1 googlesyndication.com + ''; }; - environment.etc = (with builtins; ( - listToAttrs ( - map (v: { - name = "networkhooks/${v}"; - value = { - text = addNuShebang ../../other/scripts/networkhooks/${v}; - mode = "0755"; - }; - }) - (attrNames (readDir ../../other/scripts/networkhooks)) - ) - )); systemd.services."NetworkManager-wait-online".enable = false; services.mullvad-vpn.enable = true; home-manager.users.jade = { pkgs, ... }: { diff --git a/modules/helix.nix b/modules/helix.nix index 5c61508..bbd8cb6 100644 --- a/modules/helix.nix +++ b/modules/helix.nix @@ -31,14 +31,19 @@ in with lib; { }; }; languages = { - "php" = { - name = "php"; - file-types = [ "php" ]; - language-server = { - command = "psalm"; - args = ["--language-server"]; - }; - }; + language = [ + { + name = "rust"; + } + { + name = "php"; + file-types = [ "php" ]; + language-server = { + command = "psalm"; + args = ["--language-server"]; + }; + } + ]; }; }; }; diff --git a/modules/utils.nix b/modules/utils.nix deleted file mode 100644 index 566dbe4..0000000 --- a/modules/utils.nix +++ /dev/null @@ -1,49 +0,0 @@ -{ pkgs, lib }: rec { - # taken from https://github.com/NixOS/nixpkgs/blob/3650808d85dccbfa3be3d785dfd3ce33a757bd2c/pkgs/build-support/trivial-builders/default.nix#L335 - writeNuShellApplication = - { name - , text - , runtimeInputs ? [ ] - , meta ? { } - , checkPhase ? null - }: - writeTextFile { - inherit name meta; - executable = true; - destination = "/bin/${name}"; - allowSubstitutes = true; - preferLocalBuild = false; - text = '' - #!${pkgs.nushell} - '' + lib.optionalString (runtimeInputs != [ ]) '' - - $env.PATH = ($env.PATH | split row (char esep) | prepend '${lib.makeBinPath runtimeInputs}'); - '' + '' - - ${text} - ''; - - checkPhase = - # GHC (=> shellcheck) isn't supported on some platforms (such as risc-v) - # but we still want to use writeShellApplication on those platforms - if checkPhase == null then '' - runHook preCheck - - nu -c "nu-check -d $target" - - runHook postCheck - '' - else checkPhase; - }; - packageNushellApplication = - { name - , path - , runtimeInputs ? [ ] - , meta ? { } - , checkPhase ? null - }: - writeNuShellApplication { - inherit name runtimeInputs meta checkPhase; - text = builtins.readFile path; - }; -} diff --git a/modules/zellij.nix b/modules/zellij.nix index 7472324..71edc1a 100644 --- a/modules/zellij.nix +++ b/modules/zellij.nix @@ -6,22 +6,13 @@ in with lib; { }; config = mkIf cfg.enable { home-manager.users.jade = { pkgs, ... }: { - home.file = { - zellij-forgot = { - target = ".config/zellij/plugins/zellij-forgot.wasm"; - source = builtins.fetchurl "https://github.com/karimould/zellij-forgot/releases/download/0.2.0/zellij_forgot.wasm"; - }; - monocle = { - target = ".config/zellij/plugins/monocle.wasm"; - source = builtins.fetchurl "https://github.com/imsnif/monocle/releases/download/0.37.2/monocle.wasm"; - }; - }; programs.zellij = { enable = true; + enableZshIntegration = true; settings = { theme = "gruvbox-dark"; themes.gruvbox-dark = { - fg = "#d5c4a1"; + fg = "#D5C4A1"; bg = "#282828"; black = "#3C3836"; red = "#CC241D"; @@ -30,16 +21,9 @@ in with lib; { blue = "#3C8588"; magenta = "#B16286"; cyan = "#689D6A"; - white = "#665c54"; + white = "#FBF1C7"; orange = "#D65D0E"; }; - # keybinds = { - # session = { - # "bind \"o\"" = { - # LaunchOrFocusPlugin = ["file:/home/jade/.config/zellij/plugins/monocle.wasm" { floating = true; }]; - # }; - # }; - # }; pane_frames = false; }; }; diff --git a/other/config.nu b/other/config.nu index cd8e7a9..c0a1e82 100644 --- a/other/config.nu +++ b/other/config.nu @@ -247,21 +247,9 @@ $env.config = { hooks: { pre_prompt: [{ || - let direnv = (direnv export json | from json | default {}) - if ($direnv | is-empty) { - return - } - $direnv - | items {|key, value| - { - key: $key - value: (if $key in $env.ENV_CONVERSIONS { - do ($env.ENV_CONVERSIONS | get $key | get from_string) $value - } else { - $value - }) - } - } | transpose -ird | load-env + let direnv = (direnv export json | from json) + let direnv = if ($direnv | length) == 1 { $direnv } else { {} } + $direnv | load-env }] # run before the prompt is shown pre_execution: [{ null }] # run before the repl input is run env_change: { @@ -805,5 +793,3 @@ start_zellij alias gnix = cd ~/nix-configs; alias grepo = cd ~/Documents/repos; alias wh = wormhole-rs; -alias nix-shell = nix-shell --run 'nu -li'; -alias nsp = nix-shell --run 'nu -li' -p; diff --git a/other/scripts/desktop/window-screenshot.nu b/other/scripts/desktop/window-screenshot.nu deleted file mode 100644 index 89785b2..0000000 --- a/other/scripts/desktop/window-screenshot.nu +++ /dev/null @@ -1,19 +0,0 @@ -#!/usr/bin/env nu - -def main [ ] { - let reg = ( - xwininfo -id (xdotool getactivewindow) - | lines - | parse '{key}: {value}' - | str trim - | get value - | echo { - x: $in.1 - y: $in.2 - w: $in.5 - h: $in.6 - } - ); - - flameshot gui --region $"($reg.w)x($reg.h)+($reg.x)+($reg.y)" -c -p ~/Pictures/screenshots -} \ No newline at end of file diff --git a/other/scripts/dispatcher.nu b/other/scripts/dispatcher.nu deleted file mode 100755 index f4e9f71..0000000 --- a/other/scripts/dispatcher.nu +++ /dev/null @@ -1,19 +0,0 @@ -def main [ - interface: string - type: string -] { - $env.PATH = ($env.PATH | split row (char esep) | append '/run/current-system/sw/bin'); - - let currentnet = ( - nmcli -m tabular connection show --active - | detect columns - | first - | get name - ); - - systemd-cat echo $"($currentnet) \(($interface)): ($type)"; - - if $interface == 'wlp2s0' { - ^$"/etc/networkhooks/($currentnet).nu" $interface $type - } -} diff --git a/other/scripts/networkhooks/WIFI@DB.nu b/other/scripts/networkhooks/WIFI@DB.nu deleted file mode 100755 index dd0390d..0000000 --- a/other/scripts/networkhooks/WIFI@DB.nu +++ /dev/null @@ -1,40 +0,0 @@ -def main [ - interface: string - type: string -] { - if not ($type == 'up') { - exit - }; - - mullvad disconnect; - let page = http get 'http://172.0.0.1/'; - - let hotspot_ip = $page | htmlq 'input[name=uamip]' -a 'value'; - let hotspot_port = $page | htmlq 'input[name=uamport]' -a 'value'; - - let pl_data = $page - | htmlq input -a name -r input[name=button] - | lines - | wrap name - | merge ( - $page - | htmlq input -a value - | lines - | wrap value - ) - | drop 1; - - let payload = $pl_data - | each {|kv| [ - ($kv.name | url encode --all) - ($kv.value | url encode --all) ] - | str join '=' - } | str join '&'; - - let res = curl --insecure --resolve $"www.hotsplots.de:($hotspot_port):($hotspot_ip)" -H 'Content-Type: application/x-www-form-urlencoded' "https://www.hotsplots.de/auth/login.php" --data-raw $"($payload)" ; - - let url = $res | htmlq 'meta[http-equiv=refresh]' -a 'content' | parse '0;url={url}'; - - http get $url.url.0; - mullvad connect; -} diff --git a/other/scripts/networkhooks/WIFIonICE.nu b/other/scripts/networkhooks/WIFIonICE.nu deleted file mode 100644 index 2de9902..0000000 --- a/other/scripts/networkhooks/WIFIonICE.nu +++ /dev/null @@ -1,22 +0,0 @@ -#! /usr/bin/env nix-shell -#! nix-shell -i bash -p curl htmlq - -# echo "Fetching cookie and CSRF token..." -# form=$(curl --silent --location --junk-session-cookies --cookie-jar /tmp/wifionice "https://login.wifionice.de/en/" --resolve login.wifionice.de:443:10.101.64.10 -i | htmlq "input") - -# keys=$(htmlq "input" --attribute "name" <<< "$form") -# values=$(htmlq "input" --attribute "value" <<< "$form") -# payload=$(paste --delimiters="=" <(echo "$keys") <(echo "$values") | tr "\n" "&") - -# echo "Payload: \"$payload\"" -# echo "POSTing payload..." - -# curl --cookie /tmp/wifionice "https://login.wifionice.de/en/" --resolve login.wifionice.de:443:10.101.64.10 -d "$payload" - -def main [ - interface: string - type: string -] { - let form = curl --silent --location --junk-session-cookies --cookie-jar /tmp/wifionice 'https://login.wifionice.de/en/' --resolve 'login.wifionice.de:443:10.101.64.10' -i | htmlq 'input'; - # TODO -} diff --git a/other/scripts/networkhooks/ccchh.nu b/other/scripts/networkhooks/ccchh.nu deleted file mode 100644 index bce6e8e..0000000 --- a/other/scripts/networkhooks/ccchh.nu +++ /dev/null @@ -1,41 +0,0 @@ -const wave_timeout = 15min; - -def main [ - interface: string - type: string -] { - if not ('/var/lib/ccchh-winken/last' | path exists) { - mkdir '/var/lib/ccchh-winken'; - 0 | into datetime | save '/var/lib/ccchh-winken/last' -f; - } - - let $last_waved = open '/var/lib/ccchh-winken/last' --raw | into datetime; - - if ((date now) - $last_waved) > $wave_timeout { - if $type == "up" { - mullvad disconnect; - curl mqtt://mqtt.z9/winkekatze/katz9/eye/set -d (rand-color); - curl mqtt://mqtt.z9/winkekatze/Viktoria/eye/set -d (rand-color); - curl mqtt://mqtt.z9/winkekatze/allcats -d 'wink'; - mullvad connect; - - date now | save '/var/lib/ccchh-winken/last' -f; - } - } -} - -def rand-color [] { - const colors = [ - "blue" - "cyan" - "green" - "pink" - "red" - "white" - "yellow" - ]; - - $colors | get (random integer 0..(($colors | length) - 1)) -} - - diff --git a/test.sh b/test.sh new file mode 100755 index 0000000..f6cda85 --- /dev/null +++ b/test.sh @@ -0,0 +1 @@ +sudo nixos-rebuild test --flake . --impure