From cd08309515bce3796777f4b20efffd379b9fabcc Mon Sep 17 00:00:00 2001 From: bee Date: Fri, 1 May 2026 23:45:21 +0530 Subject: Homecoming --- .sops.yaml | 4 +- common/modules/default.nix | 6 +- common/modules/dwm/default.nix | 245 --------- common/modules/dwm/picom.nix | 63 --- common/modules/dwm/scripts.nix | 78 --- common/modules/emacs/default.nix | 33 ++ common/modules/emacs/doom/config.el | 75 +++ common/modules/emacs/doom/init.el | 199 ++++++++ common/modules/emacs/doom/packages.el | 54 ++ common/modules/hyprland/default.nix | 380 -------------- common/modules/mango/default.nix | 416 --------------- common/modules/matugen/default.nix | 10 +- common/modules/matugen/templates/matugen-mango.nix | 2 +- .../modules/matugen/templates/matugen-neovim.nix | 28 - .../matugen/templates/matugen-xresources.nix | 2 +- common/modules/terminal/default.nix | 6 +- common/modules/window_managers/default.nix | 72 +++ common/modules/window_managers/dwm/default.nix | 206 ++++++++ common/modules/window_managers/dwm/picom.nix | 63 +++ common/modules/window_managers/dwm/scripts.nix | 78 +++ .../modules/window_managers/hyprland/default.nix | 343 +++++++++++++ common/modules/window_managers/mango/default.nix | 377 ++++++++++++++ common/programs/vesktop.nix | 29 -- flake.lock | 561 +++------------------ flake.nix | 13 +- hosts/common.nix | 74 +-- hosts/nixios/default.nix | 30 +- hosts/nixios/hardware-configuration.nix | 54 +- secrets/secrets.yaml | 20 +- users/bee/default.nix | 55 +- users/common.nix | 20 +- 31 files changed, 1698 insertions(+), 1898 deletions(-) delete mode 100644 common/modules/dwm/default.nix delete mode 100644 common/modules/dwm/picom.nix delete mode 100644 common/modules/dwm/scripts.nix create mode 100644 common/modules/emacs/default.nix create mode 100644 common/modules/emacs/doom/config.el create mode 100644 common/modules/emacs/doom/init.el create mode 100644 common/modules/emacs/doom/packages.el delete mode 100644 common/modules/hyprland/default.nix delete mode 100644 common/modules/mango/default.nix delete mode 100644 common/modules/matugen/templates/matugen-neovim.nix create mode 100644 common/modules/window_managers/default.nix create mode 100644 common/modules/window_managers/dwm/default.nix create mode 100644 common/modules/window_managers/dwm/picom.nix create mode 100644 common/modules/window_managers/dwm/scripts.nix create mode 100644 common/modules/window_managers/hyprland/default.nix create mode 100644 common/modules/window_managers/mango/default.nix delete mode 100644 common/programs/vesktop.nix diff --git a/.sops.yaml b/.sops.yaml index bc68f85..1cbda7c 100644 --- a/.sops.yaml +++ b/.sops.yaml @@ -1,8 +1,8 @@ keys: - - &nixios age1qfldnsnu2nmklke34uq9fpuf33677a6mlwmnszma7vkn75etrcrq6rxdpg + - &primary age1l8cpc7lhhlhav78jl6s7fcjwuwt9qfrmuav7w2htuqps53swascs6f45yq creation_rules: - path_regex: secrets/secrets.yaml$ key_groups: - age: - - *nixios + - *primary diff --git a/common/modules/default.nix b/common/modules/default.nix index ade06b3..0925ffd 100644 --- a/common/modules/default.nix +++ b/common/modules/default.nix @@ -9,12 +9,10 @@ let inherit inputs homeManager; }; modules = { - mango = import ./mango args; - hypr = import ./hyprland args; - dwm = import ./dwm args; + windowManagers = import ./window_managers args; terminal = import ./terminal args; - beevim = import ./beevim args; matugen = import ./matugen args; + emacs = import ./emacs args; }; in modules diff --git a/common/modules/dwm/default.nix b/common/modules/dwm/default.nix deleted file mode 100644 index 07ddef6..0000000 --- a/common/modules/dwm/default.nix +++ /dev/null @@ -1,245 +0,0 @@ -{ - homeManager, - inputs, - moduleNameSpace, - ... -}: -{ - config, - lib, - pkgs, - ... -}: -let - cfg = config.${moduleNameSpace}.dwm; - snipx11 = pkgs.writeShellScript "snipx11" '' - case $1 in - full) - ${pkgs.maim}/bin/maim | xclip -selection clipboard -t image/png - ;; - selection) - ${pkgs.maim}/bin/maim -s | xclip -selection clipboard -t image/png - ;; - window) - ${pkgs.maim}/bin/maim -i $(xdotool getactivewindow) | xclip -selection clipboard -t image/png - ;; - esac - ''; - st-patched = - (pkgs.st.override { - extraLibs = [ pkgs.libXcursor ]; - }).overrideAttrs - (oldAttrs: rec { - patches = map pkgs.fetchpatch [ - { - url = "https://st.suckless.org/patches/scrollback/st-scrollback-0.9.2.diff"; - sha256 = "sha256-ZypvRONAHS//wnZjivmqpWIqZlKTqAQ0Q8DhQpZVaqU="; - } - { - url = "https://st.suckless.org/patches/scrollback/st-scrollback-mouse-0.9.2.diff"; - sha256 = "sha256-CuNJ5FdKmAtEjwbgKeBKPJTdEfJvIdmeSAphbz0u3Uk="; - } - { - url = "https://st.suckless.org/patches/scrollback/st-scrollback-mouse-altscreen-20220127-2c5edf2.diff"; - sha256 = "sha256-8oVLgbsYCfMhNEOGadb5DFajdDKPxwgf3P/4vOXfUFo="; - } - { - url = "https://st.suckless.org/patches/xresources/st-xresources-20230320-45a15676.diff"; - sha256 = "sha256-WcL9IeyanXFiOFDGGRU0QNT8DU7wSo2o+3n+TaqASUY="; - } - { - url = "https://st.suckless.org/patches/vertcenter/st-vertcenter-20231003-eb3b894.diff"; - sha256 = "sha256-RbFNdGNi5HLAp1s8QOX3qsfxpkLcp1p/vksyZORN/uc="; - } - { - url = "https://st.suckless.org/patches/anysize/st-anysize-20220718-baa9357.diff"; - hash = "sha256-yx9VSwmPACx3EN3CAdQkxeoJKJxQ6ziC9tpBcoWuWHc="; - } - { - url = "https://st.suckless.org/patches/csi_22_23/st-csi_22_23-0.8.5.diff"; - hash = "sha256-+izEkGVkLCbhZNBD2WN4uX5j+YMmou7JaMVmPG0mrYk="; - } - { - url = "https://st.suckless.org/patches/sync/st-appsync-20200618-b27a383.diff"; - sha256 = "sha256-lys7/nup7a+GcmW+CutX0kjmbbOis2stkuhw02beuPs="; - } - { - url = "https://st.suckless.org/patches/fix_keyboard_input/st-fix-keyboard-input-20180605-dc3b5ba.diff"; - sha256 = "sha256-h5ZrCj4IrkMQanLSMmgXaRd7qZYqvbzqUnuFt/axsMI="; - } - { - url = "https://st.suckless.org/patches/boxdraw/st-boxdraw_v2-0.8.5.diff"; - sha256 = "sha256-WN/R6dPuw1eviHOvVVBw2VBSMDtfi1LCkXyX36EJKi4="; - } - # { - # url = "https://st.suckless.org/patches/themed_cursor/st-themed_cursor-0.8.1.diff"; - # sha256 = "sha256-Q/6VN9oCrdJiZPPjKMpw3UB09tIs4eJ1Hi5c8k7O7uo="; - # } - ]; - - postPatch = oldAttrs.postPatch or "" + '' - sed -i 's/Button4, *kscrollup, *{.i = 1}/Button4, kscrollup, {.i = 10}/g' config.def.h - sed -i 's/Button5, *kscrolldown, *{.i = 1}/Button5, kscrolldown, {.i = 10}/g' config.def.h - - sed -i 's/const int boxdraw = 0;/const int boxdraw = 1;/g' config.def.h - sed -i 's/const int boxdraw_bold = 0;/const int boxdraw_bold = 1;/g' config.def.h - - grep -q Xcursor x.c || sed -i '/#include /a #include ' x.c - - sed -i 's/XCreateFontCursor/XcursorLibraryLoadCursor/g' x.c - - sed -i 's/static unsigned int mouseshape/static char *mouseshape/' config.def.h - sed -i 's/XC_xterm/"ibeam"/' config.def.h - - sed -i 's/-lXft/-lXft -lXcursor/g' config.mk - ''; - }); -in -{ - imports = [ - (import ./picom.nix homeManager) - (import ./scripts.nix homeManager) - ]; - - options.${moduleNameSpace}.dwm = { - enable = lib.mkEnableOption "dwm setup"; - picom = { - enable = lib.mkEnableOption "enable picom compositor"; - animations = lib.mkEnableOption "enable animations"; - shadow = lib.mkEnableOption "enable shadows"; - window = { - opacity = { - active = lib.mkOption { - type = lib.types.float; - default = 1.0; - }; - inactive = lib.mkOption { - type = lib.types.float; - default = 1.0; - }; - }; - blur = { - enable = lib.mkEnableOption "Enable window blur"; - strength = lib.mkOption { - type = lib.types.int; - default = 1; - }; - size = lib.mkOption { - type = lib.types.int; - default = 10; - }; - }; - }; - }; - }; - - config = lib.mkIf cfg.enable ( - if !homeManager then - { - services.xserver = { - enable = true; - windowManager.dwm = { - enable = true; - package = inputs.mydwm.packages.${pkgs.stdenv.hostPlatform.system}.default; - }; - autoRepeatDelay = 300; - autoRepeatInterval = 20; - excludePackages = with pkgs; [ xterm ]; - displayManager.sessionCommands = '' - ${pkgs.systemd}/bin/systemctl --user import-environment DISPLAY XAUTHORITY XDG_SESSION_TYPE - ${pkgs.dbus}/bin/dbus-update-activation-environment --systemd DISPLAY XAUTHORITY XDG_SESSION_TYPE - ''; - }; - - programs.ssh.askPassword = ""; - } - else - { - xdg.dataFile."dwm/autostart.sh" = { - executable = true; - text = '' - #!${pkgs.bash}/bin/bash - - gnome-keyring-daemon --start --components=secrets,ssh,pkcs11 & - ${pkgs.polkit_gnome}/libexec/polkit-gnome-authentication-agent-1 & - - [ -f ~/.Xresources ] && xrdb -merge ~/.Xresources - - dunst & - clipcatd & - slstatus & - sync_dms - ${lib.optionalString (!cfg.picom.enable) '' - xrandr --output eDP --set TearFree on - ''} - ${lib.optionalString (cfg.picom.enable) '' - systemctl --user restart picom.service - ''} - - systemctl --user restart xidlehook.service xautolock-session.service xss-lock.service clipcat.service - ''; - }; - - home.packages = with pkgs; [ - st-patched - xdotool - xclip - (pkgs.dmenu.overrideAttrs (oldAttrs: { - patches = (oldAttrs.patches or [ ]) ++ [ - (pkgs.fetchpatch { - url = "https://tools.suckless.org/dmenu/patches/xresources/dmenu-xresources-4.9.diff"; - sha256 = "sha256-Np9I8hhnwmGA3W5v4tSrBN9Or8Q2Ag9x8H3yf8L9jDI="; - }) - ]; - })) - ]; - - services.clipcat = { - enable = false; - daemonSettings = { - daemonize = false; - max_history = 50; - desktop_notification = { - enable = false; - }; - }; - menuSettings = { - server_endpoint = "/run/user/1000/clipcat/grpc.sock"; - finder = "rofi"; - - rofi = { - menu_length = 10; - line_length = 100; - menu_prompt = "Clipboard"; - extra_arguments = [ ]; - }; - }; - }; - - systemd.user.services.clipcat = { - Unit = { - ConditionEnvironment = [ "XDG_SESSION_TYPE=x11" ]; - }; - }; - - xresources.extraConfig = lib.mkIf config.beeMods.matugen.enable '' - #include "${config.xdg.configHome}/x11/matugen.Xresources" - ''; - - xresources.properties = { - "Xft.dpi" = 96; - "Xft.autohint" = 0; - "Xft.antialias" = true; - "Xft.hinting" = true; - "Xft.lcdfilter" = "lcddefault"; - "Xft.hintstyle" = "hintfull"; - "Xft.rgba" = "rgb"; - "st.font" = - "${config.beeMods.terminal.font.family}:size=${toString config.beeMods.terminal.font.size}:antialias=true:autohint=true"; - "dmenu.font" = - "${config.beeMods.terminal.font.family}:size=${toString config.beeMods.terminal.font.size}"; - "st.borderpx" = 5; - }; - } - ); -} diff --git a/common/modules/dwm/picom.nix b/common/modules/dwm/picom.nix deleted file mode 100644 index 93d4b9b..0000000 --- a/common/modules/dwm/picom.nix +++ /dev/null @@ -1,63 +0,0 @@ -homeManager: -{ config, lib, ... }: -let - cfg = config.beeMods.dwm.picom; -in -{ - config = lib.mkIf cfg.enable ( - lib.optionalAttrs homeManager { - services.picom = { - enable = true; - backend = "glx"; - vSync = true; - - activeOpacity = if cfg.window.blur.enable then 0.82 else cfg.window.opacity.active; - inactiveOpacity = if cfg.window.blur.enable then 0.82 else cfg.window.opacity.inactive; - - opacityRules = [ - "100:fullscreen" - "100:_NET_WM_STATE@:32a *= '_NET_WM_STATE_FULLSCREEN'" - ]; - settings = { - blur = { - method = "dual_kawase"; - strength = cfg.window.blur.strength; - size = cfg.window.blur.size; - }; - blur-background = cfg.window.blur.enable; - blur-background-exclude = [ - "window_type = 'dock'" - "window_type = 'desktop'" - "class_g = 'slop'" - "class_g = 'dwm'" - "_GTK_FRAME_EXTENTS@" - "fullscreen" - "_NET_WM_STATE@:32a *= '_NET_WM_STATE_FULLSCREEN'" - ]; - - # xrender-sync-fence = true; - use-damage = true; - - unredir-if-possible = true; - - detect-transient = true; - detect-client-opacity = true; - mark-wmwin-focused = true; - mark-ovredir-focused = true; - detect-rounded-corners = true; - - shadow = cfg.shadow; - fading = false; - animations = cfg.animations; - }; - }; - - # systemd.user.services.picom.Install.wantedBy = lib.mkForce [ ]; - systemd.user.services.picom = { - Unit = { - ConditionEnvironment = "XDG_SESSION_TYPE=x11"; - }; - }; - } - ); -} diff --git a/common/modules/dwm/scripts.nix b/common/modules/dwm/scripts.nix deleted file mode 100644 index 5b52686..0000000 --- a/common/modules/dwm/scripts.nix +++ /dev/null @@ -1,78 +0,0 @@ -homeManager: -{ pkgs, lib, ... }: -let - sync_dms = pkgs.writeShellScriptBin "sync_dms" '' - jq=${pkgs.jq}/bin/jq - CONFIG_FILE=$HOME/.local/state/DankMaterialShell/session.json - - get_val() { $jq -r ".$1" "$CONFIG_FILE"; } - set_val() { - local tmp=$(mktemp) - $jq --arg val "$2" ".$1 = \$val" "$CONFIG_FILE" > "$tmp" && mv "$tmp" "$CONFIG_FILE" - } - - - function sync_all { - ISNIGHTMODE=$(get_val "nightModeEnabled") - NIGHTMODETEMP=$(get_val "nightModeTemperature") - WALL=$(get_val "wallpaperPath") - ${pkgs.xwallpaper}/bin/xwallpaper --zoom "$WALL" - - if [[ "$ISNIGHTMODE" == "true" ]]; then - echo "bitch $ISNIGHTMODE" - ${pkgs.redshift}/bin/redshift -o "$NIGHTMODETEMP" - else - ${pkgs.redshift}/bin/redshift -x - fi - } - - function dmenu_settings { - ISNIGHTMODE=$(get_val "nightModeEnabled") - options="NightMode (Currently $ISNIGHTMODE)\nSync Now" - - choice=$(echo -e "$options" | dmenu -p "Settings:") - - case "$choice" in - *"NightMode"*) - if [[ "$ISNIGHTMODE" == "true" ]]; then - set_val "nightModeEnabled" "false" - else - set_val "nightModeEnabled" "true" - fi - sync_all - ;; - "Sync Now") - sync_all - ;; - esac - } - - case "$1" in - settings) dmenu_settings ;; - *) sync_all ;; - esac - ''; - logout_dmenu = pkgs.writeShellScriptBin "logout_dmenu" '' - options="Lock\nLogout\nReboot\nShutdown" - - choice=$(echo -e "$options" | dmenu -p "System:") - - case "$choice" in - Lock) slock ;; - Logout) pkill dwm ;; - Reboot) reboot ;; - Shutdown) poweroff ;; - *) exit 1 ;; - esac - ''; -in -{ - config = lib.mkIf homeManager ( - lib.optionalAttrs homeManager { - home.packages = with pkgs; [ - sync_dms - logout_dmenu - ]; - } - ); -} diff --git a/common/modules/emacs/default.nix b/common/modules/emacs/default.nix new file mode 100644 index 0000000..4566f57 --- /dev/null +++ b/common/modules/emacs/default.nix @@ -0,0 +1,33 @@ +{ + homeManager, + inputs, + moduleNameSpace, + ... +}: +{ + pkgs, + config, + lib, + ... +}: +let + cfg = config.${moduleNameSpace}.emacs; +in +{ + imports = lib.optionals homeManager [ + inputs.nix-doom-emacs-unstraightened.homeModule + ]; + + options.${moduleNameSpace}.emacs = { + enable = lib.mkEnableOption "Enable emacs"; + }; + + config = lib.mkIf cfg.enable ( + lib.optionalAttrs homeManager { + programs.doom-emacs = { + enable = true; + doomDir = ./doom; # or e.g. `./doom.d` for a local configuration + }; + } + ); +} diff --git a/common/modules/emacs/doom/config.el b/common/modules/emacs/doom/config.el new file mode 100644 index 0000000..5308e62 --- /dev/null +++ b/common/modules/emacs/doom/config.el @@ -0,0 +1,75 @@ +;;; $DOOMDIR/config.el -*- lexical-binding: t; -*- + +;; Place your private configuration here! Remember, you do not need to run 'doom +;; sync' after modifying this file! + + +;; Some functionality uses this to identify you, e.g. GPG configuration, email +;; clients, file templates and snippets. It is optional. +;; (setq user-full-name "John Doe" +;; user-mail-address "john@doe.com") + +;; Doom exposes five (optional) variables for controlling fonts in Doom: +;; +;; - `doom-font' -- the primary font to use +;; - `doom-variable-pitch-font' -- a non-monospace font (where applicable) +;; - `doom-big-font' -- used for `doom-big-font-mode'; use this for +;; presentations or streaming. +;; - `doom-symbol-font' -- for symbols +;; - `doom-serif-font' -- for the `fixed-pitch-serif' face +;; +;; See 'C-h v doom-font' for documentation and more examples of what they +;; accept. For example: +;; +(setq doom-font (font-spec :family "IosevkaInput" :size 14 :weight 'semi-light) + doom-variable-pitch-font (font-spec :family "IosevkaInput" :size 15)) +;; +;; If you or Emacs can't find your font, use 'M-x describe-font' to look them +;; up, `M-x eval-region' to execute elisp code, and 'M-x doom/reload-font' to +;; refresh your font settings. If Emacs still can't find your font, it likely +;; wasn't installed correctly. Font issues are rarely Doom issues! + +;; There are two ways to load a theme. Both assume the theme is installed and +;; available. You can either set `doom-theme' or manually load a theme with the +;; `load-theme' function. This is the default: +(setq doom-theme 'doom-one) + +;; This determines the style of line numbers in effect. If set to `nil', line +;; numbers are disabled. For relative line numbers, set this to `relative'. +(setq display-line-numbers-type t) + +;; If you use `org' and don't want your org files in the default location below, +;; change `org-directory'. It must be set before org loads! +(setq org-directory "~/org/") + + +;; Whenever you reconfigure a package, make sure to wrap your config in an +;; `with-eval-after-load' block, otherwise Doom's defaults may override your +;; settings. E.g. +;; +;; (with-eval-after-load 'PACKAGE +;; (setq x y)) +;; +;; The exceptions to this rule: +;; +;; - Setting file/directory variables (like `org-directory') +;; - Setting variables which explicitly tell you to set them before their +;; package is loaded (see 'C-h v VARIABLE' to look them up). +;; - Setting doom variables (which start with 'doom-' or '+'). +;; +;; Here are some additional functions/macros that will help you configure Doom. +;; +;; - `load!' for loading external *.el files relative to this one +;; - `add-load-path!' for adding directories to the `load-path', relative to +;; this file. Emacs searches the `load-path' when you load packages with +;; `require' or `use-package'. +;; - `map!' for binding new keys +;; +;; To get information about any of these functions/macros, move the cursor over +;; the highlighted symbol at press 'K' (non-evil users must press 'C-c c k'). +;; This will open documentation for it, including demos of how they are used. +;; Alternatively, use `C-h o' to look up a symbol (functions, variables, faces, +;; etc). +;; +;; You can also try 'gd' (or 'C-c c d') to jump to their definition and see how +;; they are implemented. diff --git a/common/modules/emacs/doom/init.el b/common/modules/emacs/doom/init.el new file mode 100644 index 0000000..34d9172 --- /dev/null +++ b/common/modules/emacs/doom/init.el @@ -0,0 +1,199 @@ +;;; init.el -*- lexical-binding: t; -*- + +;; This file controls what Doom modules are enabled and what order they load +;; in. Remember to run 'doom sync' after modifying it! + +;; NOTE: Press 'SPC h d h' (or 'C-h d h' for non-vim users) to access Doom's +;; documentation. There you'll find a link to Doom's Module Index where all of +;; our modules are listed, including what flags they support. + +;; NOTE: Move your cursor over a module's name (or its flags) and press 'K' (or +;; 'C-c c k' for non-vim users) to view its documentation. This works on flags +;; as well (those symbols that start with a plus). +;; +;; Alternatively, press 'gd' (or 'C-c c d') on a module to browse its +;; directory (for easy access to its source code). + +(doom! :input + ;;bidi ; (tfel ot) thgir etirw uoy gnipleh + ;;chinese + ;;japanese + ;;layout ; auie,ctsrnm is the superior home row + + :completion + ;;company ; the ultimate code completion backend + (corfu +orderless) ; complete with cap(f), cape and a flying feather! + ;;helm ; the *other* search engine for love and life + ;;ido ; the other *other* search engine... + ;;ivy ; a search engine for love and life + vertico ; the search engine of the future + + :ui + ;;deft ; notational velocity for Emacs + doom ; what makes DOOM look the way it does + dashboard ; a nifty splash screen for Emacs + ;;doom-quit ; DOOM quit-message prompts when you quit Emacs + ;;(emoji +unicode) ; 🙂 + hl-todo ; highlight TODO/FIXME/NOTE/DEPRECATED/HACK/REVIEW + ;;indent-guides ; highlighted indent columns + ;;ligatures ; ligatures and symbols to make your code pretty again + ;;minimap ; show a map of the code on the side + modeline ; snazzy, Atom-inspired modeline, plus API + ;;nav-flash ; blink cursor line after big motions + ;;neotree ; a project drawer, like NERDTree for vim + ophints ; highlight the region an operation acts on + (popup +defaults) ; tame sudden yet inevitable temporary windows + ;;smooth-scroll ; So smooth you won't believe it's not butter + ;;tabs ; a tab bar for Emacs + ;;treemacs ; a project drawer, like neotree but cooler + ;;unicode ; extended unicode support for various languages + (vc-gutter +pretty) ; vcs diff in the fringe + vi-tilde-fringe ; fringe tildes to mark beyond EOB + ;;window-select ; visually switch windows + workspaces ; tab emulation, persistence & separate workspaces + ;;zen ; distraction-free coding or writing + + :editor + (evil +everywhere); come to the dark side, we have cookies + file-templates ; auto-snippets for empty files + fold ; (nigh) universal code folding + ;;(format +onsave) ; automated prettiness + ;;god ; run Emacs commands without modifier keys + ;;lispy ; vim for lisp, for people who don't like vim + ;;multiple-cursors ; editing in many places at once + ;;objed ; text object editing for the innocent + ;;parinfer ; turn lisp into python, sort of + ;;rotate-text ; cycle region at point between text candidates + snippets ; my elves. They type so I don't have to + (whitespace +guess +trim) ; a butler for your whitespace + ;;word-wrap ; soft wrapping with language-aware indent + + :emacs + dired ; making dired pretty [functional] + electric ; smarter, keyword-based electric-indent + ;;eww ; the internet is gross + ;;ibuffer ; interactive buffer management + tramp ; remote files at your arthritic fingertips + undo ; persistent, smarter undo for your inevitable mistakes + vc ; version-control and Emacs, sitting in a tree + + :term + ;;eshell ; the elisp shell that works everywhere + ;;shell ; simple shell REPL for Emacs + ;;term ; basic terminal emulator for Emacs + ;;vterm ; the best terminal emulation in Emacs + + :checkers + syntax ; tasing you for every semicolon you forget + ;;(spell +flyspell) ; tasing you for misspelling mispelling + ;;grammar ; tasing grammar mistake every you make + + :tools + ;;ansible + ;;biblio ; Writes a PhD for you (citation needed) + ;;collab ; buffers with friends + ;;debugger ; stepping through code, to help you add bugs + ;;direnv + ;;docker + ;;editorconfig ; let someone else argue about tabs vs spaces + ;;ein ; tame Jupyter notebooks with emacs + (eval +overlay) ; run code, run (also, repls) + lookup ; navigate your code and its documentation + ;;llm ; when I said you needed friends, I didn't mean... + (lsp +eglot) ; M-x vscode + magit ; a git porcelain for Emacs + ;;make ; run make tasks from Emacs + ;;pass ; password manager for nerds + ;;pdf ; pdf enhancements + ;;terraform ; infrastructure as code + ;;tmux ; an API for interacting with tmux + tree-sitter ; syntax and parsing, sitting in a tree... + ;;upload ; map local to remote projects via ssh/ftp + + :os + (:if (featurep :system 'macos) macos) ; improve compatibility with macOS + ;;tty ; improve the terminal Emacs experience + + :lang + ;;ada ; In strong typing we (blindly) trust + ;;(agda +local) ; types of types of types of types... + ;;beancount ; mind the GAAP + (cc +lsp) ; C > C++ == 1 + ;;clojure ; java with a lisp + ;;common-lisp ; if you've seen one lisp, you've seen them all + ;;coq ; proofs-as-programs + ;;crystal ; ruby at the speed of c + ;;csharp ; unity, .NET, and mono shenanigans + ;;data ; config/data formats + ;;(dart +flutter) ; paint ui and not much else + ;;dhall + ;;elixir ; erlang done right + ;;elm ; care for a cup of TEA? + emacs-lisp ; drown in parentheses + ;;erlang ; an elegant language for a more civilized age + ;;ess ; emacs speaks statistics + ;;factor + ;;faust ; dsp, but you get to keep your soul + ;;fortran ; in FORTRAN, GOD is REAL (unless declared INTEGER) + ;;fsharp ; ML stands for Microsoft's Language + ;;fstar ; (dependent) types and (monadic) effects and Z3 + ;;gdscript ; the language you waited for + ;;(go +lsp) ; the hipster dialect + ;;(graphql +lsp) ; Give queries a REST + ;;(haskell +lsp) ; a language that's lazier than I am + ;;hy ; readability of scheme w/ speed of python + ;;idris ; a language you can depend on + ;;json ; At least it ain't XML + ;;janet ; Fun fact: Janet is me! + ;;(java +lsp) ; the poster child for carpal tunnel syndrome + ;;javascript ; all(hope(abandon(ye(who(enter(here)))))) + ;;julia ; a better, faster MATLAB + ;;kotlin ; a better, slicker Java(Script) + ;;latex ; writing papers in Emacs has never been so fun + ;;lean ; for folks with too much to prove + ;;ledger ; be audit you can be + ;;lua ; one-based indices? one-based indices + markdown ; writing docs for people to ignore + ;;nim ; python + lisp at the speed of c + nix ; I hereby declare "nix geht mehr!" + ;;ocaml ; an objective camel + ;;odin ; C, minus its footguns + org ; organize your plain life in plain text + ;;php ; perl's insecure younger brother + ;;plantuml ; diagrams for confusing people more + ;;graphviz ; diagrams for confusing yourself even more + ;;purescript ; javascript, but functional + ;;python ; beautiful is better than ugly + ;;qt ; the 'cutest' gui framework ever + ;;racket ; a DSL for DSLs + ;;raku ; the artist formerly known as perl6 + ;;rest ; Emacs as a REST client + ;;rst ; ReST in peace + ;;(ruby +rails) ; 1.step {|i| p "Ruby is #{i.even? ? 'love' : 'life'}"} + (rust +lsp) ; Fe2O3.unwrap().unwrap().unwrap().unwrap() + ;;scala ; java, but good + ;;(scheme +guile) ; a fully conniving family of lisps + sh ; she sells {ba,z,fi}sh shells on the C xor + ;;sml + ;;solidity ; do you need a blockchain? No. + ;;swift ; who asked for emoji variables? + ;;terra ; Earth and Moon in alignment for performance. + ;;web ; the tubes + ;;yaml ; JSON, but readable + zig ; C, but simpler + + :email + ;;(mu4e +org +gmail) + ;;notmuch + ;;(wanderlust +gmail) + + :app + ;;calendar + ;;emms + ;;everywhere ; *leave* Emacs!? You must be joking + ;;irc ; how neckbeards socialize + ;;(rss +org) ; emacs as an RSS reader + + :config + ;;literate + (default +bindings +smartparens)) diff --git a/common/modules/emacs/doom/packages.el b/common/modules/emacs/doom/packages.el new file mode 100644 index 0000000..d2680fe --- /dev/null +++ b/common/modules/emacs/doom/packages.el @@ -0,0 +1,54 @@ +;; -*- no-byte-compile: t; -*- +;;; $DOOMDIR/packages.el + +;; To install a package: +;; +;; 1. Declare them here in a `package!' statement, +;; 2. Run 'doom sync' in the shell, +;; 3. Restart Emacs. +;; +;; Use 'C-h f package\!' to look up documentation for the `package!' macro. + + +;; To install SOME-PACKAGE from MELPA, ELPA or emacsmirror: +;; (package! some-package) + +;; To install a package directly from a remote git repo, you must specify a +;; `:recipe'. You'll find documentation on what `:recipe' accepts here: +;; https://github.com/radian-software/straight.el#the-recipe-format +;; (package! another-package +;; :recipe (:host github :repo "username/repo")) + +;; If the package you are trying to install does not contain a PACKAGENAME.el +;; file, or is located in a subdirectory of the repo, you'll need to specify +;; `:files' in the `:recipe': +;; (package! this-package +;; :recipe (:host github :repo "username/repo" +;; :files ("some-file.el" "src/lisp/*.el"))) + +;; If you'd like to disable a package included with Doom, you can do so here +;; with the `:disable' property: +;; (package! builtin-package :disable t) + +;; You can override the recipe of a built in package without having to specify +;; all the properties for `:recipe'. These will inherit the rest of its recipe +;; from Doom or MELPA/ELPA/Emacsmirror: +;; (package! builtin-package :recipe (:nonrecursive t)) +;; (package! builtin-package-2 :recipe (:repo "myfork/package")) + +;; Specify a `:branch' to install a package from a particular branch or tag. +;; This is required for some packages whose default branch isn't 'master' (which +;; our package manager can't deal with; see radian-software/straight.el#279) +;; (package! builtin-package :recipe (:branch "develop")) + +;; Use `:pin' to specify a particular commit to install. +;; (package! builtin-package :pin "1a2b3c4d5e") + + +;; Doom's packages are pinned to a specific commit and updated from release to +;; release. The `unpin!' macro allows you to unpin single packages... +;; (unpin! pinned-package) +;; ...or multiple packages +;; (unpin! pinned-package another-pinned-package) +;; ...Or *all* packages (NOT RECOMMENDED; will likely break things) +;; (unpin! t) diff --git a/common/modules/hyprland/default.nix b/common/modules/hyprland/default.nix deleted file mode 100644 index d230ac0..0000000 --- a/common/modules/hyprland/default.nix +++ /dev/null @@ -1,380 +0,0 @@ -{ - homeManager, - inputs, - moduleNameSpace, - ... -}: -{ - config, - lib, - pkgs, - ... -}: -let - cfg = config.${moduleNameSpace}.hyprland; - - snip = pkgs.writeShellScript "snip" '' - case $1 in - full) - ${pkgs.grim}/bin/grim - | wl-copy - ;; - selection) - GEOM=$(${pkgs.slurp}/bin/slurp) || exit - ${pkgs.grim}/bin/grim -g "$GEOM" - | wl-copy - ;; - window) - GEOM=$(hyprctl activewindow -j | ${pkgs.jq}/bin/jq -r '"\(.at[0]),\(.at[1]) \(.size[0])x\(.size[1])"') - ${pkgs.grim}/bin/grim -g "$GEOM" - | wl-copy - ;; - esac - ''; - - smart-alacritty = pkgs.writeShellScript "smart-alacritty" '' - alacritty msg create-window || exec alacritty - ''; - - smart-ghostty = pkgs.writeShellScript "smart-ghostty" '' - ghostty +new-window || exec ghostty - ''; - - terminal = - if config.beeMods.terminal.default == "alacritty" then - smart-alacritty - else if config.beeMods.terminal.default == "ghostty" then - smart-ghostty - else - config.beeMods.terminal.default; - - settings-persist = pkgs.writeShellScript "settings-persist" '' - SETTINGS_FILE="$HOME/.config/beeSettings" - - if [[ -f "$SETTINGS_FILE" ]]; then - IS_NIGHTMODE=$(${pkgs.ripgrep}/bin/rg "nightlight" "$SETTINGS_FILE" | cut -d"=" -f2) - - if [[ "$IS_NIGHTMODE" == "on" ]]; then - ${pkgs.wlsunset}/bin/wlsunset -T 4500 & - fi - fi - ''; -in -{ - options.${moduleNameSpace}.hyprland = { - enable = lib.mkEnableOption "hyprland setup"; - animations = lib.mkEnableOption "Uiiiiiiiiiii"; - window = { - blur = { - enable = lib.mkEnableOption "Enable window blur"; - passes = lib.mkOption { - type = lib.types.int; - default = 1; - }; - radius = lib.mkOption { - type = lib.types.int; - default = 10; - }; - }; - shadows = lib.mkEnableOption "Enable window drop shadows"; - border_radius = lib.mkOption { - type = lib.types.int; - default = 0; - description = "Border radius"; - }; - opacity = lib.mkOption { - type = lib.types.number; - default = 1.0; - description = "Window opacity"; - }; - }; - }; - - config = lib.mkIf cfg.enable ( - if homeManager then - { - wayland.windowManager.hyprland = { - enable = true; - systemd.enable = true; - systemd.variables = [ "--all" ]; - xwayland.enable = true; - systemd.enableXdgAutostart = false; - - settings = { - monitor = [ ",1920x1080@120,auto,1.0" ]; - - # Conditionally load matugen colors if enabled - # source = [ ] ++ lib.optional (config.beeMods.matugen.enable) "~/.config/hypr/hyprland-colors.conf"; - - "$mainMod" = "SUPER"; - - # env = [ - # "NIXOS_OZONE_WL,1" - # "QT_AUTO_SCREEN_SCALE_FACTOR,1" - # "ELECTRON_OZONE_PLATFORM_HINT,auto" - # "QT_QPA_PLATFORM,wayland;xcb" - # "XDG_SESSION_TYPE,wayland" - # "GDK_BACKEND,wayland,x11" - # "GDK_SCALE,1" - # ]; - # - exec-once = [ - "wl-clip-persist --clipboard regular --reconnect-tries 0" - "wl-paste --type text --watch cliphist store" - "${pkgs.polkit_gnome}/libexec/polkit-gnome-authentication-agent-1" - "gnome-keyring-daemon --start --components=secrets,ssh,pkcs11" - "${settings-persist}" - "dbus-update-activation-environment --all" - "sleep 1 && dbus-update-activation-environment --systemd WAYLAND_DISPLAY XDG_CURRENT_DESKTOP" - ] - ++ lib.optionals (config.beeMods.x11.dwm.enable || config.beeMods.x11.bspwm.enable) [ - "systemctl --user stop xidlehook.service" - "systemctl --user stop xautolock-session.service" - "systemctl --user stop xss-lock.service" - "systemctl --user stop clipcat.service" - ] - ++ lib.optionals (config.beeMods.x11.picom.enable) [ - "systemctl --user stop picom.service" - ]; - - xwayland = { - force_zero_scaling = true; - }; - - input = { - follow_mouse = 1; - kb_layout = "us"; - repeat_delay = 300; - repeat_rate = 50; - sensitivity = 0; - numlock_by_default = false; - left_handed = false; - - touchpad = { - natural_scroll = true; - tap-to-click = true; - drag_lock = true; - disable_while_typing = true; - middle_button_emulation = false; - }; - }; - - general = { - layout = "master"; - gaps_in = 5; - gaps_out = 5; - border_size = 2; - - resize_on_border = true; - no_focus_fallback = true; - allow_tearing = false; - - # "col.active_border" = "$_tertiary_fixed_dim"; - # "col.inactive_border" = "$_outline"; - }; - - master = { - allow_small_split = true; - new_on_top = false; - mfact = 0.56; - }; - - scrolling = { - column_width = 0.55; - follow_focus = true; - }; - - decoration = { - rounding = cfg.window.border_radius; - - blur = { - enabled = cfg.window.blur.enable; - size = cfg.window.blur.radius; - passes = cfg.window.blur.passes; - brightness = 0.9; - contrast = 0.9; - noise = 0.02; - vibrancy = 1.2; - popups = true; - popups_ignorealpha = 0.6; - }; - - shadow = { - enabled = cfg.window.shadows; - ignore_window = true; - range = 10; - render_power = 3; - offset = "0 0"; - color = "rgba(00000044)"; - }; - - # Apply opacity logic utilizing cfg options - active_opacity = - if (cfg.window.blur.enable && cfg.window.opacity == 1.0) then 0.82 else cfg.window.opacity; - inactive_opacity = - if (cfg.window.blur.enable && cfg.window.opacity == 1.0) then 0.82 else cfg.window.opacity; - fullscreen_opacity = 1.0; - - dim_inactive = false; - }; - - animations = { - enabled = true; - - bezier = [ - "openCurve, 0.05, 0.7, 0.1, 1.0" - "closeCurve, 0.0, 0.0, 1.0, 1.0" - "moveCurve, 0.46, 1.0, 0.29, 1.0" - ]; - - animation = [ - "windowsIn, 1, 2.8, openCurve, slide" - "windowsOut, 1, 6.5, closeCurve, popin 80%" - "windowsMove, 1, 2.2, moveCurve" - "fadeIn, 0, 3.0, fadeCurve" - "fadeOut, 1, 2.5, moveCurve" - "workspaces, 1, 2.5, moveCurve, slide" - ]; - }; - - misc = { - vfr = true; - vrr = 0; - mouse_move_enables_dpms = true; - key_press_enables_dpms = true; - disable_splash_rendering = true; - animate_manual_resizes = true; - animate_mouse_windowdragging = false; - enable_swallow = false; - swallow_regex = "(foot|kitty|alacritty|Alacritty|com.mitchellh.ghostty|)"; - disable_hyprland_logo = true; - force_default_wallpaper = 0; - focus_on_activate = true; - }; - - binds = { - scroll_event_delay = 0; - focus_preferred_method = 1; - }; - - windowrule = [ - "workspace 1, match:class ^(foot|footclient|alacritty|com.mitchellh.ghostty)$" - "workspace 2, match:class ^(zen|firefox|obsidian)$" - "workspace 3, match:class ^(vesktop|discord|thunderbird|Element|equibop)$" - "workspace 4, match:class ^(steam)$" - "float on, match:class ^(org.gnome.Calculator|org.pulseaudio.pavucontrol)$" - "stay_focused on, match:class ^(pinentry-)(.*)$" - ]; - - layerrule = [ - "no_anim on, match:namespace ^rofi$" - ]; - - workspace = [ "2, layout:scrolling" ]; - - bind = [ - "$mainMod, r, exec, hyprctl reload" - "$mainMod, Return, exec, ${terminal}" - "$mainMod, a, exec, rofi -show drun" - "$mainMod, period, exec, rofi -show emoji -modi emoji" - "ALT, F4, exec, rofi -show power-menu -modi power-menu:rofi-power-menu" - "$mainMod, y, exec, beesettings wall" - "$mainMod, comma, exec, beesettings settings" - - "$mainMod, F12, exec, gnome-calculator" - "$mainMod, b, exec, zen" - "$mainMod, e, exec, nautilus" - - "$mainMod, m, exit," - "$mainMod, q, killactive," - - "$mainMod, h, movefocus, l" - "$mainMod, l, movefocus, r" - "$mainMod, k, movefocus, u" - "$mainMod, j, movefocus, d" - - ", Print, exec, ${snip} full" - "$mainMod, Print, exec, ${snip} selection" - "$mainMod SHIFT, Print, exec, ${snip} window" - - "$mainMod SHIFT, k, swapwindow, u" - "$mainMod SHIFT, j, swapwindow, d" - "$mainMod SHIFT, h, swapwindow, l" - "$mainMod SHIFT, l, swapwindow, r" - - "$mainMod, g, pin," - "ALT, Tab, workspace, previous" - "$mainMod, space, togglefloating," - "ALT, a, fullscreen, 1" - "ALT, f, fullscreen, 0" - "$mainMod, i, togglespecialworkspace, minimized" - "$mainMod, i, movetoworkspacesilent, special:minimized" - "$mainMod SHIFT, i, togglespecialworkspace, minimized" - "$mainMod SHIFT, i, movetoworkspace, +0" - "ALT, z, togglespecialworkspace, scratchpad" - - "$mainMod, n, exec, beesettings layout" - - "$mainMod, 1, workspace, 1" - "$mainMod, 2, workspace, 2" - "$mainMod, 3, workspace, 3" - "$mainMod, 4, workspace, 4" - "$mainMod, 5, workspace, 5" - "$mainMod, 6, workspace, 6" - "$mainMod, 7, workspace, 7" - "$mainMod, 8, workspace, 8" - "$mainMod, 9, workspace, 9" - - "$mainMod SHIFT, 1, movetoworkspace, 1" - "$mainMod SHIFT, 2, movetoworkspace, 2" - "$mainMod SHIFT, 3, movetoworkspace, 3" - "$mainMod SHIFT, 4, movetoworkspace, 4" - "$mainMod SHIFT, 5, movetoworkspace, 5" - "$mainMod SHIFT, 6, movetoworkspace, 6" - "$mainMod SHIFT, 7, movetoworkspace, 7" - "$mainMod SHIFT, 8, movetoworkspace, 8" - "$mainMod SHIFT, 9, movetoworkspace, 9" - - "ALT SHIFT, Left, focusmonitor, l" - "ALT SHIFT, Right, focusmonitor, r" - "$mainMod ALT, Left, movecurrentworkspacetomonitor, l" - "$mainMod ALT, Right, movecurrentworkspacetomonitor, r" - ]; - - binde = [ - "$mainMod, Up, moveactive, 0 -50" - "$mainMod, Down, moveactive, 0 50" - "$mainMod, Left, moveactive, -50 0" - "$mainMod, Right, moveactive, 50 0" - - "ALT, k, resizeactive, 0 -50" - "ALT, j, resizeactive, 0 50" - "ALT, h, resizeactive, -50 0" - "ALT, l, resizeactive, 50 0" - ]; - - bindel = [ - ", XF86AudioRaiseVolume, exec, volume-control up" - ", XF86AudioLowerVolume, exec, volume-control down" - ", XF86AudioMute, exec, volume-control mute" - ", XF86AudioMicMute, exec, mic-control toggle" - - ", XF86AudioPlay, exec, playerctl play-pause" - ", XF86AudioNext, exec, playerctl next" - ", XF86AudioPrev, exec, playerctl previous" - ", XF86AudioStop, exec, playerctl stop" - - ", XF86MonBrightnessUp, exec, brightness-control up" - ", XF86MonBrightnessDown, exec, brightness-control down" - ]; - - bindm = [ - "$mainMod, mouse:272, movewindow" - "$mainMod, mouse:273, resizewindow" - ]; - }; - }; - } - else - { - programs.hyprland.enable = true; - } - ); -} diff --git a/common/modules/mango/default.nix b/common/modules/mango/default.nix deleted file mode 100644 index 7938c05..0000000 --- a/common/modules/mango/default.nix +++ /dev/null @@ -1,416 +0,0 @@ -{ - homeManager, - inputs, - moduleNameSpace, - ... -}: -{ - config, - lib, - pkgs, - ... -}: -let - cfg = config.${moduleNameSpace}.mango; - snip = pkgs.writeShellScript "snip" '' - case $1 in - full) - ${pkgs.grim}/bin/grim - | wl-copy - ;; - selection) - GEOM=$(${pkgs.slurp}/bin/slurp) || exit - ${pkgs.grim}/bin/grim -g "$GEOM" - | wl-copy - ;; - window) - ${pkgs.grim}/bin/grim -g "$(mmsg -x | awk ' - / x / {x=$3} - / y / {y=$3} - / width / {w=$3} - / height / {h=$3} - END {print x "," y " " w "x" h} - ')" - | wl-copy - ;; - esac - ''; - smart-alacritty = pkgs.writeShellScript "smart-alacritty" '' - alacritty msg create-window || exec alacritty - ''; - smart-ghostty = pkgs.writeShellScript "smart-ghostty" '' - ghostty +new-window || exec ghostty - ''; - terminal = - if config.beeMods.terminal.default == "alacritty" then - smart-alacritty - else if config.beeMods.terminal.default == "ghostty" then - smart-ghostty - else - config.beeMods.terminal.default; -in -{ - imports = - if homeManager then [ inputs.mango.hmModules.mango ] else [ inputs.mango.nixosModules.mango ]; - - options.${moduleNameSpace}.mango = { - enable = lib.mkEnableOption "mango setup"; - animations = lib.mkEnableOption "Uiiiiiiiiiii"; - waybar = lib.mkEnableOption "Enable waybar"; - window = { - blur = { - enable = lib.mkEnableOption "Enable window blur"; - passes = lib.mkOption { - type = lib.types.int; - default = 1; - }; - radius = lib.mkOption { - type = lib.types.int; - default = 10; - }; - }; - shadows = lib.mkEnableOption "Enable window drop shadows"; - border_radius = lib.mkOption { - type = lib.types.int; - default = 0; - description = "Border radius"; - }; - opacity = lib.mkOption { - type = lib.types.number; - default = 1.0; - description = "Window opacity"; - }; - }; - }; - - config = lib.mkIf cfg.enable ( - if homeManager then - { - wayland.windowManager.mango = { - enable = true; - systemd.enable = true; - systemd.variables = [ "--all" ]; - extraConfig = '' - ${lib.optionalString (config.beeMods.matugen.enable) '' - source=~/.config/mango/mango-colors.conf - ''} - - # Window effect - blur=${if cfg.window.blur.enable then "1" else "0"} - blur_layer=0 - blur_optimized=1 - blur_params_num_passes = ${toString cfg.window.blur.passes} - blur_params_radius = ${toString cfg.window.blur.radius} - blur_params_noise = 0.02 - blur_params_brightness = 0.9 - blur_params_contrast = 0.9 - blur_params_saturation = 1.2 - - shadows=${if cfg.window.shadows then "1" else "0"} - layer_shadows = 0 - shadow_only_floating = 1 - shadows_size = 10 - shadows_blur = 15 - shadows_position_x = 0 - shadows_position_y = 0 - - border_radius=${toString cfg.window.border_radius} - no_radius_when_single=0 - - ${ - if (cfg.window.blur.enable && cfg.window.opacity == 1.0) then - '' - focused_opacity=0.82 - unfocused_opacity=0.82 - '' - else - '' - focused_opacity=${toString cfg.window.opacity} - unfocused_opacity=${toString cfg.window.opacity} - '' - } - - # Animation Configuration(support type:zoom,slide) - # tag_animation_direction: 1-horizontal,0-vertical - animations=${if cfg.animations then "1" else "0"} - layer_animations=0 - animation_type_open=slide - animation_type_close=zoom - animation_fade_in=0 - animation_fade_out=1 - tag_animation_direction=1 - zoom_initial_ratio=0.8 - zoom_end_ratio=0.8 - fadein_begin_opacity=0.5 - fadeout_begin_opacity=0.5 - animation_duration_move=250 - animation_duration_open=250 - animation_duration_tag=250 - animation_duration_close=100 - animation_duration_focus=0 - animation_curve_open=0.05,0.7,0.1,1.0 - animation_curve_move=0.46,1.0,0.29,1 - animation_curve_tag=0.46,1.0,0.29,1 - animation_curve_close=0.0,0.0,1.0,1.0 - animation_curve_focus=0.05,0.7,0.1,1.0 - animation_curve_opafadeout=0.5,0.5,0.5,0.5 - animation_curve_opafadein=0.46,1.0,0.29,1 - - # Scroller configuration - scroller_structs=15 - scroller_default_proportion=0.6 - scroller_focus_center=0 - scroller_prefer_center=0 - edge_scroller_pointer_focus=1 - scroller_default_proportion_single=1.0 - scroller_ignore_proportion_single=0 - scroller_proportion_preset=0.5,0.8,1.0 - - # Master-Stack Layout Setting - new_is_master=0 - default_mfact=0.56 - default_nmaster=1 - smartgaps=0 - - # Overview Setting - hotarea_size=10 - enable_hotarea=0 - ov_tab_mode=0 - overviewgappi=5 - overviewgappo=30 - - # Misc - no_border_when_single=0 - axis_bind_apply_timeout=100 - focus_on_activate=1 - idleinhibit_ignore_visible=0 - sloppyfocus=1 - warpcursor=1 - focus_cross_monitor=0 - focus_cross_tag=0 - enable_floating_snap=0 - snap_distance=30 - # cursor_size=24 - drag_tile_to_tile=1 - xwayland_persistence=0 - syncobj_enable=0 - allow_tearing=0 - - # keyboard - repeat_delay=300; - repeat_rate=50; - numlockon=0 - xkb_rules_layout=us - - # Trackpad - # need relogin to make it apply - disable_trackpad=0 - tap_to_click=1 - tap_and_drag=1 - drag_lock=1 - trackpad_natural_scrolling=1 - disable_while_typing=1 - left_handed=0 - middle_button_emulation=0 - swipe_min_threshold=1 - - # mouse - # need relogin to make it apply - mouse_natural_scrolling=0 - - windowrule=tags:1,appid:^(foot|footclient|alacritty|dev.zed.Zed)$ - windowrule=tags:2,appid:^(zen|firefox|obsidian)$ - windowrule=tags:3,appid:^(vesktop|discord|thunderbird|Element|equibop)$ - windowrule=tags:4,appid:^steam$ - - windowrule=scroller_proportion:0.3,appid:^steam$,title:^Friends List$ - windowrule=scroller_proportion:0.5,appid:^steam$,title:.*(Settings|Properties).* - windowrule=isfloating:1,appid:^steam$,title:^Steam - News$ - windowrule=isfloating:1,appid:^(org.gnome.Calculator|org.pulseaudio.pavucontrol)$ - windowrule=isoverlay:1,appid:^com.gabm.satty$ - - # Appearance - gappih=5 - gappiv=5 - gappoh=5 - gappov=5 - scratchpad_width_ratio=0.8 - scratchpad_height_ratio=0.9 - borderpx=2 - - # layout support: - # tile,scroller,grid,deck,monocle,center_tile,vertical_tile,vertical_scroller - tagrule=id:1,layout_name:tgmix - tagrule=id:2,layout_name:scroller - tagrule=id:3,layout_name:scroller - tagrule=id:4,layout_name:scroller - tagrule=id:5,layout_name:grid - tagrule=id:6,layout_name:tile - tagrule=id:7,layout_name:tile - tagrule=id:8,layout_name:tile - tagrule=id:9,layout_name:tile - - # Key Bindings - # key name refer to `xev` or `wev` command output, - # mod keys name: super,ctrl,alt,shift,none - - # reload config - bind=SUPER,r,reload_config - - bind=SUPER,Return,spawn,${terminal} - - bind=SUPER,v,spawn,dms ipc call clipboard toggle - bind=SUPER,a,spawn,dms ipc call spotlight toggle - bind=ALT,F4,spawn,dms ipc call powermenu toggle - bind=SUPER,y,spawn,dms ipc call dankdash wallpaper - bind=SUPER,comma,spawn,dms ipc call settings focusOrToggle - - bind=SUPER,F12,spawn,gnome-calculator - bind=SUPER,b,spawn,zen - bind=SUPER,e,spawn,nautilus - - # exit - bind=SUPER,m,quit - bind=SUPER,q,killclient, - - # switch window focus - bind=SUPER,h,focusdir,left - bind=SUPER,l,focusdir,right - bind=SUPER,k,focusdir,up - bind=SUPER,j,focusdir,down - - bind=NONE,Print,spawn,${snip} full - bind=SUPER,Print,spawn,${snip} selection - bind=SUPER+SHIFT,Print,spawn,${snip} window - - # swap window - bind=SUPER+SHIFT,k,exchange_client,up - bind=SUPER+SHIFT,j,exchange_client,down - bind=SUPER+SHIFT,h,exchange_client,left - bind=SUPER+SHIFT,l,exchange_client,right - - # switch window status - bind=SUPER,g,toggleglobal, - bind=ALT,Tab,toggleoverview, - bind=SUPER,space,togglefloating, - bind=ALT,a,togglemaximizescreen, - bind=SUPER,f,toggle_all_floating, - bind=ALT,f,togglefullscreen, - bind=ALT+SHIFT,f,togglefakefullscreen, - bind=SUPER,i,minimized, - bind=SUPER,o,toggleoverlay, - bind=SUPER+SHIFT,I,restore_minimized - bind=ALT,z,toggle_scratchpad - - # scroller layout - bind=ALT,e,set_proportion,1.0 - bind=ALT,x,switch_proportion_preset, - - # switch layout - # bind=SUPER,n,switch_layout - bind=SUPER,n,spawn,dms ipc call notifications toggle - - # tag switch - bind=SUPER,1,view,1,0 - bind=SUPER,2,view,2,0 - bind=SUPER,3,view,3,0 - bind=SUPER,4,view,4,0 - bind=SUPER,5,view,5,0 - bind=SUPER,6,view,6,0 - bind=SUPER,7,view,7,0 - bind=SUPER,8,view,8,0 - bind=SUPER,9,view,9,0 - - # tag: move client to the tag and focus it - # tagsilent: move client to the tag and not focus it - # bind=Alt,1,tagsilent,1 - bind=SUPER+SHIFT,1,tag,1,0 - bind=SUPER+SHIFT,2,tag,2,0 - bind=SUPER+SHIFT,3,tag,3,0 - bind=SUPER+SHIFT,4,tag,4,0 - bind=SUPER+SHIFT,5,tag,5,0 - bind=SUPER+SHIFT,6,tag,6,0 - bind=SUPER+SHIFT,7,tag,7,0 - bind=SUPER+SHIFT,8,tag,8,0 - bind=SUPER+SHIFT,9,tag,9,0 - - # monitor switch - bind=alt+shift,Left,focusmon,left - bind=alt+shift,Right,focusmon,right - bind=SUPER+Alt,Left,tagmon,left - bind=SUPER+Alt,Right,tagmon,right - - # gaps - bind=ALT+SHIFT,X,incgaps,1 - bind=ALT+SHIFT,Z,incgaps,-1 - bind=ALT+SHIFT,R,togglegaps - - # movewin - bind=SUPER,Up,movewin,+0,-50 - bind=SUPER,Down,movewin,+0,+50 - bind=SUPER,Left,movewin,-50,+0 - bind=SUPER,Right,movewin,+50,+0 - - # resizewin - bind=ALT,k,resizewin,+0,-50 - bind=ALT,j,resizewin,+0,+50 - bind=ALT,h,resizewin,-50,+0 - bind=ALT,l,resizewin,+50,+0 - - # Volume Control (using wpctl/Pipewire) - bind=NONE,XF86AudioRaiseVolume,spawn,wpctl set-volume -l 1.5 @DEFAULT_AUDIO_SINK@ 5%+ - bind=NONE,XF86AudioLowerVolume,spawn,wpctl set-volume @DEFAULT_AUDIO_SINK@ 5%- - bind=NONE,XF86AudioMute,spawn,wpctl set-mute @DEFAULT_AUDIO_SINK@ toggle - - bind=NONE,XF86AudioPlay,spawn,playerctl play-pause - bind=NONE,XF86AudioNext,spawn,playerctl next - bind=NONE,XF86AudioPrev,spawn,playerctl previous - bind=NONE,XF86AudioStop,spawn,playerctl stop - - bind=NONE,XF86AudioMicMute,spawn,wpctl set-mute @DEFAULT_AUDIO_SOURCE@ toggle - - bind=NONE,XF86MonBrightnessUp,spawn,brightnessctl set +5% - bind=NONE,XF86MonBrightnessDown,spawn,brightnessctl set 5%- - - mousebind=SUPER,btn_left,moveresize,curmove - mousebind=NONE,btn_middle,togglemaximizescreen,0 - mousebind=SUPER,btn_right,moveresize,curresize - - axisbind=SUPER,UP,viewtoleft_have_client - axisbind=SUPER,DOWN,viewtoright_have_client - - layerrule=noanim:1,layer_name:^dms - - env=NIXOS_OZONE_WL,1 - env=QT_AUTO_SCREEN_SCALE_FACTOR,1 - env=ELECTRON_OZONE_PLATFORM_HINT,auto - env=QT_QPA_PLATFORM,wayland - env=XDG_SESSION_TYPE,wayland - env=GDK_BACKEND,wayland,x11 - env=GDK_SCALE,1 - ''; - autostart_sh = '' - wl-paste --type text --watch cliphist store & - gnome-keyring-daemon --start --components=secrets,ssh,pkcs11 & - - ${lib.optionalString (config.beeMods.dwm.enable) '' - systemctl --user stop xidlehook.service - systemctl --user stop xautolock-session.service - systemctl --user stop xss-lock.service - systemctl --user stop clipcat.service - ''} - - ${lib.optionalString (config.beeMods.dwm.picom.enable) '' - systemctl --user stop picom.service - ''} - ''; - }; - home.packages = with pkgs; [ - wl-clipboard - cliphist - brightnessctl - ]; - } - else - { - programs.mango.enable = true; - } - ); -} diff --git a/common/modules/matugen/default.nix b/common/modules/matugen/default.nix index 6bf73a2..ecc9255 100644 --- a/common/modules/matugen/default.nix +++ b/common/modules/matugen/default.nix @@ -48,7 +48,7 @@ in output_path = '~/.config/zathura/matugen' ''} - ${lib.optionalString config.beeMods.mango.enable '' + ${lib.optionalString config.beeMods.windowManagers.mango.enable '' [templates.mango] input_path = '~/.config/matugen/templates/mango.conf' output_path = '~/.config/mango/mango-colors.conf' @@ -67,7 +67,7 @@ in output_path = '~/.config/yazi/theme.toml' ''} - ${lib.optionalString (config.beeMods.dwm.enable) '' + ${lib.optionalString (config.beeMods.windowManagers.dwm.enable) '' [templates.Xresources] input_path = "~/.config/matugen/templates/colors-xresources" output_path = "~/.config/x11/matugen.Xresources" @@ -86,12 +86,6 @@ in post_hook = "dunstctl reload" ''} - ${lib.optionalString config.beeMods.beeVim.enable '' - [templates.neovim] - input_path = "~/.config/matugen/templates/neovim.json" - output_path = "~/.config/matugen/neovim_matugen.json" - ''} - ${lib.optionalString (config.beeMods.terminal.default == "foot" || config.beeMods.terminal.default == "ghostty") '' diff --git a/common/modules/matugen/templates/matugen-mango.nix b/common/modules/matugen/templates/matugen-mango.nix index b6a89b2..385e212 100644 --- a/common/modules/matugen/templates/matugen-mango.nix +++ b/common/modules/matugen/templates/matugen-mango.nix @@ -4,7 +4,7 @@ ... }: { - config = lib.mkIf config.beeMods.mango.enable { + config = lib.mkIf config.beeMods.windowManagers.mango.enable { xdg.configFile = { "matugen/templates/mango.conf" = { text = '' diff --git a/common/modules/matugen/templates/matugen-neovim.nix b/common/modules/matugen/templates/matugen-neovim.nix deleted file mode 100644 index dcb84a2..0000000 --- a/common/modules/matugen/templates/matugen-neovim.nix +++ /dev/null @@ -1,28 +0,0 @@ -{ - config, - lib, - ... -}: -{ - config = lib.mkIf config.beeMods.beeVim.enable { - xdg.configFile = { - "matugen/templates/neovim.json" = { - text = - # json - '' - { - "source_color": "{{colors.primary.default.hex}}", - <* if {{ is_dark_mode }} *> - "background": "{{colors.background.default.hex}}", - <* else *> - "background": "{{colors.surface_container.default.hex}}", - <* endif *> - "harmony": 0.5, - "mode": "{{mode}}" - } - ''; - - }; - }; - }; -} diff --git a/common/modules/matugen/templates/matugen-xresources.nix b/common/modules/matugen/templates/matugen-xresources.nix index f33fda2..292f0f2 100644 --- a/common/modules/matugen/templates/matugen-xresources.nix +++ b/common/modules/matugen/templates/matugen-xresources.nix @@ -4,7 +4,7 @@ ... }: { - config = lib.mkIf config.beeMods.mango.enable { + config = lib.mkIf config.beeMods.windowManagers.dwm.enable { xdg.configFile."matugen/templates/colors-xresources" = { text = '' dwm.normbordercolor : {{colors.outline.default.hex}} diff --git a/common/modules/terminal/default.nix b/common/modules/terminal/default.nix index 3bc4a56..b777faf 100644 --- a/common/modules/terminal/default.nix +++ b/common/modules/terminal/default.nix @@ -39,7 +39,7 @@ with lib; }; size = mkOption { type = types.float; - default = 13.0; + default = 11.0; }; bright_color_is_bold = mkEnableOption "bright colors in bold font"; @@ -50,13 +50,13 @@ with lib; window = { padding-x = mkOption { type = types.int; - default = 10; + default = 3; description = "Window padding x axis (pixels)."; }; padding-y = mkOption { type = types.int; - default = 10; + default = 3; description = "Window padding y axis (pixels)."; }; }; diff --git a/common/modules/window_managers/default.nix b/common/modules/window_managers/default.nix new file mode 100644 index 0000000..7b51946 --- /dev/null +++ b/common/modules/window_managers/default.nix @@ -0,0 +1,72 @@ +{ + homeManager, + inputs, + moduleNameSpace, + ... +}: +{ + config, + lib, + pkgs, + ... +}: +let + args = { + moduleNameSpace = "beeMods"; + inherit inputs homeManager; + }; +in +{ + imports = [ + (import ./mango args) + (import ./hyprland args) + (import ./dwm args) + ]; + + options.${moduleNameSpace}.windowManagers = { + mango.enable = lib.mkEnableOption "Enable mangowm"; + dwm.enable = lib.mkEnableOption "Enable dwm"; + hyprland.enable = lib.mkEnableOption "Enable hyprland"; + eyeCandy = { + animations.enable = lib.mkEnableOption "Uiiiiiiiiiii"; + window = { + blur = { + enable = lib.mkEnableOption "Enable window blur"; + passes = lib.mkOption { + type = lib.types.int; + default = 1; + }; + radius = lib.mkOption { + type = lib.types.int; + default = 10; + }; + }; + shadows.enable = lib.mkEnableOption "Enable window drop shadows"; + borderRadius = lib.mkOption { + type = lib.types.int; + default = 0; + description = "Border radius"; + }; + opacity = lib.mkOption { + type = lib.types.number; + default = 1.0; + description = "Window opacity"; + }; + }; + }; + }; + config = ( + if homeManager then + { + home.packages = with pkgs; [ + wl-clipboard + cliphist + brightnessctl + ]; + } + else + { + } + ); + +} diff --git a/common/modules/window_managers/dwm/default.nix b/common/modules/window_managers/dwm/default.nix new file mode 100644 index 0000000..f665d06 --- /dev/null +++ b/common/modules/window_managers/dwm/default.nix @@ -0,0 +1,206 @@ +{ + homeManager, + inputs, + moduleNameSpace, + ... +}: +{ + config, + lib, + pkgs, + ... +}: +let + cfg = config.${moduleNameSpace}.windowManagers; + snipx11 = pkgs.writeShellScript "snipx11" '' + case $1 in + full) + ${pkgs.maim}/bin/maim | xclip -selection clipboard -t image/png + ;; + selection) + ${pkgs.maim}/bin/maim -s | xclip -selection clipboard -t image/png + ;; + window) + ${pkgs.maim}/bin/maim -i $(xdotool getactivewindow) | xclip -selection clipboard -t image/png + ;; + esac + ''; + st-patched = + (pkgs.st.override { + extraLibs = [ pkgs.libXcursor ]; + }).overrideAttrs + (oldAttrs: rec { + patches = map pkgs.fetchpatch [ + { + url = "https://st.suckless.org/patches/scrollback/st-scrollback-0.9.2.diff"; + sha256 = "sha256-ZypvRONAHS//wnZjivmqpWIqZlKTqAQ0Q8DhQpZVaqU="; + } + { + url = "https://st.suckless.org/patches/scrollback/st-scrollback-mouse-0.9.2.diff"; + sha256 = "sha256-CuNJ5FdKmAtEjwbgKeBKPJTdEfJvIdmeSAphbz0u3Uk="; + } + { + url = "https://st.suckless.org/patches/scrollback/st-scrollback-mouse-altscreen-20220127-2c5edf2.diff"; + sha256 = "sha256-8oVLgbsYCfMhNEOGadb5DFajdDKPxwgf3P/4vOXfUFo="; + } + { + url = "https://st.suckless.org/patches/xresources/st-xresources-20230320-45a15676.diff"; + sha256 = "sha256-WcL9IeyanXFiOFDGGRU0QNT8DU7wSo2o+3n+TaqASUY="; + } + { + url = "https://st.suckless.org/patches/vertcenter/st-vertcenter-20231003-eb3b894.diff"; + sha256 = "sha256-RbFNdGNi5HLAp1s8QOX3qsfxpkLcp1p/vksyZORN/uc="; + } + { + url = "https://st.suckless.org/patches/anysize/st-anysize-20220718-baa9357.diff"; + hash = "sha256-yx9VSwmPACx3EN3CAdQkxeoJKJxQ6ziC9tpBcoWuWHc="; + } + { + url = "https://st.suckless.org/patches/csi_22_23/st-csi_22_23-0.8.5.diff"; + hash = "sha256-+izEkGVkLCbhZNBD2WN4uX5j+YMmou7JaMVmPG0mrYk="; + } + { + url = "https://st.suckless.org/patches/sync/st-appsync-20200618-b27a383.diff"; + sha256 = "sha256-lys7/nup7a+GcmW+CutX0kjmbbOis2stkuhw02beuPs="; + } + { + url = "https://st.suckless.org/patches/fix_keyboard_input/st-fix-keyboard-input-20180605-dc3b5ba.diff"; + sha256 = "sha256-h5ZrCj4IrkMQanLSMmgXaRd7qZYqvbzqUnuFt/axsMI="; + } + { + url = "https://st.suckless.org/patches/boxdraw/st-boxdraw_v2-0.8.5.diff"; + sha256 = "sha256-WN/R6dPuw1eviHOvVVBw2VBSMDtfi1LCkXyX36EJKi4="; + } + # { + # url = "https://st.suckless.org/patches/themed_cursor/st-themed_cursor-0.8.1.diff"; + # sha256 = "sha256-Q/6VN9oCrdJiZPPjKMpw3UB09tIs4eJ1Hi5c8k7O7uo="; + # } + ]; + + postPatch = oldAttrs.postPatch or "" + '' + sed -i 's/Button4, *kscrollup, *{.i = 1}/Button4, kscrollup, {.i = 10}/g' config.def.h + sed -i 's/Button5, *kscrolldown, *{.i = 1}/Button5, kscrolldown, {.i = 10}/g' config.def.h + + sed -i 's/const int boxdraw = 0;/const int boxdraw = 1;/g' config.def.h + sed -i 's/const int boxdraw_bold = 0;/const int boxdraw_bold = 1;/g' config.def.h + + grep -q Xcursor x.c || sed -i '/#include /a #include ' x.c + + sed -i 's/XCreateFontCursor/XcursorLibraryLoadCursor/g' x.c + + sed -i 's/static unsigned int mouseshape/static char *mouseshape/' config.def.h + sed -i 's/XC_xterm/"ibeam"/' config.def.h + + sed -i 's/-lXft/-lXft -lXcursor/g' config.mk + ''; + }); +in +{ + imports = [ + # (import ./picom.nix homeManager) + (import ./scripts.nix homeManager) + ]; + + config = lib.mkIf cfg.dwm.enable ( + if !homeManager then + { + services.xserver = { + enable = true; + windowManager.dwm = { + enable = true; + package = inputs.mydwm.packages.${pkgs.stdenv.hostPlatform.system}.default; + }; + autoRepeatDelay = 300; + autoRepeatInterval = 20; + excludePackages = with pkgs; [ xterm ]; + displayManager.sessionCommands = '' + ${pkgs.systemd}/bin/systemctl --user import-environment DISPLAY XAUTHORITY XDG_SESSION_TYPE + ${pkgs.dbus}/bin/dbus-update-activation-environment --systemd DISPLAY XAUTHORITY XDG_SESSION_TYPE + ''; + }; + + programs.ssh.askPassword = ""; + } + else + { + xdg.dataFile."dwm/autostart.sh" = { + executable = true; + text = '' + #!${pkgs.bash}/bin/bash + + gnome-keyring-daemon --start --components=secrets,ssh,pkcs11 & + ${pkgs.polkit_gnome}/libexec/polkit-gnome-authentication-agent-1 & + + [ -f ~/.Xresources ] && xrdb -merge ~/.Xresources + + dunst & + clipcatd & + slstatus & + sync_dms + systemctl --user restart xidlehook.service xautolock-session.service xss-lock.service clipcat.service + ''; + }; + + home.packages = with pkgs; [ + st-patched + xdotool + xclip + (pkgs.dmenu.overrideAttrs (oldAttrs: { + patches = (oldAttrs.patches or [ ]) ++ [ + (pkgs.fetchpatch { + url = "https://tools.suckless.org/dmenu/patches/xresources/dmenu-xresources-4.9.diff"; + sha256 = "sha256-Np9I8hhnwmGA3W5v4tSrBN9Or8Q2Ag9x8H3yf8L9jDI="; + }) + ]; + })) + ]; + + services.clipcat = { + enable = false; + daemonSettings = { + daemonize = false; + max_history = 50; + desktop_notification = { + enable = false; + }; + }; + menuSettings = { + server_endpoint = "/run/user/1000/clipcat/grpc.sock"; + finder = "rofi"; + + rofi = { + menu_length = 10; + line_length = 100; + menu_prompt = "Clipboard"; + extra_arguments = [ ]; + }; + }; + }; + + systemd.user.services.clipcat = { + Unit = { + ConditionEnvironment = [ "XDG_SESSION_TYPE=x11" ]; + }; + }; + + xresources.extraConfig = lib.mkIf config.beeMods.matugen.enable '' + #include "${config.xdg.configHome}/x11/matugen.Xresources" + ''; + + xresources.properties = { + "Xft.dpi" = 96; + "Xft.autohint" = 0; + "Xft.antialias" = true; + "Xft.hinting" = true; + "Xft.lcdfilter" = "lcddefault"; + "Xft.hintstyle" = "hintfull"; + "Xft.rgba" = "rgb"; + "st.font" = + "${config.beeMods.terminal.font.family}:size=${toString config.beeMods.terminal.font.size}:antialias=true:autohint=true"; + "dmenu.font" = + "${config.beeMods.terminal.font.family}:size=${toString config.beeMods.terminal.font.size}"; + "st.borderpx" = 2; + }; + } + ); +} diff --git a/common/modules/window_managers/dwm/picom.nix b/common/modules/window_managers/dwm/picom.nix new file mode 100644 index 0000000..f0b8d17 --- /dev/null +++ b/common/modules/window_managers/dwm/picom.nix @@ -0,0 +1,63 @@ +homeManager: +{ config, lib, ... }: +let + cfg = config.beeMods.windowManagers; +in +{ + config = lib.mkIf cfg.enable ( + lib.optionalAttrs homeManager { + services.picom = { + enable = true; + backend = "glx"; + vSync = true; + + activeOpacity = if cfg.window.blur.enable then 0.82 else cfg.window.opacity.active; + inactiveOpacity = if cfg.window.blur.enable then 0.82 else cfg.window.opacity.inactive; + + opacityRules = [ + "100:fullscreen" + "100:_NET_WM_STATE@:32a *= '_NET_WM_STATE_FULLSCREEN'" + ]; + settings = { + blur = { + method = "dual_kawase"; + strength = cfg.window.blur.strength; + size = cfg.window.blur.size; + }; + blur-background = cfg.window.blur.enable; + blur-background-exclude = [ + "window_type = 'dock'" + "window_type = 'desktop'" + "class_g = 'slop'" + "class_g = 'dwm'" + "_GTK_FRAME_EXTENTS@" + "fullscreen" + "_NET_WM_STATE@:32a *= '_NET_WM_STATE_FULLSCREEN'" + ]; + + # xrender-sync-fence = true; + use-damage = true; + + unredir-if-possible = true; + + detect-transient = true; + detect-client-opacity = true; + mark-wmwin-focused = true; + mark-ovredir-focused = true; + detect-rounded-corners = true; + + shadow = cfg.shadow; + fading = false; + animations = cfg.animations; + }; + }; + + # systemd.user.services.picom.Install.wantedBy = lib.mkForce [ ]; + systemd.user.services.picom = { + Unit = { + ConditionEnvironment = "XDG_SESSION_TYPE=x11"; + }; + }; + } + ); +} diff --git a/common/modules/window_managers/dwm/scripts.nix b/common/modules/window_managers/dwm/scripts.nix new file mode 100644 index 0000000..5b52686 --- /dev/null +++ b/common/modules/window_managers/dwm/scripts.nix @@ -0,0 +1,78 @@ +homeManager: +{ pkgs, lib, ... }: +let + sync_dms = pkgs.writeShellScriptBin "sync_dms" '' + jq=${pkgs.jq}/bin/jq + CONFIG_FILE=$HOME/.local/state/DankMaterialShell/session.json + + get_val() { $jq -r ".$1" "$CONFIG_FILE"; } + set_val() { + local tmp=$(mktemp) + $jq --arg val "$2" ".$1 = \$val" "$CONFIG_FILE" > "$tmp" && mv "$tmp" "$CONFIG_FILE" + } + + + function sync_all { + ISNIGHTMODE=$(get_val "nightModeEnabled") + NIGHTMODETEMP=$(get_val "nightModeTemperature") + WALL=$(get_val "wallpaperPath") + ${pkgs.xwallpaper}/bin/xwallpaper --zoom "$WALL" + + if [[ "$ISNIGHTMODE" == "true" ]]; then + echo "bitch $ISNIGHTMODE" + ${pkgs.redshift}/bin/redshift -o "$NIGHTMODETEMP" + else + ${pkgs.redshift}/bin/redshift -x + fi + } + + function dmenu_settings { + ISNIGHTMODE=$(get_val "nightModeEnabled") + options="NightMode (Currently $ISNIGHTMODE)\nSync Now" + + choice=$(echo -e "$options" | dmenu -p "Settings:") + + case "$choice" in + *"NightMode"*) + if [[ "$ISNIGHTMODE" == "true" ]]; then + set_val "nightModeEnabled" "false" + else + set_val "nightModeEnabled" "true" + fi + sync_all + ;; + "Sync Now") + sync_all + ;; + esac + } + + case "$1" in + settings) dmenu_settings ;; + *) sync_all ;; + esac + ''; + logout_dmenu = pkgs.writeShellScriptBin "logout_dmenu" '' + options="Lock\nLogout\nReboot\nShutdown" + + choice=$(echo -e "$options" | dmenu -p "System:") + + case "$choice" in + Lock) slock ;; + Logout) pkill dwm ;; + Reboot) reboot ;; + Shutdown) poweroff ;; + *) exit 1 ;; + esac + ''; +in +{ + config = lib.mkIf homeManager ( + lib.optionalAttrs homeManager { + home.packages = with pkgs; [ + sync_dms + logout_dmenu + ]; + } + ); +} diff --git a/common/modules/window_managers/hyprland/default.nix b/common/modules/window_managers/hyprland/default.nix new file mode 100644 index 0000000..c338f44 --- /dev/null +++ b/common/modules/window_managers/hyprland/default.nix @@ -0,0 +1,343 @@ +{ + homeManager, + inputs, + moduleNameSpace, + ... +}: +{ + config, + lib, + pkgs, + ... +}: +let + cfg = config.${moduleNameSpace}.windowManagers; + + snip = pkgs.writeShellScript "snip" '' + case $1 in + full) + ${pkgs.grim}/bin/grim - | wl-copy + ;; + selection) + GEOM=$(${pkgs.slurp}/bin/slurp) || exit + ${pkgs.grim}/bin/grim -g "$GEOM" - | wl-copy + ;; + window) + GEOM=$(hyprctl activewindow -j | ${pkgs.jq}/bin/jq -r '"\(.at[0]),\(.at[1]) \(.size[0])x\(.size[1])"') + ${pkgs.grim}/bin/grim -g "$GEOM" - | wl-copy + ;; + esac + ''; + + smart-alacritty = pkgs.writeShellScript "smart-alacritty" '' + alacritty msg create-window || exec alacritty + ''; + + smart-ghostty = pkgs.writeShellScript "smart-ghostty" '' + ghostty +new-window || exec ghostty + ''; + + terminal = + if config.beeMods.terminal.default == "alacritty" then + smart-alacritty + else if config.beeMods.terminal.default == "ghostty" then + smart-ghostty + else + config.beeMods.terminal.default; +in +{ + config = lib.mkIf cfg.hyprland.enable ( + if homeManager then + { + wayland.windowManager.hyprland = { + enable = true; + systemd.enable = true; + systemd.variables = [ "--all" ]; + xwayland.enable = true; + systemd.enableXdgAutostart = false; + + settings = { + monitor = [ ",1920x1080@120,auto,1.0" ]; + + source = [ ] ++ lib.optional (config.beeMods.matugen.enable) "~/.config/hypr/dms/colors.conf"; + + "$mainMod" = "SUPER"; + + # env = [ + # "NIXOS_OZONE_WL,1" + # "QT_AUTO_SCREEN_SCALE_FACTOR,1" + # "ELECTRON_OZONE_PLATFORM_HINT,auto" + # "QT_QPA_PLATFORM,wayland;xcb" + # "XDG_SESSION_TYPE,wayland" + # "GDK_BACKEND,wayland,x11" + # "GDK_SCALE,1" + # ]; + + exec-once = [ + "dbus-update-activation-environment --all" + "sleep 1 && dbus-update-activation-environment --systemd WAYLAND_DISPLAY XDG_CURRENT_DESKTOP" + "gnome-keyring-daemon --start --components=secrets,ssh,pkcs11" + ] + ++ lib.optionals config.beeMods.windowManagers.dwm.enable [ + "systemctl --user stop xidlehook.service" + "systemctl --user stop xautolock-session.service" + "systemctl --user stop xss-lock.service" + "systemctl --user stop clipcat.service" + ]; + + xwayland = { + force_zero_scaling = true; + }; + + input = { + follow_mouse = 1; + kb_layout = "us"; + repeat_delay = 300; + repeat_rate = 50; + sensitivity = 0; + numlock_by_default = false; + left_handed = false; + + touchpad = { + natural_scroll = true; + tap-to-click = true; + drag_lock = true; + disable_while_typing = true; + middle_button_emulation = false; + }; + }; + + general = { + layout = "master"; + gaps_in = 4; + gaps_out = 4; + border_size = 2; + + resize_on_border = true; + no_focus_fallback = true; + allow_tearing = false; + + # "col.active_border" = "$_tertiary_fixed_dim"; + # "col.inactive_border" = "$_outline"; + }; + + master = { + allow_small_split = true; + new_on_top = false; + mfact = 0.56; + }; + + scrolling = { + column_width = 0.55; + follow_focus = true; + }; + + decoration = { + rounding = cfg.eyeCandy.window.borderRadius; + + blur = { + enabled = cfg.eyeCandy.window.blur.enable; + size = cfg.eyeCandy.window.blur.radius; + passes = cfg.eyeCandy.window.blur.passes; + brightness = 0.9; + contrast = 0.9; + noise = 0.02; + vibrancy = 1.2; + popups = true; + popups_ignorealpha = 0.6; + }; + + shadow = { + enabled = cfg.eyeCandy.window.shadows.enable; + ignore_window = true; + range = 10; + render_power = 3; + offset = "0 0"; + color = "rgba(00000044)"; + }; + + # Apply opacity logic utilizing cfg.eyeCandy.options + active_opacity = + if (cfg.eyeCandy.window.blur.enable && cfg.eyeCandy.window.opacity == 1.0) then + 0.82 + else + cfg.eyeCandy.window.opacity; + inactive_opacity = + if (cfg.eyeCandy.window.blur.enable && cfg.eyeCandy.window.opacity == 1.0) then + 0.82 + else + cfg.eyeCandy.window.opacity; + fullscreen_opacity = 1.0; + + dim_inactive = false; + }; + + animations = { + enabled = cfg.eyeCandy.animations.enable; + + bezier = [ + "openCurve, 0.05, 0.7, 0.1, 1.0" + "closeCurve, 0.0, 0.0, 1.0, 1.0" + "moveCurve, 0.46, 1.0, 0.29, 1.0" + ]; + + animation = [ + "windowsIn, 1, 2.8, openCurve, slide" + "windowsOut, 1, 6.5, closeCurve, popin 80%" + "windowsMove, 1, 2.2, moveCurve" + "fadeIn, 0, 3.0, fadeCurve" + "fadeOut, 1, 2.5, moveCurve" + "workspaces, 1, 2.5, moveCurve, slide" + ]; + }; + + misc = { + vfr = true; + vrr = 0; + mouse_move_enables_dpms = true; + key_press_enables_dpms = true; + disable_splash_rendering = true; + animate_manual_resizes = true; + animate_mouse_windowdragging = false; + enable_swallow = false; + swallow_regex = "(foot|kitty|alacritty|Alacritty|com.mitchellh.ghostty|)"; + disable_hyprland_logo = true; + force_default_wallpaper = 0; + focus_on_activate = true; + }; + + binds = { + scroll_event_delay = 0; + focus_preferred_method = 1; + }; + + windowrule = [ + "workspace 1, match:class ^(foot|footclient|alacritty|com.mitchellh.ghostty)$" + "workspace 2, match:class ^(zen|firefox|obsidian)$" + "workspace 3, match:class ^(vesktop|discord|thunderbird|Element|equibop)$" + "workspace 4, match:class ^(steam)$" + "float on, match:class ^(org.gnome.Calculator|org.pulseaudio.pavucontrol)$" + "stay_focused on, match:class ^(pinentry-)(.*)$" + ]; + + layerrule = [ + "no_anim on, match:namespace ^rofi$" + "no_anim on, match:namespace ^(dms)$" + "no_anim on, match:namespace .*dms.*" + ]; + + workspace = [ "2, layout:scrolling" ]; + + bind = [ + "$mainMod, r, exec, hyprctl reload" + "$mainMod, Return, exec, ${terminal}" + "$mainMod, a, exec,dms ipc call spotlight toggle" + "$mainMod, v,exec,dms ipc call clipboard toggle" + "ALT, F4, exec, dms ipc call powermenu toggle" + "$mainMod, y, exec, dms ipc call dankdash wallpaper" + + "$mainMod, comma, exec,dms ipc call settings focusOrToggle" + + "$mainMod, F12, exec, gnome-calculator" + "$mainMod, b, exec, zen" + "$mainMod, e, exec, nautilus" + + "$mainMod, m, exit," + "$mainMod, q, killactive," + + "$mainMod, h, movefocus, l" + "$mainMod, l, movefocus, r" + "$mainMod, k, movefocus, u" + "$mainMod, j, movefocus, d" + + ", Print, exec, ${snip} full" + "$mainMod, Print, exec, ${snip} selection" + "$mainMod SHIFT, Print, exec, ${snip} window" + + "$mainMod SHIFT, k, swapwindow, u" + "$mainMod SHIFT, j, swapwindow, d" + "$mainMod SHIFT, h, swapwindow, l" + "$mainMod SHIFT, l, swapwindow, r" + + "$mainMod, g, pin," + "ALT, Tab, workspace, previous" + "$mainMod, space, togglefloating," + "ALT, a, fullscreen, 1" + "ALT, f, fullscreen, 0" + "$mainMod, i, togglespecialworkspace, minimized" + "$mainMod, i, movetoworkspacesilent, special:minimized" + "$mainMod SHIFT, i, togglespecialworkspace, minimized" + "$mainMod SHIFT, i, movetoworkspace, +0" + "ALT, z, togglespecialworkspace, scratchpad" + + "$mainMod, n, exec, beesettings layout" + + "$mainMod, 1, workspace, 1" + "$mainMod, 2, workspace, 2" + "$mainMod, 3, workspace, 3" + "$mainMod, 4, workspace, 4" + "$mainMod, 5, workspace, 5" + "$mainMod, 6, workspace, 6" + "$mainMod, 7, workspace, 7" + "$mainMod, 8, workspace, 8" + "$mainMod, 9, workspace, 9" + + "$mainMod SHIFT, 1, movetoworkspace, 1" + "$mainMod SHIFT, 2, movetoworkspace, 2" + "$mainMod SHIFT, 3, movetoworkspace, 3" + "$mainMod SHIFT, 4, movetoworkspace, 4" + "$mainMod SHIFT, 5, movetoworkspace, 5" + "$mainMod SHIFT, 6, movetoworkspace, 6" + "$mainMod SHIFT, 7, movetoworkspace, 7" + "$mainMod SHIFT, 8, movetoworkspace, 8" + "$mainMod SHIFT, 9, movetoworkspace, 9" + + "ALT SHIFT, Left, focusmonitor, l" + "ALT SHIFT, Right, focusmonitor, r" + "$mainMod ALT, Left, movecurrentworkspacetomonitor, l" + "$mainMod ALT, Right, movecurrentworkspacetomonitor, r" + ]; + + binde = [ + "$mainMod, Up, moveactive, 0 -50" + "$mainMod, Down, moveactive, 0 50" + "$mainMod, Left, moveactive, -50 0" + "$mainMod, Right, moveactive, 50 0" + + "ALT, k, resizeactive, 0 -50" + "ALT, j, resizeactive, 0 50" + "ALT, h, resizeactive, -50 0" + "ALT, l, resizeactive, 50 0" + ]; + + bindel = [ + ", XF86AudioRaiseVolume, exec, wpctl set-volume -l 1.5 @DEFAULT_AUDIO_SINK@ 5%+" + ", XF86AudioLowerVolume, exec, wpctl set-volume @DEFAULT_AUDIO_SINK@ 5%-" + ", XF86AudioMute, exec,wpctl set-mute @DEFAULT_AUDIO_SINK@ toggle" + ", XF86AudioMicMute, exec,wpctl set-mute @DEFAULT_AUDIO_SOURCE@ toggle" + + ", XF86AudioPlay, exec, playerctl play-pause" + ", XF86AudioNext, exec, playerctl next" + ", XF86AudioPrev, exec, playerctl previous" + ", XF86AudioStop, exec, playerctl stop" + + ", XF86MonBrightnessUp, exec,brightnessctl set +5%" + ", XF86MonBrightnessDown, exec, brightnessctl set 5%-" + ]; + + bindm = [ + "$mainMod, mouse:272, movewindow" + "$mainMod, mouse:273, resizewindow" + ]; + }; + }; + } + else + { + programs.hyprland = { + enable = true; + withUWSM = false; + }; + } + ); +} diff --git a/common/modules/window_managers/mango/default.nix b/common/modules/window_managers/mango/default.nix new file mode 100644 index 0000000..9d24035 --- /dev/null +++ b/common/modules/window_managers/mango/default.nix @@ -0,0 +1,377 @@ +{ + homeManager, + inputs, + moduleNameSpace, + ... +}: +{ + config, + lib, + pkgs, + ... +}: +let + cfg = config.${moduleNameSpace}.windowManagers; + snip = pkgs.writeShellScript "snip" '' + case $1 in + full) + ${pkgs.grim}/bin/grim - | wl-copy + ;; + selection) + GEOM=$(${pkgs.slurp}/bin/slurp) || exit + ${pkgs.grim}/bin/grim -g "$GEOM" - | wl-copy + ;; + window) + ${pkgs.grim}/bin/grim -g "$(mmsg -x | awk ' + / x / {x=$3} + / y / {y=$3} + / width / {w=$3} + / height / {h=$3} + END {print x "," y " " w "x" h} + ')" - | wl-copy + ;; + esac + ''; + smart-alacritty = pkgs.writeShellScript "smart-alacritty" '' + alacritty msg create-window || exec alacritty + ''; + smart-ghostty = pkgs.writeShellScript "smart-ghostty" '' + ghostty +new-window || exec ghostty + ''; + terminal = + if config.beeMods.terminal.default == "alacritty" then + smart-alacritty + else if config.beeMods.terminal.default == "ghostty" then + smart-ghostty + else + config.beeMods.terminal.default; +in +{ + imports = + if homeManager then [ inputs.mango.hmModules.mango ] else [ inputs.mango.nixosModules.mango ]; + + config = lib.mkIf cfg.mango.enable ( + if homeManager then + { + wayland.windowManager.mango = { + enable = true; + systemd.enable = true; + systemd.variables = [ "--all" ]; + extraConfig = '' + ${lib.optionalString (config.beeMods.matugen.enable) '' + source=~/.config/mango/mango-colors.conf + ''} + + # Window effect + blur=${if cfg.eyeCandy.window.blur.enable then "1" else "0"} + blur_layer=0 + blur_optimized=1 + blur_params_num_passes = ${toString cfg.eyeCandy.window.blur.passes} + blur_params_radius = ${toString cfg.eyeCandy.window.blur.radius} + blur_params_noise = 0.02 + blur_params_brightness = 0.9 + blur_params_contrast = 0.9 + blur_params_saturation = 1.2 + + shadows=${if cfg.eyeCandy.window.shadows.enable then "1" else "0"} + layer_shadows = 0 + shadow_only_floating = 1 + shadows_size = 10 + shadows_blur = 15 + shadows_position_x = 0 + shadows_position_y = 0 + + border_radius=${toString cfg.eyeCandy.window.borderRadius} + no_radius_when_single=0 + + ${ + if (cfg.eyeCandy.window.blur.enable && cfg.eyeCandy.window.opacity == 1.0) then + '' + focused_opacity=0.82 + unfocused_opacity=0.82 + '' + else + '' + focused_opacity=${toString cfg.eyeCandy.window.opacity} + unfocused_opacity=${toString cfg.eyeCandy.window.opacity} + '' + } + + # Animation Configuration(support type:zoom,slide) + # tag_animation_direction: 1-horizontal,0-vertical + animations=${if cfg.eyeCandy.animations.enable then "1" else "0"} + layer_animations=0 + animation_type_open=slide + animation_type_close=zoom + animation_fade_in=0 + animation_fade_out=1 + tag_animation_direction=1 + zoom_initial_ratio=0.8 + zoom_end_ratio=0.8 + fadein_begin_opacity=0.5 + fadeout_begin_opacity=0.5 + animation_duration_move=250 + animation_duration_open=250 + animation_duration_tag=250 + animation_duration_close=100 + animation_duration_focus=0 + animation_curve_open=0.05,0.7,0.1,1.0 + animation_curve_move=0.46,1.0,0.29,1 + animation_curve_tag=0.46,1.0,0.29,1 + animation_curve_close=0.0,0.0,1.0,1.0 + animation_curve_focus=0.05,0.7,0.1,1.0 + animation_curve_opafadeout=0.5,0.5,0.5,0.5 + animation_curve_opafadein=0.46,1.0,0.29,1 + + # Scroller configuration + scroller_structs=15 + scroller_default_proportion=0.6 + scroller_focus_center=0 + scroller_prefer_center=0 + edge_scroller_pointer_focus=1 + scroller_default_proportion_single=1.0 + scroller_ignore_proportion_single=0 + scroller_proportion_preset=0.5,0.8,1.0 + + # Master-Stack Layout Setting + new_is_master=0 + default_mfact=0.56 + default_nmaster=1 + smartgaps=0 + + # Overview Setting + hotarea_size=10 + enable_hotarea=0 + ov_tab_mode=0 + overviewgappi=5 + overviewgappo=30 + + # Misc + no_border_when_single=0 + axis_bind_apply_timeout=100 + focus_on_activate=1 + idleinhibit_ignore_visible=0 + sloppyfocus=1 + warpcursor=1 + focus_cross_monitor=0 + focus_cross_tag=0 + enable_floating_snap=0 + snap_distance=30 + # cursor_size=24 + drag_tile_to_tile=1 + xwayland_persistence=0 + syncobj_enable=0 + allow_tearing=0 + + # keyboard + repeat_delay=300; + repeat_rate=50; + numlockon=0 + xkb_rules_layout=us + + # Trackpad + # need relogin to make it apply + disable_trackpad=0 + tap_to_click=1 + tap_and_drag=1 + drag_lock=1 + trackpad_natural_scrolling=1 + disable_while_typing=1 + left_handed=0 + middle_button_emulation=0 + swipe_min_threshold=1 + + # mouse + # need relogin to make it apply + mouse_natural_scrolling=0 + + windowrule=tags:1,appid:^(foot|footclient|alacritty|dev.zed.Zed)$ + windowrule=tags:2,appid:^(zen|firefox|obsidian)$ + windowrule=tags:3,appid:^(vesktop|discord|thunderbird|Element|equibop)$ + windowrule=tags:4,appid:^steam$ + + windowrule=scroller_proportion:0.3,appid:^steam$,title:^Friends List$ + windowrule=scroller_proportion:0.5,appid:^steam$,title:.*(Settings|Properties).* + windowrule=isfloating:1,appid:^steam$,title:^Steam - News$ + windowrule=isfloating:1,appid:^(org.gnome.Calculator|org.pulseaudio.pavucontrol)$ + windowrule=isoverlay:1,appid:^com.gabm.satty$ + + # Appearance + gappih=5 + gappiv=5 + gappoh=5 + gappov=5 + scratchpad_width_ratio=0.8 + scratchpad_height_ratio=0.9 + borderpx=2 + + # layout support: + # tile,scroller,grid,deck,monocle,center_tile,vertical_tile,vertical_scroller + tagrule=id:1,layout_name:tgmix + tagrule=id:2,layout_name:scroller + tagrule=id:3,layout_name:scroller + tagrule=id:4,layout_name:scroller + tagrule=id:5,layout_name:grid + tagrule=id:6,layout_name:tile + tagrule=id:7,layout_name:tile + tagrule=id:8,layout_name:tile + tagrule=id:9,layout_name:tile + + # Key Bindings + # key name refer to `xev` or `wev` command output, + # mod keys name: super,ctrl,alt,shift,none + + # reload config + bind=SUPER,r,reload_config + + bind=SUPER,Return,spawn,${terminal} + + bind=SUPER,v,spawn,dms ipc call clipboard toggle + bind=SUPER,a,spawn,dms ipc call spotlight toggle + bind=ALT,F4,spawn,dms ipc call powermenu toggle + bind=SUPER,y,spawn,dms ipc call dankdash wallpaper + bind=SUPER,comma,spawn,dms ipc call settings focusOrToggle + + bind=SUPER,F12,spawn,gnome-calculator + bind=SUPER,b,spawn,zen + bind=SUPER,e,spawn,nautilus + + # exit + bind=SUPER,m,quit + bind=SUPER,q,killclient, + + # switch window focus + bind=SUPER,h,focusdir,left + bind=SUPER,l,focusdir,right + bind=SUPER,k,focusdir,up + bind=SUPER,j,focusdir,down + + bind=NONE,Print,spawn,${snip} full + bind=SUPER,Print,spawn,${snip} selection + bind=SUPER+SHIFT,Print,spawn,${snip} window + + # swap window + bind=SUPER+SHIFT,k,exchange_client,up + bind=SUPER+SHIFT,j,exchange_client,down + bind=SUPER+SHIFT,h,exchange_client,left + bind=SUPER+SHIFT,l,exchange_client,right + + # switch window status + bind=SUPER,g,toggleglobal, + bind=ALT,Tab,toggleoverview, + bind=SUPER,space,togglefloating, + bind=ALT,a,togglemaximizescreen, + bind=SUPER,f,toggle_all_floating, + bind=ALT,f,togglefullscreen, + bind=ALT+SHIFT,f,togglefakefullscreen, + bind=SUPER,i,minimized, + bind=SUPER,o,toggleoverlay, + bind=SUPER+SHIFT,I,restore_minimized + bind=ALT,z,toggle_scratchpad + + # scroller layout + bind=ALT,e,set_proportion,1.0 + bind=ALT,x,switch_proportion_preset, + + # switch layout + # bind=SUPER,n,switch_layout + bind=SUPER,n,spawn,dms ipc call notifications toggle + + # tag switch + bind=SUPER,1,view,1,0 + bind=SUPER,2,view,2,0 + bind=SUPER,3,view,3,0 + bind=SUPER,4,view,4,0 + bind=SUPER,5,view,5,0 + bind=SUPER,6,view,6,0 + bind=SUPER,7,view,7,0 + bind=SUPER,8,view,8,0 + bind=SUPER,9,view,9,0 + + # tag: move client to the tag and focus it + # tagsilent: move client to the tag and not focus it + # bind=Alt,1,tagsilent,1 + bind=SUPER+SHIFT,1,tag,1,0 + bind=SUPER+SHIFT,2,tag,2,0 + bind=SUPER+SHIFT,3,tag,3,0 + bind=SUPER+SHIFT,4,tag,4,0 + bind=SUPER+SHIFT,5,tag,5,0 + bind=SUPER+SHIFT,6,tag,6,0 + bind=SUPER+SHIFT,7,tag,7,0 + bind=SUPER+SHIFT,8,tag,8,0 + bind=SUPER+SHIFT,9,tag,9,0 + + # monitor switch + bind=alt+shift,Left,focusmon,left + bind=alt+shift,Right,focusmon,right + bind=SUPER+Alt,Left,tagmon,left + bind=SUPER+Alt,Right,tagmon,right + + # gaps + bind=ALT+SHIFT,X,incgaps,1 + bind=ALT+SHIFT,Z,incgaps,-1 + bind=ALT+SHIFT,R,togglegaps + + # movewin + bind=SUPER,Up,movewin,+0,-50 + bind=SUPER,Down,movewin,+0,+50 + bind=SUPER,Left,movewin,-50,+0 + bind=SUPER,Right,movewin,+50,+0 + + # resizewin + bind=ALT,k,resizewin,+0,-50 + bind=ALT,j,resizewin,+0,+50 + bind=ALT,h,resizewin,-50,+0 + bind=ALT,l,resizewin,+50,+0 + + # Volume Control (using wpctl/Pipewire) + bind=NONE,XF86AudioRaiseVolume,spawn,wpctl set-volume -l 1.5 @DEFAULT_AUDIO_SINK@ 5%+ + bind=NONE,XF86AudioLowerVolume,spawn,wpctl set-volume @DEFAULT_AUDIO_SINK@ 5%- + bind=NONE,XF86AudioMute,spawn,wpctl set-mute @DEFAULT_AUDIO_SINK@ toggle + + bind=NONE,XF86AudioPlay,spawn,playerctl play-pause + bind=NONE,XF86AudioNext,spawn,playerctl next + bind=NONE,XF86AudioPrev,spawn,playerctl previous + bind=NONE,XF86AudioStop,spawn,playerctl stop + + bind=NONE,XF86AudioMicMute,spawn,wpctl set-mute @DEFAULT_AUDIO_SOURCE@ toggle + + bind=NONE,XF86MonBrightnessUp,spawn,brightnessctl set +5% + bind=NONE,XF86MonBrightnessDown,spawn,brightnessctl set 5%- + + mousebind=SUPER,btn_left,moveresize,curmove + mousebind=NONE,btn_middle,togglemaximizescreen,0 + mousebind=SUPER,btn_right,moveresize,curresize + + axisbind=SUPER,UP,viewtoleft_have_client + axisbind=SUPER,DOWN,viewtoright_have_client + + layerrule=noanim:1,layer_name:^dms + + env=NIXOS_OZONE_WL,1 + env=QT_AUTO_SCREEN_SCALE_FACTOR,1 + env=ELECTRON_OZONE_PLATFORM_HINT,auto + env=QT_QPA_PLATFORM,wayland + env=XDG_SESSION_TYPE,wayland + env=GDK_BACKEND,wayland,x11 + env=GDK_SCALE,1 + ''; + autostart_sh = '' + wl-paste --type text --watch cliphist store & + gnome-keyring-daemon --start --components=secrets,ssh,pkcs11 & + + ${lib.optionalString (config.beeMods.windowManagers.dwm.enable) '' + systemctl --user stop xidlehook.service + systemctl --user stop xautolock-session.service + systemctl --user stop xss-lock.service + systemctl --user stop clipcat.service + ''} + ''; + }; + } + else + { + programs.mango.enable = true; + } + ); +} diff --git a/common/programs/vesktop.nix b/common/programs/vesktop.nix deleted file mode 100644 index 41a9e56..0000000 --- a/common/programs/vesktop.nix +++ /dev/null @@ -1,29 +0,0 @@ -{ lib, config, ... }: -{ - programs.vesktop = { - enable = true; - vencord = { - settings = { - enabledThemes = lib.optionals config.beeMods.matugen.enable [ "system24.css" ]; - autoUpdate = false; - autoUpdateNotification = false; - notifyAboutUpdates = false; - useQuickCss = false; - disableMinSize = true; - plugins = { - FakeNitro.enabled = false; - AnonymiseFileNames.enabled = true; - PlainFolderIcon.enabled = true; - NoTypingAnimation.enabled = true; - NoF1.enabled = true; - petpet.enabled = true; - QuickReply.enabled = true; - SilentTyping.enabled = true; - StreamerModeOnStream.enabled = false; - NoReplyMention.enabled = true; - OnePingPerDM.enabled = false; - }; - }; - }; - }; -} diff --git a/flake.lock b/flake.lock index f36fb03..a54b493 100644 --- a/flake.lock +++ b/flake.lock @@ -1,119 +1,85 @@ { "nodes": { - "beeVim": { - "inputs": { - "neovim-nightly-overlay": "neovim-nightly-overlay", - "nixCats": "nixCats", - "nixpkgs": [ - "nixpkgs" - ], - "plugins-base46-nvim": "plugins-base46-nvim", - "plugins-lze": "plugins-lze", - "plugins-lzextras": "plugins-lzextras", - "plugins-neogit": "plugins-neogit", - "plugins-opencode-nvim": "plugins-opencode-nvim", - "plugins-rustaceanvim": "plugins-rustaceanvim" - }, - "locked": { - "lastModified": 1775859750, - "narHash": "sha256-S+eAcPFPQywSPwud7yradg5c4Yo95MTJj6OaAc2H5nI=", - "ref": "refs/heads/main", - "rev": "0c50f17133b90c60735f1f51943f51f60372bdd3", - "revCount": 23, - "type": "git", - "url": "https://codeberg.org/brustybee/beeVim" - }, - "original": { - "type": "git", - "url": "https://codeberg.org/brustybee/beeVim" - } - }, "dms": { "inputs": { + "flake-compat": "flake-compat", "nixpkgs": [ "nixpkgs" ], "quickshell": "quickshell" }, "locked": { - "lastModified": 1775588644, - "narHash": "sha256-iYBdSBvcW7bJtc84G6k5TFJEbPHQrif9KzZyE9Lbq8M=", + "lastModified": 1777582766, + "narHash": "sha256-Vpsmq3KcUGYsKF3yjbIUfPahvgiWDZyn1wIPztctFSE=", "owner": "AvengeMedia", "repo": "DankMaterialShell", - "rev": "9798d78300d402178896f6ee1c370baed490158a", + "rev": "c81645bacbdc790051a3ea1202eafe911eb36dae", "type": "github" }, "original": { "owner": "AvengeMedia", - "ref": "stable", "repo": "DankMaterialShell", "type": "github" } }, - "flake-compat": { + "doomemacs": { "flake": false, "locked": { - "lastModified": 1767039857, - "narHash": "sha256-vNpUSpF5Nuw8xvDLj2KCwwksIbjua2LZCqhV1LNRDns=", - "owner": "NixOS", - "repo": "flake-compat", - "rev": "5edf11c44bc78a0d334f6334cdaf7d60d732daab", + "lastModified": 1777326848, + "narHash": "sha256-7ErKUgw6Ch7hP1oBjMSos8xXRD+rxxjaOldRn+TcClo=", + "owner": "doomemacs", + "repo": "doomemacs", + "rev": "6be3337b49867bd86f90fe5ca4beeb6b38afaddb", "type": "github" }, "original": { - "owner": "NixOS", - "repo": "flake-compat", + "owner": "doomemacs", + "repo": "doomemacs", "type": "github" } }, - "flake-parts": { + "emacs-overlay": { "inputs": { - "nixpkgs-lib": [ - "beeVim", - "neovim-nightly-overlay", - "nixpkgs" + "nixpkgs": [ + "nix-doom-emacs-unstraightened" + ], + "nixpkgs-stable": [ + "nix-doom-emacs-unstraightened" ] }, "locked": { - "lastModified": 1775087534, - "narHash": "sha256-91qqW8lhL7TLwgQWijoGBbiD4t7/q75KTi8NxjVmSmA=", - "owner": "hercules-ci", - "repo": "flake-parts", - "rev": "3107b77cd68437b9a76194f0f7f9c55f2329ca5b", + "lastModified": 1777628916, + "narHash": "sha256-HeafeyKK6IxdSmdS/lFRkkOkgNZYQ2WsWx9tBVv785c=", + "owner": "nix-community", + "repo": "emacs-overlay", + "rev": "00b089698f39f7c41eabe8a8d9869ebbc1759a7e", "type": "github" }, "original": { - "owner": "hercules-ci", - "repo": "flake-parts", + "owner": "nix-community", + "repo": "emacs-overlay", "type": "github" } }, - "flake-parts_2": { - "inputs": { - "nixpkgs-lib": "nixpkgs-lib" - }, + "flake-compat": { + "flake": false, "locked": { - "lastModified": 1775087534, - "narHash": "sha256-91qqW8lhL7TLwgQWijoGBbiD4t7/q75KTi8NxjVmSmA=", - "owner": "hercules-ci", - "repo": "flake-parts", - "rev": "3107b77cd68437b9a76194f0f7f9c55f2329ca5b", + "lastModified": 1767039857, + "narHash": "sha256-vNpUSpF5Nuw8xvDLj2KCwwksIbjua2LZCqhV1LNRDns=", + "owner": "NixOS", + "repo": "flake-compat", + "rev": "5edf11c44bc78a0d334f6334cdaf7d60d732daab", "type": "github" }, "original": { - "owner": "hercules-ci", - "repo": "flake-parts", + "owner": "NixOS", + "repo": "flake-compat", "type": "github" } }, - "flake-parts_3": { + "flake-parts": { "inputs": { - "nixpkgs-lib": [ - "beeVim", - "plugins-rustaceanvim", - "neovim-nightly-overlay", - "nixpkgs" - ] + "nixpkgs-lib": "nixpkgs-lib" }, "locked": { "lastModified": 1775087534, @@ -129,28 +95,10 @@ "type": "github" } }, - "flake-parts_4": { + "flake-parts_2": { "inputs": { "nixpkgs-lib": "nixpkgs-lib_2" }, - "locked": { - "lastModified": 1775087534, - "narHash": "sha256-91qqW8lhL7TLwgQWijoGBbiD4t7/q75KTi8NxjVmSmA=", - "owner": "hercules-ci", - "repo": "flake-parts", - "rev": "3107b77cd68437b9a76194f0f7f9c55f2329ca5b", - "type": "github" - }, - "original": { - "owner": "hercules-ci", - "repo": "flake-parts", - "type": "github" - } - }, - "flake-parts_5": { - "inputs": { - "nixpkgs-lib": "nixpkgs-lib_3" - }, "locked": { "lastModified": 1749398372, "narHash": "sha256-tYBdgS56eXYaWVW3fsnPQ/nFlgWi/Z2Ymhyu21zVM98=", @@ -165,86 +113,6 @@ "type": "github" } }, - "gen-luarc": { - "inputs": { - "flake-parts": [ - "beeVim", - "plugins-rustaceanvim", - "flake-parts" - ], - "git-hooks": [ - "beeVim", - "plugins-rustaceanvim", - "git-hooks" - ], - "luvit-meta": "luvit-meta", - "nixpkgs": [ - "beeVim", - "plugins-rustaceanvim", - "nixpkgs" - ] - }, - "locked": { - "lastModified": 1755304025, - "narHash": "sha256-xVKfjFwc0zMbLMjLTiHz+0llggkjs93SmHkhaa9S3M4=", - "owner": "mrcjkb", - "repo": "nix-gen-luarc-json", - "rev": "1865b0ebb753ae5324d7381b1fa8c98c04ec7509", - "type": "github" - }, - "original": { - "owner": "mrcjkb", - "repo": "nix-gen-luarc-json", - "type": "github" - } - }, - "git-hooks": { - "inputs": { - "flake-compat": "flake-compat", - "gitignore": "gitignore", - "nixpkgs": [ - "beeVim", - "plugins-rustaceanvim", - "nixpkgs" - ] - }, - "locked": { - "lastModified": 1775585728, - "narHash": "sha256-8Psjt+TWvE4thRKktJsXfR6PA/fWWsZ04DVaY6PUhr4=", - "owner": "cachix", - "repo": "git-hooks.nix", - "rev": "580633fa3fe5fc0379905986543fd7495481913d", - "type": "github" - }, - "original": { - "owner": "cachix", - "repo": "git-hooks.nix", - "type": "github" - } - }, - "gitignore": { - "inputs": { - "nixpkgs": [ - "beeVim", - "plugins-rustaceanvim", - "git-hooks", - "nixpkgs" - ] - }, - "locked": { - "lastModified": 1709087332, - "narHash": "sha256-HG2cCnktfHsKV0s4XW83gU3F57gaTljL9KNSuG6bnQs=", - "owner": "hercules-ci", - "repo": "gitignore.nix", - "rev": "637db329424fd7e46cf4185293b9cc8c88c95394", - "type": "github" - }, - "original": { - "owner": "hercules-ci", - "repo": "gitignore.nix", - "type": "github" - } - }, "home-manager": { "inputs": { "nixpkgs": [ @@ -252,11 +120,11 @@ ] }, "locked": { - "lastModified": 1775781825, - "narHash": "sha256-L5yKTpR+alrZU2XYYvIxCeCP4LBHU5jhwSj7H1VAavg=", + "lastModified": 1777594677, + "narHash": "sha256-h90sHwoRJLRvaTpZroTvU2JRHDFj0czUafM8eqLe1RI=", "owner": "nix-community", "repo": "home-manager", - "rev": "e35c39fca04fee829cecdf839a50eb9b54d8a701", + "rev": "899c08a15beae5da51a5cecd6b2b994777a948da", "type": "github" }, "original": { @@ -265,36 +133,20 @@ "type": "github" } }, - "luvit-meta": { - "flake": false, - "locked": { - "lastModified": 1705776742, - "narHash": "sha256-zAAptV/oLuLAAsa2zSB/6fxlElk4+jNZd/cPr9oxFig=", - "owner": "Bilal2453", - "repo": "luvit-meta", - "rev": "ce76f6f6cdc9201523a5875a4471dcfe0186eb60", - "type": "github" - }, - "original": { - "owner": "Bilal2453", - "repo": "luvit-meta", - "type": "github" - } - }, "mango": { "inputs": { - "flake-parts": "flake-parts_5", + "flake-parts": "flake-parts_2", "nixpkgs": [ "nixpkgs" ], "scenefx": "scenefx" }, "locked": { - "lastModified": 1775461179, - "narHash": "sha256-4vvuk6tl8M2wuW3VJU9Uwc3HCrL95cSJImEODNNQEy8=", + "lastModified": 1776999768, + "narHash": "sha256-RP7eVqbnQ/uNCXh0HH8SXRIerMlkyHco+wpI9oxon0U=", "owner": "mangowm", "repo": "mango", - "rev": "e83a9dff820ce2215ecbbbea7d617d24d0825174", + "rev": "b9c6a2c1964cb59536c5d3e02d2ff981a7eb36d2", "type": "github" }, "original": { @@ -323,105 +175,39 @@ "url": "https://codeberg.org/brustybee/mydwm" } }, - "neovim-nightly-overlay": { - "inputs": { - "flake-parts": "flake-parts", - "neovim-src": "neovim-src", - "nixpkgs": "nixpkgs" - }, - "locked": { - "lastModified": 1775832851, - "narHash": "sha256-Nvkak/2K4Sy39bfWitq5ZsInup95jZE1z4LAHJ89Z8o=", - "owner": "nix-community", - "repo": "neovim-nightly-overlay", - "rev": "d3367f69ec16ba005704e54e66e6983bd6a5abe6", - "type": "github" - }, - "original": { - "owner": "nix-community", - "repo": "neovim-nightly-overlay", - "type": "github" - } - }, - "neovim-nightly-overlay_2": { + "nix-doom-emacs-unstraightened": { "inputs": { - "flake-parts": "flake-parts_3", - "neovim-src": "neovim-src_2", - "nixpkgs": "nixpkgs_2" - }, - "locked": { - "lastModified": 1775779477, - "narHash": "sha256-JjbovRW+t6qWwTpNBJ1+I7BcYYjaxl00vIsiDnmvxN4=", - "owner": "nix-community", - "repo": "neovim-nightly-overlay", - "rev": "4f47ea565f3d2e1148025820839a11642b4cb496", - "type": "github" - }, - "original": { - "owner": "nix-community", - "repo": "neovim-nightly-overlay", - "type": "github" - } - }, - "neovim-src": { - "flake": false, - "locked": { - "lastModified": 1775778978, - "narHash": "sha256-pHfmttziaYuGoWRnSu8nhsUA2AOcQuUwzWCGNTU1R+U=", - "owner": "neovim", - "repo": "neovim", - "rev": "10e385cf30f07d80a42abe30d36ebf065c496c99", - "type": "github" - }, - "original": { - "owner": "neovim", - "repo": "neovim", - "type": "github" - } - }, - "neovim-src_2": { - "flake": false, - "locked": { - "lastModified": 1775778978, - "narHash": "sha256-pHfmttziaYuGoWRnSu8nhsUA2AOcQuUwzWCGNTU1R+U=", - "owner": "neovim", - "repo": "neovim", - "rev": "10e385cf30f07d80a42abe30d36ebf065c496c99", - "type": "github" + "doomemacs": "doomemacs", + "emacs-overlay": "emacs-overlay", + "nixpkgs": [], + "systems": "systems" }, - "original": { - "owner": "neovim", - "repo": "neovim", - "type": "github" - } - }, - "nixCats": { "locked": { - "lastModified": 1774835836, - "narHash": "sha256-6ok7iv/9R82vl6MYe3Lwyyb6S5bmW2PxEZtmjzlqyPs=", - "owner": "BirdeeHub", - "repo": "nixCats-nvim", - "rev": "ebb9f279a55ca60ff4e37e4accf6518dc627aa8d", + "lastModified": 1777629537, + "narHash": "sha256-fBpoc/+nYcE2TCyNPzfy5OPZCyvp5GARc6r4R0EYXUs=", + "owner": "marienz", + "repo": "nix-doom-emacs-unstraightened", + "rev": "ff8ef70369fcfb398577cd866b415f649fc68022", "type": "github" }, "original": { - "owner": "BirdeeHub", - "repo": "nixCats-nvim", + "owner": "marienz", + "repo": "nix-doom-emacs-unstraightened", "type": "github" } }, "nixpkgs": { "locked": { - "lastModified": 1775763530, - "narHash": "sha256-BuTK9z1QEwWPOIakQ1gCN4pa4VwVJpfptYCviy2uOGc=", + "lastModified": 1777268161, + "narHash": "sha256-bxrdOn8SCOv8tN4JbTF/TXq7kjo9ag4M+C8yzzIRYbE=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "b0188973b4b2a5b6bdba8b65381d6cd09a533da0", + "rev": "1c3fe55ad329cbcb28471bb30f05c9827f724c76", "type": "github" }, "original": { "owner": "NixOS", - "ref": "nixpkgs-unstable", + "ref": "nixos-unstable", "repo": "nixpkgs", "type": "github" } @@ -442,21 +228,6 @@ } }, "nixpkgs-lib_2": { - "locked": { - "lastModified": 1774748309, - "narHash": "sha256-+U7gF3qxzwD5TZuANzZPeJTZRHS29OFQgkQ2kiTJBIQ=", - "owner": "nix-community", - "repo": "nixpkgs.lib", - "rev": "333c4e0545a6da976206c74db8773a1645b5870a", - "type": "github" - }, - "original": { - "owner": "nix-community", - "repo": "nixpkgs.lib", - "type": "github" - } - }, - "nixpkgs-lib_3": { "locked": { "lastModified": 1748740939, "narHash": "sha256-rQaysilft1aVMwF14xIdGS3sj1yHlI6oKQNBRTF40cc=", @@ -471,157 +242,6 @@ "type": "github" } }, - "nixpkgs_2": { - "locked": { - "lastModified": 1775763530, - "narHash": "sha256-BuTK9z1QEwWPOIakQ1gCN4pa4VwVJpfptYCviy2uOGc=", - "owner": "NixOS", - "repo": "nixpkgs", - "rev": "b0188973b4b2a5b6bdba8b65381d6cd09a533da0", - "type": "github" - }, - "original": { - "owner": "NixOS", - "ref": "nixpkgs-unstable", - "repo": "nixpkgs", - "type": "github" - } - }, - "nixpkgs_3": { - "locked": { - "lastModified": 1775763530, - "narHash": "sha256-BuTK9z1QEwWPOIakQ1gCN4pa4VwVJpfptYCviy2uOGc=", - "owner": "nixos", - "repo": "nixpkgs", - "rev": "b0188973b4b2a5b6bdba8b65381d6cd09a533da0", - "type": "github" - }, - "original": { - "owner": "nixos", - "ref": "nixpkgs-unstable", - "repo": "nixpkgs", - "type": "github" - } - }, - "nixpkgs_4": { - "locked": { - "lastModified": 1775710090, - "narHash": "sha256-ar3rofg+awPB8QXDaFJhJ2jJhu+KqN/PRCXeyuXR76E=", - "owner": "NixOS", - "repo": "nixpkgs", - "rev": "4c1018dae018162ec878d42fec712642d214fdfa", - "type": "github" - }, - "original": { - "owner": "NixOS", - "ref": "nixos-unstable", - "repo": "nixpkgs", - "type": "github" - } - }, - "plugins-base46-nvim": { - "flake": false, - "locked": { - "lastModified": 1774439058, - "narHash": "sha256-+FNEJBBa33onbq+BCQA1kO9dXDhGEUYbVIMnhrpr98U=", - "owner": "AvengeMedia", - "repo": "base46", - "rev": "0f57acc24500694d0253b63c9fc6aaeb1a2b6696", - "type": "github" - }, - "original": { - "owner": "AvengeMedia", - "repo": "base46", - "type": "github" - } - }, - "plugins-lze": { - "flake": false, - "locked": { - "lastModified": 1775782676, - "narHash": "sha256-KDIY90Ny+uyuDCk8r57KBtT9a49wmWdLvviOMFfXa+E=", - "owner": "BirdeeHub", - "repo": "lze", - "rev": "c4403a54d9cd94156d7a149d830f39a4a437f048", - "type": "github" - }, - "original": { - "owner": "BirdeeHub", - "repo": "lze", - "type": "github" - } - }, - "plugins-lzextras": { - "flake": false, - "locked": { - "lastModified": 1774897220, - "narHash": "sha256-6ULOHXri/VAeRR+XwZ23YwN5xqOnBTBb+SBDgsIIFc8=", - "owner": "BirdeeHub", - "repo": "lzextras", - "rev": "e04b92af006e0357099f2ce023094b22ae4d105d", - "type": "github" - }, - "original": { - "owner": "BirdeeHub", - "repo": "lzextras", - "type": "github" - } - }, - "plugins-neogit": { - "flake": false, - "locked": { - "lastModified": 1775637236, - "narHash": "sha256-tBmRZwBoUfJyTcPbqS/Vm7Ww0JE2wLgQ7e6o+1Fxei0=", - "owner": "NeogitOrg", - "repo": "neogit", - "rev": "e06745228600a585b88726fc9fba44a373c15a47", - "type": "github" - }, - "original": { - "owner": "NeogitOrg", - "repo": "neogit", - "type": "github" - } - }, - "plugins-opencode-nvim": { - "flake": false, - "locked": { - "lastModified": 1775746206, - "narHash": "sha256-rMTGNbhyo6YOmhVTyIkkl9HMl/73jYO8SdKGktHd+nU=", - "owner": "NickvanDyke", - "repo": "opencode.nvim", - "rev": "6ed56733b19dce45d1f02abc34547cb21857ca95", - "type": "github" - }, - "original": { - "owner": "NickvanDyke", - "repo": "opencode.nvim", - "type": "github" - } - }, - "plugins-rustaceanvim": { - "inputs": { - "flake-parts": "flake-parts_2", - "gen-luarc": "gen-luarc", - "git-hooks": "git-hooks", - "neovim-nightly-overlay": "neovim-nightly-overlay_2", - "nixpkgs": "nixpkgs_3", - "vimcats": "vimcats" - }, - "locked": { - "lastModified": 1775781822, - "narHash": "sha256-uPyJNzvX0K6zjko0RCh/eGixkcg2H208eV3SAp55HqY=", - "owner": "mrcjkb", - "repo": "rustaceanvim", - "rev": "3eca3979c37a55f39119631bbd8a472ea622fc0c", - "type": "github" - }, - "original": { - "owner": "mrcjkb", - "repo": "rustaceanvim", - "type": "github" - } - }, "quickshell": { "inputs": { "nixpkgs": [ @@ -630,29 +250,29 @@ ] }, "locked": { - "lastModified": 1766725085, - "narHash": "sha256-O2aMFdDUYJazFrlwL7aSIHbUSEm3ADVZjmf41uBJfHs=", + "lastModified": 1776854048, + "narHash": "sha256-lLbV66V3RMNp1l8/UelmR4YzoJ5ONtgvEtiUMJATH/o=", "ref": "refs/heads/master", - "rev": "41828c4180fb921df7992a5405f5ff05d2ac2fff", - "revCount": 715, + "rev": "783c953987dc56ff0601abe6845ed96f1d00495a", + "revCount": 806, "type": "git", "url": "https://git.outfoxxed.me/quickshell/quickshell" }, "original": { - "rev": "41828c4180fb921df7992a5405f5ff05d2ac2fff", + "rev": "783c953987dc56ff0601abe6845ed96f1d00495a", "type": "git", "url": "https://git.outfoxxed.me/quickshell/quickshell" } }, "root": { "inputs": { - "beeVim": "beeVim", "dms": "dms", - "flake-parts": "flake-parts_4", + "flake-parts": "flake-parts", "home-manager": "home-manager", "mango": "mango", "mydwm": "mydwm", - "nixpkgs": "nixpkgs_4", + "nix-doom-emacs-unstraightened": "nix-doom-emacs-unstraightened", + "nixpkgs": "nixpkgs", "sops-nix": "sops-nix", "zen-browser": "zen-browser" } @@ -685,11 +305,11 @@ ] }, "locked": { - "lastModified": 1775682595, - "narHash": "sha256-0E9PohY/VuESLq0LR4doaH7hTag513sDDW5n5qmHd1Q=", + "lastModified": 1777338324, + "narHash": "sha256-bc+ZZCmOTNq86/svGnw0tVpH7vJaLYvGLLKFYP08Q8E=", "owner": "Mic92", "repo": "sops-nix", - "rev": "d2e8438d5886e92bc5e7c40c035ab6cae0c41f76", + "rev": "8eaee5c45428b28b8c47a83e4c09dccec5f279b5", "type": "github" }, "original": { @@ -698,35 +318,18 @@ "type": "github" } }, - "vimcats": { - "inputs": { - "flake-parts": [ - "beeVim", - "plugins-rustaceanvim", - "flake-parts" - ], - "git-hooks": [ - "beeVim", - "plugins-rustaceanvim", - "git-hooks" - ], - "nixpkgs": [ - "beeVim", - "plugins-rustaceanvim", - "nixpkgs" - ] - }, + "systems": { "locked": { - "lastModified": 1775235697, - "narHash": "sha256-wlobsn5gVjfk88q4QnzLUY8rIFARaYp7/9ziDc2xZ2Q=", - "owner": "mrcjkb", - "repo": "vimcats", - "rev": "f0edff54f47d6c7dddef3ec9a61496b23f43640e", + "lastModified": 1681028828, + "narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=", + "owner": "nix-systems", + "repo": "default", + "rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e", "type": "github" }, "original": { - "owner": "mrcjkb", - "repo": "vimcats", + "owner": "nix-systems", + "repo": "default", "type": "github" } }, @@ -737,11 +340,11 @@ ] }, "locked": { - "lastModified": 1775710180, - "narHash": "sha256-sCokvdNvl8zIzsnjgG0TN5h3RUI7GJyWW9ErfmEj0rM=", + "lastModified": 1777612697, + "narHash": "sha256-h+tXBNMDrsKbD1UnYw0IeSIT4RalHtIJ1GLOviib7/8=", "owner": "youwen5", "repo": "zen-browser-flake", - "rev": "2c138beb648d1cbbfae76695a8230ee04e4db25a", + "rev": "f9f70d14f9a57c7962c5cfe589461c1391044448", "type": "github" }, "original": { diff --git a/flake.nix b/flake.nix index a9730db..fddbce2 100644 --- a/flake.nix +++ b/flake.nix @@ -10,11 +10,9 @@ inputs = { flake-parts.url = "github:hercules-ci/flake-parts"; - # nixpkgs.url = "github:nixos/nixpkgs/nixos-unstable"; nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable"; - beeVim.url = "git+https://codeberg.org/brustybee/beeVim"; - # beeVim.url = "git+file:/home/bee/beeVim"; - beeVim.inputs.nixpkgs.follows = "nixpkgs"; + nix-doom-emacs-unstraightened.url = "github:marienz/nix-doom-emacs-unstraightened"; + nix-doom-emacs-unstraightened.inputs.nixpkgs.follows = ""; home-manager = { url = "github:nix-community/home-manager"; inputs.nixpkgs.follows = "nixpkgs"; @@ -32,13 +30,12 @@ inputs.nixpkgs.follows = "nixpkgs"; }; mydwm = { - # url = "git+https://codeberg.org/brustybee/mydwm"; - url = "git+file:/home/bee/mydwm"; + url = "git+https://codeberg.org/brustybee/mydwm"; + # url = "git+file:/home/bee/mydwm"; inputs.nixpkgs.follows = "nixpkgs"; }; - dms = { - url = "github:AvengeMedia/DankMaterialShell/stable"; + url = "github:AvengeMedia/DankMaterialShell"; inputs.nixpkgs.follows = "nixpkgs"; }; }; diff --git a/hosts/common.nix b/hosts/common.nix index 5ea1619..17f5c92 100644 --- a/hosts/common.nix +++ b/hosts/common.nix @@ -27,36 +27,6 @@ flake = "/home/${user}/.config/beeSystems"; }; - # programs.ssh.extraConfig = '' - # Host eu.nixbuild.net - # PubkeyAcceptedKeyTypes ssh-ed25519 - # ServerAliveInterval 60 - # IPQoS throughput - # IdentityFile /home/bee/my-nixbuild-key - # ''; - # - # programs.ssh.knownHosts = { - # nixbuild = { - # hostNames = [ "eu.nixbuild.net" ]; - # publicKey = "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIPIQCZc54poJ8vqawd8TraNryQeJnvH1eLpIDgbiqymM"; - # }; - # }; - # - # nix = { - # distributedBuilds = true; - # buildMachines = [ - # { - # hostName = "eu.nixbuild.net"; - # system = "x86_64-linux"; - # maxJobs = 100; - # supportedFeatures = [ - # "benchmark" - # "big-parallel" - # ]; - # } - # ]; - # }; - boot.loader = { efi.canTouchEfiVariables = true; timeout = 50; @@ -65,13 +35,9 @@ device = "nodev"; efiSupport = true; useOSProber = true; + splashImage = null; + theme = null; configurationLimit = 4; - theme = pkgs.fetchFromGitHub { - owner = "shvchk"; - repo = "fallout-grub-theme"; - rev = "80734103d0b48d724f0928e8082b6755bd3b2078"; - sha256 = "sha256-7kvLfD6Nz4cEMrmCA9yq4enyqVyqiTkVZV5y4RyUatU="; - }; }; }; @@ -81,39 +47,21 @@ extraDefCfg = "process-unmapped-keys yes"; config = '' - ;; Define the physical keys on your keyboard that we want to modify (defsrc esc caps rctrl f1 ) - ;; Define custom actions (Aliases) (defalias - ;; The smart key: - ;; - Tap: Sends Esc - ;; - Hold: Sends Left Control - ;; - "press": If you press another key while holding this, it triggers - ;; Left Control IMMEDIATELY (no lag). Perfect for Vim. capesc (tap-hold-press 200 200 esc lctrl) - ;; Switches to toggle between layers game (layer-switch gaming) base (layer-switch base) ) - ;; 3. Base Layer (Typing Mode) - ;; - Physical Esc -> Caps Lock (Standard swap) - ;; - Physical Caps -> Esc (tap) / Ctrl (hold) - ;; - Physical RCtrl -> Switch to "Gaming Mode" - ;; - Physical F1 -> Normal F1 behavior (deflayer base caps @capesc @game f1 ) - ;; 4. Gaming Layer (Gaming Mode) - ;; - Physical Esc -> Caps Lock (keeps light toggle working) - ;; - Physical Caps -> Left Ctrl (Pure Ctrl! Safe for crouching) - ;; - Physical RCtrl -> Switch back to "Typing Mode" - ;; - Physical F1 -> Escape (Your dedicated Pause button) (deflayer gaming caps lctrl @base esc ) @@ -176,7 +124,7 @@ alsa.support32Bit = true; pulse.enable = true; wireplumber.enable = true; - jack.enable = true; + jack.enable = false; }; security.rtkit.enable = true; @@ -197,16 +145,18 @@ fonts.fontDir.enable = true; fonts.packages = with pkgs; [ - # ioskeley-mono ioskeley-input + nerd-fonts.symbols-only + # ioskeley-mono # maple-mono.NF - nerd-fonts.jetbrains-mono + # nerd-fonts.jetbrains-mono ]; + fonts.fontconfig.defaultFonts.monospace = [ - "JetBrainsMono Nerd Font" - "Ioskeley Mono" + "IosevkaInput" "Symbols Nerd Font" ]; + programs.fish.enable = true; programs.nano.enable = false; programs.gnupg.agent = { @@ -217,7 +167,7 @@ sops = { defaultSopsFile = ../secrets/secrets.yaml; - age.sshKeyPaths = [ "/etc/ssh/ssh_host_ed25519_key" ]; + age.keyFile = "/home/bee/.config/sops/age/keys.txt"; secrets.gpg_private_key = { owner = user; mode = "0400"; @@ -256,7 +206,7 @@ services.gnome.gnome-keyring.enable = true; services.power-profiles-daemon.enable = true; services.printing.enable = false; - services.openssh.enable = true; + services.openssh.enable = false; services.dbus.enable = true; services.gvfs.enable = true; @@ -267,8 +217,6 @@ playerctl pciutils imagemagick - pavucontrol - bluetui sops fd ripgrep diff --git a/hosts/nixios/default.nix b/hosts/nixios/default.nix index e72aad5..7920378 100644 --- a/hosts/nixios/default.nix +++ b/hosts/nixios/default.nix @@ -17,36 +17,16 @@ beeMods ]; - services.logind = { - settings.Login = { - HandleLidSwitch = "suspend"; - HandleLidSwitchExternalPower = "suspend"; - LidSwitchIgnoreInhibited = "no"; - }; - }; - - # REMOVE LATER - virtualisation.vmVariant = { - users.users.${user}.password = "1"; - users.users.root.password = "1"; - - virtualisation.memorySize = 4096; - virtualisation.cores = 4; - services.displayManager.ly.enable = lib.mkForce false; - - services.getty.helpLine = ">> WELCOME <<"; - services.getty.autologinUser = user; - }; - # REMOVE LATER - boot.kernelPackages = pkgs.linuxPackages_zen; programs.dconf.enable = true; beeMods = { - mango.enable = true; - hyprland.enable = false; - dwm.enable = true; + windowManagers = { + mango.enable = false; + hyprland.enable = true; + dwm.enable = true; + }; }; xdg.portal = lib.mkForce { diff --git a/hosts/nixios/hardware-configuration.nix b/hosts/nixios/hardware-configuration.nix index 7e2a1c3..96c39c3 100644 --- a/hosts/nixios/hardware-configuration.nix +++ b/hosts/nixios/hardware-configuration.nix @@ -1,8 +1,6 @@ # Do not modify this file! It was generated by ‘nixos-generate-config’ # and may be overwritten by future invocations. Please make changes # to /etc/nixos/configuration.nix instead. - -# yes i did modify it. { config, lib, @@ -10,6 +8,7 @@ modulesPath, ... }: + { imports = [ (modulesPath + "/installer/scan/not-detected.nix") @@ -27,12 +26,55 @@ boot.extraModulePackages = [ ]; fileSystems."/" = { - device = "/dev/disk/by-label/NIXROOT"; - fsType = "ext4"; + device = "/dev/disk/by-uuid/85c4da5f-b234-498f-bf47-f2d3b26bf0cc"; + fsType = "btrfs"; + options = [ + "subvol=@" + "compress=zstd" + "noatime" + "discard=async" + "space_cache=v2" + ]; + }; + + fileSystems."/home" = { + device = "/dev/disk/by-uuid/85c4da5f-b234-498f-bf47-f2d3b26bf0cc"; + fsType = "btrfs"; + options = [ + "subvol=@home" + "compress=zstd" + "noatime" + "discard=async" + "space_cache=v2" + ]; + }; + + fileSystems."/nix" = { + device = "/dev/disk/by-uuid/85c4da5f-b234-498f-bf47-f2d3b26bf0cc"; + fsType = "btrfs"; + options = [ + "subvol=@nix" + "compress=zstd" + "noatime" + "discard=async" + "space_cache=v2" + ]; + }; + + fileSystems."/var/log" = { + device = "/dev/disk/by-uuid/85c4da5f-b234-498f-bf47-f2d3b26bf0cc"; + fsType = "btrfs"; + options = [ + "subvol=@log" + "compress=zstd" + "noatime" + "discard=async" + "space_cache=v2" + ]; }; fileSystems."/boot" = { - device = "/dev/disk/by-label/NIXBOOT"; + device = "/dev/disk/by-uuid/DD2D-BC85"; fsType = "vfat"; options = [ "fmask=0022" @@ -41,7 +83,7 @@ }; swapDevices = [ - { device = "/dev/disk/by-label/NIXSWAP"; } + { device = "/dev/disk/by-uuid/247afe44-bbc1-4931-bf26-29a540e9d7df"; } ]; nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux"; diff --git a/secrets/secrets.yaml b/secrets/secrets.yaml index bdbd1bf..a91a966 100644 --- a/secrets/secrets.yaml +++ b/secrets/secrets.yaml @@ -1,16 +1,16 @@ -gpg_private_key: ENC[AES256_GCM,data:w33fn+jpHrjiZLMI3ZBuxvltop8g6WXS3sWI70FNlCjF3Cf2VY9qCiRem4B/F647+LvaIKdtzchA3UMadDG1nTXjOdNOp6btBQUPKgw3zsaGJYravvWx/86qX13AHykcROaohlrNSmJGG8NwpADplSZ9i9/YfMU1ZZKrdrPw3669P9SuNmqKybQWzPYpHbfrH0jzRt3inGC77BFDAEXyFNtvBUfJdgTtMFGU/Aa87Nqil1PEw/Dg1SGzv8HxDcDw4FGPi6vrbEm0Ozq5gCbTuAf1LeEcjjEZ5sb8VTbiILRXFaznAuKAOTJODMhFU//CIOCholQ/pqaAQobBLETvizcOC7X7+wHMEvB9Nl4t2nwSS4nvNi1HfnWtq9jfw/OyovnbnTazAqY0LvfKSQvbhO65VEPgGpzdTtsMeLdey5c6DvFi8V7JcE/d9w20+g7jG59psZonA/S/3+bfoYjTotoY73iAmcU8Dn/gwsRkPPrh9TF7TcJ7wnbGtXac/TEe2vW5uLdadbxdirGlbgNmKgoLd8g/mLZbEmzZC8pacWlh8uGXDwMzPpBTayXJfWe8RcGzs8zB5NKKvnQQzEH5wM6vbrwL8v0b7hNvEdeJNInULS8ctqFlhYw8sHbnckrn/TrXYGLrF+gXuwL1P19EhYWQkaCLGGyvj1Eoc3qMkaE/AJNMxfNg0hrKm3TDiHHm6UeVcF1X1fyRAJUlnQkkEQ48+vfsaC9+C67XU2TUbhgnHX2xnWQ3dSE4/MIoupi1D5VqVJ4tev4PM5jYIAHA54wYtVDtlgVVNFvlMjoskwcXf1kaUdzZLINxfYLR/TtLhLCEfLgUYxblKtlQyGPwGnLi0k3025v43o1CVJAaVJMippCl4x5QOkedyGY89YBGyKrUsXyY72erxMTLZUhPajswE/ce/Uf+EmDob/uS2vViNd98F5FCrmD0peKYDeDp8Vnf66xbGsZ88RmDqwrsTjkdfItAzKqovGl2hD/yPMAWwKYUzrcVUI2ZPmnjKqSDeZeeGh4Sf81A/mP/FnJHkPv+R+GcxCGokL/Cg4P5c7EYYdxODH5mq4O/DaXqgPMMLmeps9OApl03fDJVH1ITmt/0censNCgPdP90Mob2UX0d3sjjUBrWZw68yflGsSvciTSKplUDY4KLxA==,iv:fsGogJ7kQt20A4PZNDUinbh3mvBqIT+N/KMWzOMpziI=,tag:jB5yrUJrXG2RbbWUf7jCVA==,type:str] +gpg_private_key: ENC[AES256_GCM,data:d2u7y/7ftkoVn036VBOlXk8JGdk701aDfv892GrZYpmbkKasgPoSMy8RpuLYVWLr2qGc8ffQp8l43XMo3gs9dDDejHcLrfQpqc0iMmSF8gunhVJeHOOOA8zoiw6VWpkarl2L0MDXstdvjVankXYU8jJV9nYKMUSVMPWWUYb//GT6VVl7WahDANpplOf/fgVCGEXqHTmm8ElWKuFbKYcihHQ/NLw8KA+BZ5Q4u7CJVb/95FknPXha/R2QtdgI8OayyOaDwhr0IBUYYt+SCpLyAPtZ2KZ0HfuPFx/liJxaR1eKqwefGIU4fv2MZa9BfX7QJHt2SJ1ZAxDQMXu93WjEqisRCHbZ/CrAV9lPwZR59SYILH9m90hzKoFe+/W29ycMHmktJJJhkR/5CVNq77NT2LFKI54CHe4b4Uq5KxlKbPyslLi5yRNjF0H1CViUFgBYvFn0uUNT9Fzo7+7BWPT7Z9fn/uD7kQF2eco5DrQB50hjOl+n62sUJpyfr9HlWSEidl7pTkl1Ier/kkndAWw5afCry2FrVxPtKegtSzCSKNZDcLZcuENKqFFvPJG0X3HW8UzXLGBSV6MrN/5AObVAYvPbS7hLfyIfsHYqCk6IKEYIaa+LqIqskw2cOaUpnJKF5bL9SZA25/98grNvq9373/ONbPzW0D+JuOD/QaEFE2BBDbM70+RMXdhi0IA9WV/ai3s5vWPFghHoV/MHmby6PXky/XnWrlhRP0NubTs/rtl0X1lrNVHcXe2tZBj+c9iur92+cyZ7uzfuQYxijC+jE/EFPUga7VUlVkp8jvt8gId0I1fWbHl2h0Pgsfd4sNluvSO/821qDfXFXISWEussL9igEdzgH/vhiNOj3LT77GqUduWIaAMU8W3IUpnQIape5E39Wp+PDTpSTJNZcH3fC8JV4rSTOmWWs24Y5EYPvKB/wMDSf3Bs99F/s36XubxS/frOjS3ygrtIHyM6DrdRUpZ+IZZKrkVQUdc6wx9iy7+aVYNKTJKhC3h6oZJkBHfj0MnDv+61+N+yt0qa4eTI6MdybIcwcFMOtRitapBrWf2badDtcPqvyOQSjcBZa/ByZ+AJDjCZardvZ097SFGz2FhoPbNBsmAbPZz7Snaml4WoaUCTciYb0UlbLnSXCHhQfJWcsGCFoEqoszKBDzmAWfdJDwyagMdqCHUy2qWKT8gDSo5tJ0GfCNPgJneH5ntHprtcYWRQkoUh6678UntJjhz0o/CSCSOHLJMok48BeeNCwQoFFegwkIiPNzTReCcfz0KMH8kAzIjJdIQ598R2SpfUYoxBdx1p+I2FD6XuS+N2KmESusXhNFP071coVmxNgOtR1eHNbbzyr8kJ/wteYPfWfk2v6cqMngPu4IMtEKvoJrN6ttWlEwzNRj9jAIa30eJIvBMKyGT8FHauXM3eFeB7OAdUD1BS3Drh99R2vff0mSaBdJnGVRHs7ICZq7jKzJymuaadEaNHqejVgw==,iv:y7tdgyNhX9zLgcLKqf8Qowez0T+iqCe+GbMvJ76xiA0=,tag:J+PF2fzdcx7N/FVLtC1ULQ==,type:str] sops: age: - - recipient: age1qfldnsnu2nmklke34uq9fpuf33677a6mlwmnszma7vkn75etrcrq6rxdpg + - recipient: age1l8cpc7lhhlhav78jl6s7fcjwuwt9qfrmuav7w2htuqps53swascs6f45yq enc: | -----BEGIN AGE ENCRYPTED FILE----- - YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSB6U2paUWZRSGUxaElMQXI2 - RmdDUE9SZzZxWlVFK2lUV1d1S1kxMEdJNmlFCnBhVSt1SGpiWk1ZNE1kOERGMGxH - TENYSHIrQmFGK3k2RW1WR2pWSk9sQ0UKLS0tIEpSWEw3TlF1bFZjZUgwUStKNW1S - U0JiMFV2L1B4dnpsNnhmYUNtVVNqU3cKZotGMk7AuFlp8mwnZ1/P5GqmR5IC9xBr - uwrsOyWrplA/Z251qda+CH41vKIVHvOV+AM5reu9G4K1/Bu/huF3/A== + YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBWaWtoSE80MWJRN2ZjU2ky + U2tkWk50ZFZrVjBJdzZPeG5mZ1NSbnYrYXl3Ci9yVDhRN2hMa0l5aEVKTDF2WEd1 + TVVWMnM1MDZNSzQ4ZDJEVTVjUDRSZG8KLS0tIHFCMHFUbE5MUWRPNEhtSzVpckxt + WDNhSVRwalN2dUxYV3RCMzJ3TWxDQmMK39Yqa5O0yg7tVj5iVroW88Sz6jv+6pr7 + 05OS83ymzGCDNr53UgJK+Bmj+wL/BpCwIvkFYyAbsYlRJknXY9ak4Q== -----END AGE ENCRYPTED FILE----- - lastmodified: "2026-03-06T21:30:21Z" - mac: ENC[AES256_GCM,data:0aFsXxZPEqL3BBIpm4qNAGqwsJqhM+/kC/kJE2yEs107Q+iu4akW3BstzQ8VCuc3Rg7alNOKmkuVEhJwLPvYc8zpWlb+7eIqLUX11Yrtz0UCzgApLCshRxIRPAxksqQy3ueRD0g+KmKx/Nui3NWIov6ycr3UoqxCjBthqHCKkyk=,iv:gzABDgrzjwTQ9EYcmT9IzF+PXc2hhKImSA55OyRV/G8=,tag:CYp0BeENvWkh9pEnWkCHdQ==,type:str] + lastmodified: "2026-05-01T04:15:22Z" + mac: ENC[AES256_GCM,data:AEbBxrTiowBwVCeOF8HiodNL0ptQoEJuWQU8CPkV6KlT8cmbB+khJ3bk1MPj7e2E4oQH1zOCO79tmF3pPt/mV9oQ7ozCTwKiiNgDHtKRpN1VXI1/bQL2btuwg7v5xpTAhzFzycHBbYV3ekqxTW9icwxbrLdC66zHCysS5qeNrJ4=,iv:SzmqdeSfWDRQGxHq9gcaILlp9UioMqyidkbF4HwS0S0=,tag:GSJD9VDJ5grID8UQ5PGjlw==,type:str] unencrypted_suffix: _unencrypted - version: 3.12.1 + version: 3.12.2 diff --git a/users/bee/default.nix b/users/bee/default.nix index b60cdfd..3c6db48 100644 --- a/users/bee/default.nix +++ b/users/bee/default.nix @@ -22,55 +22,38 @@ systemd = { enable = true; - restartIfChanged = true; # Auto-restart dms.service when dank-material-shell changes + restartIfChanged = true; }; - enableSystemMonitoring = true; # System monitoring widgets (dgop) - enableVPN = true; # VPN management widget - enableDynamicTheming = true; # Wallpaper-based theming (matugen) - enableAudioWavelength = true; # Audio visualizer (cava) - enableCalendarEvents = true; # Calendar integration (khal) - enableClipboardPaste = true; # Pasting items from the clipboard (wtype) + enableSystemMonitoring = true; + enableVPN = true; + enableDynamicTheming = true; + enableAudioWavelength = true; + enableCalendarEvents = false; + enableClipboardPaste = true; }; beeMods = { - hyprland = { - enable = false; - animations = true; - window = { - blur.enable = false; - blur.radius = 10; - blur.passes = 2; - shadows = true; - }; - }; - mango = { - enable = true; - animations = true; - waybar = true; - window = { - blur.enable = false; - blur.radius = 10; - blur.passes = 2; - shadows = true; - }; - }; - dwm = { - enable = true; - picom = { - enable = false; + windowManagers = { + dwm.enable = true; + hyprland.enable = true; + mango.enable = false; + eyeCandy = { + animations.enable = true; window = { blur.enable = true; - blur.strength = 8; - blur.size = 8; + blur.radius = 12; + blur.passes = 3; + shadows.enable = true; }; }; }; - beeVim.enable = true; matugen.enable = true; + emacs.enable = false; terminal = { foot = true; font.family = "IosevkaInput"; + font.size = 11.0; }; }; @@ -85,7 +68,5 @@ programs.home-manager.enable = true; - services.mpris-proxy.enable = true; - home.stateVersion = systemState; # check flake.nix } diff --git a/users/common.nix b/users/common.nix index d9c71e7..5e0386c 100644 --- a/users/common.nix +++ b/users/common.nix @@ -26,7 +26,7 @@ in package = pkgs.git.override { withLibsecret = true; }; settings = { user = { - name = "brustybee"; + name = "bee"; email = "beebeeb5k@gmail.com"; signingkey = "42177A22EA630575"; }; @@ -70,7 +70,7 @@ in name = "adw-gtk3"; }; iconTheme = { - name = "Adwita"; + name = "Adwaita"; package = pkgs.adwaita-icon-theme; }; gtk3 = { @@ -134,18 +134,14 @@ in home.packages = with pkgs; [ nautilus - opencode imv gnome-calculator - papers - cava - # clapper - wlsunset - thunderbird gpu-screen-recorder-gtk - kdePackages.qqc2-desktop-style - (pkgs.obsidian.override { - electron = pkgs.electron_40; - }) + accountsservice + equibop + fastfetch + clang-tools + clang + neovim ]; } -- cgit v1.3.1