From 83b3d14abb07e5e80335f3ae1ec7702f5ffaea99 Mon Sep 17 00:00:00 2001 From: Swarsel Date: Sun, 15 Dec 2024 15:04:38 +0100 Subject: [PATCH] chore: push index and gc artifacts --- index.html | 447 ++++++++++++++++++++++------------------- programs/emacs/init.el | 5 +- 2 files changed, 241 insertions(+), 211 deletions(-) diff --git a/index.html b/index.html index 1331d61..bdb75e4 100644 --- a/index.html +++ b/index.html @@ -3,7 +3,7 @@ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> - + SwarselSystems: NixOS + Emacs Configuration @@ -204,11 +204,7 @@
  • 1. Introduction (no code)
  • 2. Noweb-Ref blocks
  • 3. flake.nix @@ -249,7 +245,7 @@
  • -
  • 4.2. Overlays, packages, and modules +
  • 4.2. Additions and modifications
  • 4.3.2. Server @@ -532,27 +531,28 @@
  • 5.3.11. Icons
  • 5.3.12. Variable Pitch Mode
  • 5.3.13. Modeline
  • -
  • 5.3.14. Helper Modes +
  • 5.3.14. mini-modeline
  • +
  • 5.3.15. Helper Modes
  • -
  • 5.3.15. Ligatures
  • -
  • 5.3.16. Popup (popper) + Shackle Buffers
  • -
  • 5.3.17. Indicate first and last line of buffer
  • -
  • 5.3.18. Authentication
  • +
  • 5.3.16. Ligatures
  • +
  • 5.3.17. Popup (popper) + Shackle Buffers
  • +
  • 5.3.18. Indicate first and last line of buffer
  • +
  • 5.3.19. Authentication
  • 5.4. Modules @@ -665,7 +665,7 @@

    -This file has 50870 words spanning 13230 lines and was last revised on 2024-12-11 01:50:22 +0100. +This file has 51223 words spanning 13242 lines and was last revised on 2024-12-13 01:19:58 +0100.

    @@ -675,7 +675,7 @@ In order to have working links and macros when viewing this file online, you mig

    1. Introduction (no code)

    -This literate configuration file holds the entirety of all configuration files for both NixOS as well as home manager across all machines that I currently use. It also holds an extensive Emacs configuration +This literate configuration file holds the entirety of all configuration files for both NixOS as well as home-manager across all machines that I currently use. It also holds an extensive Emacs configuration.

    @@ -683,7 +683,7 @@ I used to have two separate files (Emacs.org and Nixos.org

    -This configuration is part of a NixOS system that is fully declarative and can be found here: +This configuration is part of a NixOS system that is (nearly) fully declarative and can be found here:

      @@ -692,7 +692,7 @@ This configuration is part of a NixOS system that is fully declarative and can b

    -The literate configuration lets me explain my choices to my future self as well as you, the reader. I go to great lengths to explain the choices for all configuration steps that I take in order for me to pay due diligence in crafting my setup, and not simply copying big chunks of other peoples code. Also, the literate configuration approach is very convenient to me as I only need to keep of (ideally) a single file to manage all of my configuration. I hope that this documentation will make it easier for beginners to get into Emacs and NixOS as I know it can be a struggle in the beginning. +This literate configuration lets me explain my choices to my future self as well as you, the reader. I go to great lengths to explain the choices for all configuration steps that I take in order for me to pay due diligence in crafting my setup, and not simply copying big chunks of other peoples code. Also, the literate configuration approach is very convenient to me as I only need to keep of (ideally) a single file to manage all of my configuration. I hope that this documentation will make it easier for beginners to get into Emacs and NixOS as I know it can be a struggle in the beginning.

    @@ -706,8 +706,11 @@ This is the block you are currently in. It holds no code that actually builds th

  • Noweb-Ref blocks This section hold code that can be templated at other parts of the configuration. This is mostly used for the NixOS side of the configuration where I define my host systems that usually have a lot in common.
  • +
  • flake.nix +This block holds everything related to the heart of the nix side of the configuration - the flake.nix file.
  • +
  • System -This section holds all configuration options that apply to NixOS or Home Manager. In other words, here we are doing system and user level configuration.
  • +This section holds all configuration options that apply to NixOS or home-manager. In other words, here we are doing system and user level configuration.
  • Emacs @@ -715,7 +718,7 @@ This section defines my Emacs configuration. For a while, I considered to use ry

    -My emacs is built using the emacs-overlay nix flake, which builds a bleeding edge emacs on wayland (pgtk) with utilities like treesitter support. By executing the below source block, the current build setting can be updated at any time, and you can see my most up-to-date build options (last updated: 2024-12-11 01:50:22 +0100) +My emacs is built using the emacs-overlay nix flake, which builds a bleeding edge emacs on wayland (pgtk) with utilities like treesitter support. By executing the below source block, the current build setting can be updated at any time, and you can see my most up-to-date build options (last updated: 2024-12-13 01:19:58 +0100)

  • @@ -744,7 +747,7 @@ This file handles the rest of the Emacs configuration.

    -By using the configuration offered by this file, the file you are reading right now (SwarselSystems.org) will be freshly tangled on every file save. However, when you clone this configuration yourself and have not yet activated it, you need to tangle the file yourself. This can be done using the keybind C-c C-v t. Alternatively, execute the following block: +By using the configuration offered by this file, the file you are reading right now (SwarselSystems.org) will not be freshly tangled on every file save, as this slows down emacs over time. However, when you clone this configuration yourself and have not yet activated it, you need to tangle the file yourself. This can be done using the general keybind C-c C-v t or my personal chord C-SPC o t. Alternatively, execute the following block:

    @@ -755,6 +758,18 @@ By using the configuration offered by this file, the file you are reading right

    +The .html version of this page can be generated by calling the chord C-SPC o e, or by executing the below block +

    + +
    +
    +(org-html-export-to-html)
    +
    +
    +
    + +

    +The web version is useful because it allows navigation using org-mode links, which makes the configuration easier to follow (I hope!). Lastly, I add this javascript bit to the file in order to have a darkmode toggle when exporting to html:

    @@ -864,162 +879,6 @@ fonts = { -
    -

    2.1.1. firefox profile

    -
    -

    -At work I am using several services that are using SSO login - however, as I am using four different accounts at work, this becomes a chore here. Hence, I have defined multiple profiles in Work that are all practically using the same configuration. To save screen space, I template that profile here. -Set in firefox `about:config > toolkit.legacyUserProfileCustomizations.stylesheets` to true. -

    - -
    -
    -isDefault = false;
    -userChrome = builtins.readFile ../../../programs/firefox/chrome/userChrome.css;
    -extensions = with pkgs.nur.repos.rycee.firefox-addons; [
    -  tridactyl
    -  tampermonkey
    -  sidebery
    -  browserpass
    -  clearurls
    -  darkreader
    -  enhancer-for-youtube
    -  istilldontcareaboutcookies
    -  translate-web-pages
    -  ublock-origin
    -  reddit-enhancement-suite
    -  sponsorblock
    -  web-archives
    -  onepassword-password-manager
    -  single-file
    -  widegithub
    -  enhanced-github
    -  unpaywall
    -  don-t-fuck-with-paste
    -  plasma-integration
    -  (buildFirefoxXpiAddon {
    -    pname = "shortkeys";
    -    version = "4.0.2";
    -    addonId = "Shortkeys@Shortkeys.com";
    -    url = "https://addons.mozilla.org/firefox/downloads/file/3673761/shortkeys-4.0.2.xpi";
    -    sha256 = "c6fe12efdd7a871787ac4526eea79ecc1acda8a99724aa2a2a55c88a9acf467c";
    -    meta = with lib;
    -      {
    -        description = "Easily customizable custom keyboard shortcuts for Firefox. To configure this addon go to Addons (ctrl+shift+a) ->Shortkeys ->Options. Report issues here (please specify that the issue is found in Firefox): https://github.com/mikecrittenden/shortkeys";
    -        mozPermissions = [
    -          "tabs"
    -          "downloads"
    -          "clipboardWrite"
    -          "browsingData"
    -          "storage"
    -          "bookmarks"
    -          "sessions"
    -          "<all_urls>"
    -        ];
    -        platforms = platforms.all;
    -      };
    -  })
    -];
    -
    -settings =
    -  {
    -    "extensions.autoDisableScopes" = 0;
    -    "browser.bookmarks.showMobileBookmarks" = lock-true;
    -    "toolkit.legacyUserProfileCustomizations.stylesheets" = lock-true;
    -    "browser.search.suggest.enabled" = lock-false;
    -    "browser.search.suggest.enabled.private" = lock-false;
    -    "browser.urlbar.suggest.searches" = lock-false;
    -    "browser.urlbar.showSearchSuggestionsFirst" = lock-false;
    -    "browser.topsites.contile.enabled" = lock-false;
    -    "browser.newtabpage.activity-stream.feeds.section.topstories" = lock-false;
    -    "browser.newtabpage.activity-stream.feeds.snippets" = lock-false;
    -    "browser.newtabpage.activity-stream.section.highlights.includePocket" = lock-false;
    -    "browser.newtabpage.activity-stream.section.highlights.includeBookmarks" = lock-false;
    -    "browser.newtabpage.activity-stream.section.highlights.includeDownloads" = lock-false;
    -    "browser.newtabpage.activity-stream.section.highlights.includeVisited" = lock-false;
    -    "browser.newtabpage.activity-stream.showSponsored" = lock-false;
    -    "browser.newtabpage.activity-stream.system.showSponsored" = lock-false;
    -    "browser.newtabpage.activity-stream.showSponsoredTopSites" = lock-false;
    -  };
    -
    -search = {
    -  default = "Kagi";
    -  privateDefault = "Kagi";
    -  engines = {
    -    "Kagi" = {
    -      urls = [{
    -        template = "https://kagi.com/search";
    -        params = [
    -          { name = "q"; value = "{searchTerms}"; }
    -        ];
    -      }];
    -      iconUpdateURL = "https://kagi.com/favicon.ico";
    -      updateInterval = 24 * 60 * 60 * 1000; # every day
    -      definedAliases = [ "@k" ];
    -    };
    -
    -    "Nix Packages" = {
    -      urls = [{
    -        template = "https://search.nixos.org/packages";
    -        params = [
    -          { name = "type"; value = "packages"; }
    -          { name = "query"; value = "{searchTerms}"; }
    -        ];
    -      }];
    -      icon = "${pkgs.nixos-icons}/share/icons/hicolor/scalable/apps/nix-snowflake.svg";
    -      definedAliases = [ "@np" ];
    -    };
    -
    -    "NixOS Wiki" = {
    -      urls = [{
    -        template = "https://nixos.wiki/index.php?search={searchTerms}";
    -      }];
    -      iconUpdateURL = "https://nixos.wiki/favicon.png";
    -      updateInterval = 24 * 60 * 60 * 1000; # every day
    -      definedAliases = [ "@nw" ];
    -    };
    -
    -    "NixOS Options" = {
    -      urls = [{
    -        template = "https://search.nixos.org/options";
    -        params = [
    -          { name = "query"; value = "{searchTerms}"; }
    -        ];
    -      }];
    -
    -      icon = "${pkgs.nixos-icons}/share/icons/hicolor/scalable/apps/nix-snowflake.svg";
    -      definedAliases = [ "@no" ];
    -    };
    -
    -    "Home Manager Options" = {
    -      urls = [{
    -        template = "https://home-manager-options.extranix.com/";
    -        params = [
    -          { name = "query"; value = "{searchTerms}"; }
    -        ];
    -      }];
    -
    -      icon = "${pkgs.nixos-icons}/share/icons/hicolor/scalable/apps/nix-snowflake.svg";
    -      definedAliases = [ "@hm" "@ho" "@hmo" ];
    -    };
    -
    -    "Google".metaData.alias = "@g";
    -  };
    -  force = true; # this is required because otherwise the search.json.mozlz4 symlink gets replaced on every firefox restart
    -};
    -
    -
    -
    - -

    -:CUSTOMID: h:996e9c5f-ed65-4f4f-b043-5a901ed74358 -

    - -

    -These settings are to be used only on full NixOS setups. -

    -
    -
    @@ -1040,6 +899,18 @@ These blocks are later inserted here: Noweb-Ref blocks section. This tangles the flake.nix file; This block only needs to be touched when updating the general structure of the flake. For everything else, see the respective noweb-ref block.

    +

    +In general, a nix flake consists of one or more inputs and several outputs. The inputs are used to define where nix should be looking for packages, options, and more. The outputs generate expressions that can be used in .nix files as well as system configurations using these files. +

    + +

    +In the start, I enable some public cache repositories. This saves some time during rebuilds because it avoids building as many packages from scratch - this is mainly important for community flakes like emacs-overlay, which basically would trigger a rebuild whenever updating the flake. The repository does of course not hold everything, but it lightens the pain. +

    + +

    +In outputs = inputs@ [...], the inputs@ makes it so that all inputs are automatically passed to the outputs and can be called as inputs.<name>, whereas explicit arguments may just be called by using <name>. For most flakes this is fully sufficient, as they do not need to be called often and it saves me maintainance effort with this file. +

    +
     {
    @@ -2532,7 +2403,7 @@ I have removed most of the machines from this section. What remains are some hos
     
    -

    4.2. Overlays, packages, and modules

    +

    4.2. Additions and modifications

    In this section I define packages that I manually want to nixpkgs. This can be useful for packages that are currently awaiting a PR or public packages that I do not want to maintain. @@ -2582,6 +2453,8 @@ let "github-notifications" "screenshare" "bootstrap" + "t2ts" + "ts2t" ]; mkPackages = names: builtins.listToAttrs (map (name: { inherit name; @@ -3017,7 +2890,7 @@ This scripts checks if there are uncommited changes in either my dotfile repo, m

    CFG=$(git --git-dir="$HOME"/.dotfiles/.git --work-tree="$HOME"/.dotfiles/ status -s | wc -l)
    -CSE=$(git --git-dir="$HOME"/Documents/GitHub/CSE_TUWIEN/.git --work-tree="$HOME"/Documents/GitHub/CSE_TUWIEN/ status -s | wc -l)
    +CSE=$(git --git-dir="$DOCUMENT_DIR_PRIV"/CSE_TUWIEN/.git --work-tree="$DOCUMENT_DIR_PRIV"/CSE_TUWIEN/ status -s | wc -l)
     PASS=$(($(git --git-dir="$HOME"/.local/share/password-store/.git --work-tree="$HOME"/.local/share/password-store/ status -s | wc -l) + $(git --git-dir="$HOME"/.local/share/password-store/.git --work-tree="$HOME"/.local/share/password-store/ diff origin/main..HEAD | wc -l)))
     
     if [[ $CFG != 0 ]]; then
    @@ -3361,6 +3234,50 @@ writeShellApplication {
       runtimeInputs = [ openssh ];
       text = builtins.readFile ../../scripts/bootstrap.sh;
     }
    +
    +
    +
    +
    +
    +
    4.2.1.18. t2ts
    +
    +

    +This script allows for quick git branch switching. +

    + +
    +
    { writeShellApplication }:
    +
    +writeShellApplication {
    +  name = "t2ts";
    +  runtimeInputs = [ ];
    +  text = ''
    +    date -d"$1" +%s
    +  '';
    +}
    +
    +
    +
    +
    +
    +
    +
    4.2.1.19. ts2t
    +
    +

    +This script allows for quick git branch switching. +

    + +
    +
    { writeShellApplication }:
    +
    +writeShellApplication {
    +  name = "ts2t";
    +  runtimeInputs = [ ];
    +  text = ''
    +    date -d @"$1" 2>/dev/null || date -r "$1"
    +  '';
    +}
    +
     
    @@ -3998,6 +3915,11 @@ Another duplicated option for the filesystem.
    4.2.3.2.11. firefox
    +

    +At work I am using several services that are using SSO login - however, as I am using four different accounts at work, this becomes a chore here. Hence, I have defined multiple profiles in Work that are all practically using the same configuration. To save screen space, I template that profile here. +Set in firefox about:config > toolkit.legacyUserProfileCustomizations.stylesheets to true. This should in principle be set automatically using the below config, but it seems not to be working reliably +

    +
    { lib, pkgs, ... }:
       let
    @@ -4221,6 +4143,7 @@ This section is for setting things that should be used on hosts that are using t
         # ./safeeyes.nix
         ./distrobox.nix
         ./lid.nix
    +    ./lowbattery.nix
       ];
     
       nixpkgs.config.permittedInsecurePackages = [
    @@ -4313,8 +4236,12 @@ Mostly used to install some compilers and lsp's that I want to have available wh
         # secure boot
         sbctl
     
    +    # nix package database
         nix-index
     
    +    # proc info
    +    acpi
    +
         # better make for general tasks
         just
     
    @@ -5873,6 +5800,44 @@ This turns off the display when the lid is closed.
     
    +
    +
    4.3.1.31. Low battery notification
    +
    +

    +Since I hide the waybar completely during normal operation, I run the risk of not noticing when my battery is about to run out. This module sends a notification when the battery level falls below 10%. Written by cafkafk. +

    + +
    +
    { pkgs, lib, ... }:
    +{
    +  systemd.user.services."battery-low" = {
    +    enable = true;
    +    description = "Notify user if battery is below 10%";
    +    partOf = [ "graphical-session.target" ];
    +    wantedBy = [ "graphical-session.target" ];
    +    serviceConfig = {
    +      Type = "simple";
    +      ExecStart = pkgs.writeShellScript "battery-low-notification"
    +        ''
    +          if (( 10 >= $(${lib.getExe pkgs.acpi} -b | head -n 1 | ${lib.getExe pkgs.ripgrep} -o "\d+%" | ${lib.getExe pkgs.ripgrep} -o "\d+")));
    +          then ${lib.getExe pkgs.libnotify} --urgency=critical "low battery" "$(${lib.getExe pkgs.acpi} -b | head -n 1 | ${lib.getExe pkgs.ripgrep} -o "\d+%")";
    +          fi;
    +        '';
    +    };
    +  };
    +  systemd.user.timers."battery-low" = {
    +    wantedBy = [ "timers.target" ];
    +    timerConfig = {
    +      # Every Minute
    +      OnCalendar = "*-*-* *:*:00";
    +      Unit = "battery-low.service";
    +    };
    +  };
    +}
    +
    +
    +
    +

    4.3.2. Server

    @@ -8009,6 +7974,7 @@ This holds packages that I can use as provided, or with small modifications (as nix-output-monitor hyprpicker # color picker findutils + units # nix alejandra @@ -8168,6 +8134,8 @@ This is just a separate container for derivations defined in

    5.3.4. Better garbage collection

    +
    +
    +

    5.3.14. mini-modeline

    +
    +

    +I have found that the doom-modeline, while very useful, consumes too much screen space for my liking. This modeline takes a more minimalistic approach. +

    + +
    +
    +(use-package mini-modeline
    +  :after smart-mode-line
    +  :config
    +  (mini-modeline-mode t)
    +  (setq mini-modeline-display-gui-line nil)
    +  (setq mini-modeline-enhance-visual nil)
    +  (setq mini-modeline-truncate-p nil)
    +  (setq mini-modeline-l-format nil)
    +  (setq mini-modeline-right-padding 5)
    +  (setq window-divider-mode t)
    +  (setq window-divider-default-places t)
    +  (setq window-divider-default-bottom-width 1)
    +  (setq window-divider-default-right-width 1)
    +  (setq mini-modeline-r-format '("%e" mode-line-front-space mode-line-mule-info mode-line-client
    +                                 mode-line-modified mode-line-remote mode-line-frame-identification
    +                                 mode-line-buffer-identification " " mode-line-position " " mode-name evil-mode-line-tag ))
    +  )
    +
    +(use-package smart-mode-line
    +  :config
    +  (sml/setup)
    +  (add-to-list 'sml/replacer-regexp-list '("^~/Documents/Work/" ":WK:"))
    +  (add-to-list 'sml/replacer-regexp-list '("^~/Documents/Private/" ":PR:"))
    +  (add-to-list 'sml/replacer-regexp-list '("^~/.dotfiles/" ":D:") t)
    +  )
    +
    +
     
    -

    5.3.14. Helper Modes

    +

    5.3.15. Helper Modes

    -
    5.3.14.1. Vertico, Orderless, Marginalia, Consult, Embark
    +
    5.3.15.1. Vertico, Orderless, Marginalia, Consult, Embark

    This set of packages uses the default emacs completion framework and works together to provide a very nice user experience: @@ -12446,7 +12475,7 @@ Nerd icons is originally enabled here: -

    5.3.14.1.1. vertico
    +
    5.3.15.1.1. vertico
    -
    5.3.14.1.3. orderless
    +
    5.3.15.1.3. orderless

    When first installing orderless, I often times faced the problem, that when editing long files and calling consult-line, Emacs would hang when changing a search term in the middle (e.g. from servicse.xserver to servic.xserver in order to fix the typo). The below orderless rules have a more strict matching that has a positive impact on performance. @@ -12520,7 +12549,7 @@ When first installing orderless, I often times faced the problem, that when edit

    -
    5.3.14.1.4. consult
    +
    5.3.15.1.4. consult

    The big winner here are the convenient keybinds being setup here for general use. Also, I setup vim-navigation for minibuffer completions. consult-buffer is set twice because I am still used to that weird C-M-j command that I chose for ivy-switch-buffer when I first started using Emacs. I want to move to the other command but for now it is not feasible to delete the other one. @@ -12550,7 +12579,7 @@ The big winner here are the convenient keybinds being setup here for general use

    -
    5.3.14.1.5. embark
    +
    5.3.15.1.5. embark

    I have stripped down the embark keybinds heavily. It is very useful to me even in it's current state, but it quickly becomes overwhelming. embark-dwim acts on a candidate without closing the minibuffer, which is very useful. embark-act lets the user choose from all actions, but has an overwhelming interface. @@ -12578,7 +12607,7 @@ I have stripped down the embark keybinds heavily. It is very useful to me even i

    -
    5.3.14.1.6. embark-consult
    +
    5.3.15.1.6. embark-consult

    Provides previews for embark. @@ -12598,7 +12627,7 @@ Provides previews for embark.

    -
    5.3.14.1.7. marginalia
    +
    5.3.15.1.7. marginalia

    I set the annotation-mode of marginalia to heavy. This gives even more information on the stuff that you are looking at. One thing I am missing from ivy is the highlighting on mode-commands based on the current state of the mode. Also, I do not understand all the shorthands used by marginalia yet. @@ -12616,7 +12645,7 @@ I set the annotation-mode of marginalia to heavy. This gives even m

    -
    5.3.14.1.8. nerd-icons-completion
    +
    5.3.15.1.8. nerd-icons-completion

    As stated above, this simply provides nerd-icons to the completion framework. @@ -12637,7 +12666,7 @@ As stated above, this simply provides nerd-icons to the completion framework.

    -
    5.3.14.2. Helpful + which-key: Better help defaults
    +
    5.3.15.2. Helpful + which-key: Better help defaults

    This pair of packages provides information on keybinds in addition to function names, which makes it easier to remember keybinds (which-key). The helpful package provides a better Help framework for Emacs. For some reason, the Help windows are always being focused by the cursor even though I have set help-window-select to nil. I do not understand why. @@ -12665,7 +12694,7 @@ This pair of packages provides information on keybinds in addition to function n

    -

    5.3.15. Ligatures

    +

    5.3.16. Ligatures

    Personally, I think ligatures are fancy. With this mode, they stay 'cursorable'. However, I do not need them in all modes, so I only use them in programming modes. @@ -12697,7 +12726,7 @@ Personally, I think ligatures are fancy. With this mode, they stay 'cursorable'.

    -

    5.3.16. Popup (popper) + Shackle Buffers

    +

    5.3.17. Popup (popper) + Shackle Buffers

    The popper package allows to declare different buffers as 'popup-type', which sort of acts like a scratchpad. It can be toggled at any time using popper-toggle and the resulting frame can be freely customized (with shackle) to a certain size. It is also possible to prevent a buffer from appearing - I do this for example to the *Warnings* buffer, since usually I am not interested in it's output. @@ -12750,7 +12779,7 @@ The popper package allows to declare different buffers as 'popup-type', which so

    -

    5.3.17. Indicate first and last line of buffer

    +

    5.3.18. Indicate first and last line of buffer

    This places little angled indicators on the fringe of a window which indicate buffer boundaries. This is not super useful, but makes use of a space that I want to keep for aesthetic reasons anyways and makes it a bit more useful in the process. @@ -12765,7 +12794,7 @@ This places little angled indicators on the fringe of a window which indicate bu

    -

    5.3.18. Authentication

    +

    5.3.19. Authentication

    This defines the authentication sources used by org-calfw (Calendar) and Forge. @@ -15044,7 +15073,7 @@ Prints a reasuring message to proove good faith."

    Author: Leon Schwarzäugl

    -

    Created: 2024-12-11 Mi 01:50

    +

    Created: 2024-12-13 Fr 01:20

    Validate

    diff --git a/programs/emacs/init.el b/programs/emacs/init.el index 30a71d6..5103123 100644 --- a/programs/emacs/init.el +++ b/programs/emacs/init.el @@ -553,8 +553,9 @@ create a new one." (defvar k-gc-timer (run-with-idle-timer 15 t (lambda () - (message "Garbage Collector has run for %.06fsec" - (k-time (garbage-collect)))))) + ;; (message "Garbage Collector has run for %.06fsec" + (k-time (garbage-collect))))) + ;; ) (setq-default indent-tabs-mode nil tab-width 2)