Added lib.mkForce + backup = false
This commit is contained in:
+1
-1
@@ -2,5 +2,5 @@ use flake
|
|||||||
|
|
||||||
watch_file .envrc.private
|
watch_file .envrc.private
|
||||||
if [[ -f .envrc.private ]]; then
|
if [[ -f .envrc.private ]]; then
|
||||||
source_env .envrc.private
|
source_env .envrc.private
|
||||||
fi
|
fi
|
||||||
|
|||||||
+862
-841
File diff suppressed because it is too large
Load Diff
+42
-21
@@ -1,4 +1,4 @@
|
|||||||
gf#+OPTIONS: toc:nil broken-links:t
|
f#+OPTIONS: toc:nil broken-links:t
|
||||||
#+PROPERTY: header-args :noweb yes :results silent :mkdirp yes
|
#+PROPERTY: header-args :noweb yes :results silent :mkdirp yes
|
||||||
#+HTML: <div align="center">
|
#+HTML: <div align="center">
|
||||||
#+HTML: <div>
|
#+HTML: <div>
|
||||||
@@ -1030,7 +1030,7 @@ in
|
|||||||
};
|
};
|
||||||
|
|
||||||
# Deploy the config file for runtime visibility/debugging
|
# Deploy the config file for runtime visibility/debugging
|
||||||
environment.etc."flatpak/flatpaks.conf".source = flatpakConfPath;
|
environment.etc."flatpak/flatpaks.conf".source = lib.mkForce flatpakConfPath;
|
||||||
|
|
||||||
systemd.services.flatpak-sync = {
|
systemd.services.flatpak-sync = {
|
||||||
description = "Install Flatpak apps listed in flatpaks.conf";
|
description = "Install Flatpak apps listed in flatpaks.conf";
|
||||||
@@ -1671,7 +1671,8 @@ in
|
|||||||
{
|
{
|
||||||
# Ensure script exists in ~/.config/hypr/scripts/
|
# Ensure script exists in ~/.config/hypr/scripts/
|
||||||
xdg.configFile."${targetRel}" = {
|
xdg.configFile."${targetRel}" = {
|
||||||
source = repoScript;
|
source = lib.mkForce repoScript;
|
||||||
|
backup = lib.mkForce false;
|
||||||
executable = true;
|
executable = true;
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
@@ -1816,15 +1817,16 @@ in
|
|||||||
};
|
};
|
||||||
# Hyprpaper config (hyprpaper reads this; it does NOT need to write it)
|
# Hyprpaper config (hyprpaper reads this; it does NOT need to write it)
|
||||||
# `ipc = true` enables `hyprctl hyprpaper ...` commands. :contentReference[oaicite:0]{index=0}
|
# `ipc = true` enables `hyprctl hyprpaper ...` commands. :contentReference[oaicite:0]{index=0}
|
||||||
xdg.configFile."hypr/hyprpaper.conf".text = ''
|
xdg.configFile."hypr/hyprpaper.conf".text = lib.mkForce ''
|
||||||
ipc = true
|
ipc = true
|
||||||
splash = false
|
splash = false
|
||||||
'';
|
'';
|
||||||
|
xdg.configFile."hypr/hyprpaper.conf".backup = lib.mkForce false;
|
||||||
# Workspace wallpaper daemon: listens to socket2, applies w-<id>=... mapping
|
# Workspace wallpaper daemon: listens to socket2, applies w-<id>=... mapping
|
||||||
# Uses workspacev2 to get numeric workspace id. :contentReference[oaicite:1]{index=1}
|
# Uses workspacev2 to get numeric workspace id. :contentReference[oaicite:1]{index=1}
|
||||||
xdg.configFile."${daemonRel}" = {
|
xdg.configFile."${daemonRel}" = {
|
||||||
executable = true;
|
executable = true;
|
||||||
text = ''
|
text = lib.mkForce ''
|
||||||
#!/usr/bin/env bash
|
#!/usr/bin/env bash
|
||||||
set -euo pipefail
|
set -euo pipefail
|
||||||
: "''${XDG_RUNTIME_DIR:?XDG_RUNTIME_DIR not set}"
|
: "''${XDG_RUNTIME_DIR:?XDG_RUNTIME_DIR not set}"
|
||||||
@@ -1907,13 +1909,14 @@ in
|
|||||||
handle "''${line}" || true
|
handle "''${line}" || true
|
||||||
done
|
done
|
||||||
'';
|
'';
|
||||||
|
backup = lib.mkForce false;
|
||||||
};
|
};
|
||||||
|
|
||||||
# CLI setter in the style of your inspiration script.
|
# CLI setter in the style of your inspiration script.
|
||||||
# Usage: set-wallpaper.sh <workspace_id> <monitor> [wallpaper]
|
# Usage: set-wallpaper.sh <workspace_id> <monitor> [wallpaper]
|
||||||
xdg.configFile."${setRel}" = {
|
xdg.configFile."${setRel}" = {
|
||||||
executable = true;
|
executable = true;
|
||||||
text = ''
|
text = lib.mkForce ''
|
||||||
#!/usr/bin/env bash
|
#!/usr/bin/env bash
|
||||||
set -euo pipefail
|
set -euo pipefail
|
||||||
|
|
||||||
@@ -1956,6 +1959,7 @@ in
|
|||||||
hyprctl hyprpaper wallpaper "''${mon}, ''${wp}, fill" >/dev/null
|
hyprctl hyprpaper wallpaper "''${mon}, ''${wp}, fill" >/dev/null
|
||||||
fi
|
fi
|
||||||
'';
|
'';
|
||||||
|
backup = lib.mkForce false;
|
||||||
};
|
};
|
||||||
|
|
||||||
# Services
|
# Services
|
||||||
@@ -2002,13 +2006,15 @@ in
|
|||||||
programs.waybar.enable = true;
|
programs.waybar.enable = true;
|
||||||
# Ensure config matches repo (HM-managed symlink, not user-editable)
|
# Ensure config matches repo (HM-managed symlink, not user-editable)
|
||||||
xdg.configFile."waybar/config" = {
|
xdg.configFile."waybar/config" = {
|
||||||
source = repoWaybarDir + "/config.jsonc";
|
source = lib.mkForce repoWaybarDir + "/config.jsonc";
|
||||||
|
backup = lib.mkForce false;
|
||||||
force = true;
|
force = true;
|
||||||
};
|
};
|
||||||
# Override HM's internally-generated waybar-style.css derivation
|
# Override HM's internally-generated waybar-style.css derivation
|
||||||
# and use your repo file instead.
|
# and use your repo file instead.
|
||||||
xdg.configFile."waybar/style.css" = {
|
xdg.configFile."waybar/style.css" = {
|
||||||
source = lib.mkForce (repoWaybarDir + "/style.css");
|
source = lib.mkForce (repoWaybarDir + "/style.css");
|
||||||
|
backup = lib.mkForce false;
|
||||||
force = true;
|
force = true;
|
||||||
};
|
};
|
||||||
# Prevent HM from also trying to generate style content via programs.waybar.style
|
# Prevent HM from also trying to generate style content via programs.waybar.style
|
||||||
@@ -2029,8 +2035,10 @@ let
|
|||||||
in
|
in
|
||||||
{
|
{
|
||||||
home.packages = [ pkgs.hyprlock ];
|
home.packages = [ pkgs.hyprlock ];
|
||||||
xdg.configFile."hypr/lock.png".source = lockPngSrc;
|
xdg.configFile."hypr/lock.png".source = lib.mkForce lockPngSrc;
|
||||||
xdg.configFile."hypr/hyprlock.conf".source = hyprlockConf;
|
xdg.configFile."hypr/lock.png".backup = lib.mkForce false;
|
||||||
|
xdg.configFile."hypr/hyprlock.conf".source = lib.mkForce hyprlockConf;
|
||||||
|
xdg.configFile."hypr/hyprlock.conf".backup = lib.mkForce false;
|
||||||
}
|
}
|
||||||
#+end_src
|
#+end_src
|
||||||
|
|
||||||
@@ -2043,7 +2051,8 @@ let
|
|||||||
in
|
in
|
||||||
{
|
{
|
||||||
home.packages = [ pkgs.hypridle ];
|
home.packages = [ pkgs.hypridle ];
|
||||||
xdg.configFile."hypr/hypridle.conf".source = hypridleConf;
|
xdg.configFile."hypr/hypridle.conf".source = lib.mkForce hypridleConf;
|
||||||
|
xdg.configFile."hypr/hypridle.conf".backup = lib.mkForce false ;
|
||||||
}
|
}
|
||||||
#+end_src
|
#+end_src
|
||||||
|
|
||||||
@@ -2082,18 +2091,21 @@ in
|
|||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
# Copy repo configs/scripts into ~/.config
|
# Copy repo configs/scripts into ~/.config
|
||||||
xdg.configFile."${targetRel}".source = repoConf;
|
xdg.configFile."${targetRel}".source = lib.mkForce repoConf;
|
||||||
|
xdg.configFile."${targetRel}".backup = lib.mkForce false;
|
||||||
xdg.configFile."${targetOverflowRel}" = {
|
xdg.configFile."${targetOverflowRel}" = {
|
||||||
source = repoOverflowScript;
|
source = lib.mkForce repoOverflowScript;
|
||||||
|
backup = lib.mkForce false;
|
||||||
executable = true; # makes it chmod +x
|
executable = true; # makes it chmod +x
|
||||||
};
|
};
|
||||||
xdg.configFile."${targetPerMonitor}" = {
|
xdg.configFile."${targetPerMonitor}" = {
|
||||||
source = repoPerMonitorScript;
|
source = lib.mkForce repoPerMonitorScript;
|
||||||
|
backup = lib.mkForce false;
|
||||||
executable = true; # makes it chmod +x
|
executable = true; # makes it chmod +x
|
||||||
};
|
};
|
||||||
xdg.configFile."${targetSwitchScript}" = {
|
xdg.configFile."${targetSwitchScript}" = {
|
||||||
source = repoSwitchScript;
|
source = lib.mkForce repoSwitchScript;
|
||||||
|
backup = lib.mkForce false;
|
||||||
executable = true; # makes it chmod +x
|
executable = true; # makes it chmod +x
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
@@ -2113,8 +2125,10 @@ in
|
|||||||
xdg.enable = true;
|
xdg.enable = true;
|
||||||
home.packages = [ pkgs.hyprshell ];
|
home.packages = [ pkgs.hyprshell ];
|
||||||
# Link repo -> ~/.config/hyprshell/...
|
# Link repo -> ~/.config/hyprshell/...
|
||||||
xdg.configFile."hyprshell/config.ron".source = cfgRon;
|
xdg.configFile."hyprshell/config.ron".source = lib.mkForce cfgRon;
|
||||||
xdg.configFile."hyprshell/styles.css".source = cssFile;
|
xdg.configFile."hyprshell/config.ron".backup = lib.mkForce false;
|
||||||
|
xdg.configFile."hyprshell/styles.css".source = lib.mkForce cssFile;
|
||||||
|
xdg.configFile."hyprshell/styles.css".backup = lib.mkForce false;
|
||||||
# Autostart (systemd user service)
|
# Autostart (systemd user service)
|
||||||
systemd.user.services.hyprshell = {
|
systemd.user.services.hyprshell = {
|
||||||
Unit = {
|
Unit = {
|
||||||
@@ -2160,7 +2174,8 @@ in
|
|||||||
|
|
||||||
};
|
};
|
||||||
xdg.configFile."hypr/scripts/lid-lock.sh" = {
|
xdg.configFile."hypr/scripts/lid-lock.sh" = {
|
||||||
source = flakeRoot + "/assets/conf/desktop/hypr/scripts/lid-lock.sh";
|
source = lib.mkForce flakeRoot + "/assets/conf/desktop/hypr/scripts/lid-lock.sh";
|
||||||
|
backup = lib.mkForce false;
|
||||||
executable = true;
|
executable = true;
|
||||||
};
|
};
|
||||||
xdg.portal = {
|
xdg.portal = {
|
||||||
@@ -2201,10 +2216,14 @@ in
|
|||||||
xdg.enable = true;
|
xdg.enable = true;
|
||||||
home.packages = [ walkerPkg elephantPkg ];
|
home.packages = [ walkerPkg elephantPkg ];
|
||||||
# ~/.config/walker/themes/*
|
# ~/.config/walker/themes/*
|
||||||
xdg.configFile."walker/themes/frosted/default.css".source = repoThemesDir + "/themes/frosted/default.css";
|
xdg.configFile."walker/themes/frosted/default.css".source = lib.mkForce repoThemesDir + "/themes/frosted/default.css";
|
||||||
|
xdg.configFile."walker/themes/frosted/default.css".backup = lib.mkForce false;
|
||||||
xdg.configFile."walker/themes/frosted/style.css".source = repoThemesDir + "/themes/frosted/style.css";
|
xdg.configFile."walker/themes/frosted/style.css".source = repoThemesDir + "/themes/frosted/style.css";
|
||||||
|
xdg.configFile."walker/themes/frosted/style.css".backup = lib.mkForce false;
|
||||||
xdg.configFile."walker/config.toml".source = repoThemesDir + "/config.toml";
|
xdg.configFile."walker/config.toml".source = repoThemesDir + "/config.toml";
|
||||||
# xdg.configFile."walker/themes/default.html".source = repoThemesDir + "/default.html";
|
xdg.configFile."walker/config.toml".backup = lib.mkForce false;
|
||||||
|
# xdg.configFile."walker/themes/default.html".source = lib.mkForce repoThemesDir + "/default.html";
|
||||||
|
# xdg.configFile."walker/themes/default.html".backup = lib.mkForce false;
|
||||||
# (services unchanged)
|
# (services unchanged)
|
||||||
systemd.user.services.elephant = { /* ... your existing service ... */ };
|
systemd.user.services.elephant = { /* ... your existing service ... */ };
|
||||||
systemd.user.services.walker = { /* ... your existing service ... */ };
|
systemd.user.services.walker = { /* ... your existing service ... */ };
|
||||||
@@ -2299,6 +2318,7 @@ in
|
|||||||
programs.alacritty.enable = true;
|
programs.alacritty.enable = true;
|
||||||
# Override the config generated by programs.alacritty
|
# Override the config generated by programs.alacritty
|
||||||
xdg.configFile."alacritty/alacritty.toml".source = lib.mkForce repoAlacrittyConf;
|
xdg.configFile."alacritty/alacritty.toml".source = lib.mkForce repoAlacrittyConf;
|
||||||
|
xdg.configFile."alacritty/alacritty.toml".backup = lib.mkForce false
|
||||||
catppuccin.alacritty.enable = true;
|
catppuccin.alacritty.enable = true;
|
||||||
catppuccin.alacritty.flavor = "mocha";
|
catppuccin.alacritty.flavor = "mocha";
|
||||||
}
|
}
|
||||||
@@ -2365,7 +2385,8 @@ in
|
|||||||
{
|
{
|
||||||
xdg.enable = true;
|
xdg.enable = true;
|
||||||
# Stable theme file so kitty.conf can include it without /nix/store paths
|
# Stable theme file so kitty.conf can include it without /nix/store paths
|
||||||
xdg.configFile."kitty/themes/Catppuccin-Mocha.conf".text = catppuccinMochaConf;
|
xdg.configFile."kitty/themes/Catppuccin-Mocha.conf".text = lib.mkForce catppuccinMochaConf;
|
||||||
|
xdg.configFile."kitty/themes/Catppuccin-Mocha.conf".backup = lib.mkForce false;
|
||||||
programs.kitty = {
|
programs.kitty = {
|
||||||
enable = true;
|
enable = true;
|
||||||
# Home Manager generates ~/.config/kitty/kitty.conf; we append in-order:
|
# Home Manager generates ~/.config/kitty/kitty.conf; we append in-order:
|
||||||
|
|||||||
@@ -86,7 +86,7 @@ in
|
|||||||
};
|
};
|
||||||
|
|
||||||
# Deploy the config file for runtime visibility/debugging
|
# Deploy the config file for runtime visibility/debugging
|
||||||
environment.etc."flatpak/flatpaks.conf".source = flatpakConfPath;
|
environment.etc."flatpak/flatpaks.conf".source = lib.mkForce flatpakConfPath;
|
||||||
|
|
||||||
systemd.services.flatpak-sync = {
|
systemd.services.flatpak-sync = {
|
||||||
description = "Install Flatpak apps listed in flatpaks.conf";
|
description = "Install Flatpak apps listed in flatpaks.conf";
|
||||||
|
|||||||
@@ -1,24 +1,24 @@
|
|||||||
{ user, ... } :
|
{ user, ... } :
|
||||||
let
|
let
|
||||||
locale = user.locale;
|
locale = user.locale;
|
||||||
defaultLocale = "nl_NL.UTF-8";
|
defaultLocale = "nl_NL.UTF-8";
|
||||||
in
|
in
|
||||||
{
|
{
|
||||||
# Set your time zone.
|
# Set your time zone.
|
||||||
time.timeZone = "Europe/Amsterdam";
|
time.timeZone = "Europe/Amsterdam";
|
||||||
|
|
||||||
# Select internationalisation properties.
|
# Select internationalisation properties.
|
||||||
i18n.defaultLocale = defaultLocale;
|
i18n.defaultLocale = defaultLocale;
|
||||||
|
|
||||||
i18n.extraLocaleSettings = {
|
i18n.extraLocaleSettings = {
|
||||||
LC_ADDRESS = locale;
|
LC_ADDRESS = locale;
|
||||||
LC_IDENTIFICATION = locale;
|
LC_IDENTIFICATION = locale;
|
||||||
LC_MEASUREMENT = locale;
|
LC_MEASUREMENT = locale;
|
||||||
LC_MONETARY = locale;
|
LC_MONETARY = locale;
|
||||||
LC_NAME = locale;
|
LC_NAME = locale;
|
||||||
LC_NUMERIC = locale;
|
LC_NUMERIC = locale;
|
||||||
LC_PAPER = locale;
|
LC_PAPER = locale;
|
||||||
LC_TELEPHONE = locale;
|
LC_TELEPHONE = locale;
|
||||||
LC_TIME = defaultLocale;
|
LC_TIME = defaultLocale;
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,14 +1,14 @@
|
|||||||
{ pkgs, user, ... } :
|
{ pkgs, user, ... } :
|
||||||
{
|
{
|
||||||
environment.systemPackages = with pkgs; [
|
environment.systemPackages = with pkgs; [
|
||||||
tuigreet
|
tuigreet
|
||||||
];
|
];
|
||||||
services.greetd = {
|
services.greetd = {
|
||||||
enable = true;
|
enable = true;
|
||||||
settings = {
|
settings = {
|
||||||
default_session = {
|
default_session = {
|
||||||
command = pkgs.lib.mkForce "${pkgs.tuigreet}/bin/tuigreet --remember --time --time-format '%I:%M %p | %a • %h | %F'";
|
command = pkgs.lib.mkForce "${pkgs.tuigreet}/bin/tuigreet --remember --time --time-format '%I:%M %p | %a • %h | %F'";
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,38 +1,38 @@
|
|||||||
{ pkgs, user, ... } :
|
{ pkgs, user, ... } :
|
||||||
{
|
{
|
||||||
nix.settings = {
|
nix.settings = {
|
||||||
# enable flakes
|
# enable flakes
|
||||||
experimental-features = ["nix-command" "flakes"];
|
experimental-features = ["nix-command" "flakes"];
|
||||||
|
|
||||||
# add a cache that speed up new applications by downloading binaries
|
# add a cache that speed up new applications by downloading binaries
|
||||||
# from the trusted cache instead of compiling from sourcer
|
# from the trusted cache instead of compiling from sourcer
|
||||||
substituters = [
|
substituters = [
|
||||||
"https://nix-community.cachix.org"
|
"https://nix-community.cachix.org"
|
||||||
];
|
];
|
||||||
# trust the cache public key
|
# trust the cache public key
|
||||||
trusted-public-keys = [
|
trusted-public-keys = [
|
||||||
"nix-community.cachix.org-1:mB9FSh9qf2dCimDSUo8Zy7bkq5CX+/rkCWyvRCYg3Fs="
|
"nix-community.cachix.org-1:mB9FSh9qf2dCimDSUo8Zy7bkq5CX+/rkCWyvRCYg3Fs="
|
||||||
];
|
];
|
||||||
};
|
};
|
||||||
|
|
||||||
# allow proprietary software on this machine. I'm not a purist.
|
# allow proprietary software on this machine. I'm not a purist.
|
||||||
nixpkgs.config.allowUnfree = true;
|
nixpkgs.config.allowUnfree = true;
|
||||||
# unityhub depends on this... for now
|
# unityhub depends on this... for now
|
||||||
nixpkgs.config.permittedInsecurePackages = [ "libxml2-2.13.8" ];
|
nixpkgs.config.permittedInsecurePackages = [ "libxml2-2.13.8" ];
|
||||||
|
|
||||||
# this declares how often old configurations are cleared up.
|
# this declares how often old configurations are cleared up.
|
||||||
# i cleanup anything older than a week, every week.
|
# i cleanup anything older than a week, every week.
|
||||||
nix.gc = {
|
nix.gc = {
|
||||||
automatic = true;
|
automatic = true;
|
||||||
options = "--delete-older-than 7d";
|
options = "--delete-older-than 7d";
|
||||||
dates = "weekly";
|
dates = "weekly";
|
||||||
};
|
};
|
||||||
|
|
||||||
programs = {
|
programs = {
|
||||||
# command line utility that makes applying changes easy and pretty
|
# command line utility that makes applying changes easy and pretty
|
||||||
nh = {
|
nh = {
|
||||||
enable = true;
|
enable = true;
|
||||||
flake = "/home/${user.username}/system";
|
flake = "/home/${user.username}/system";
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,23 +1,23 @@
|
|||||||
{ user, ...} :
|
{ user, ...} :
|
||||||
{
|
{
|
||||||
services = {
|
services = {
|
||||||
blueman.enable = true; # bluetooth manager
|
blueman.enable = true; # bluetooth manager
|
||||||
fwupd.enable = true; # firmware updating service
|
fwupd.enable = true; # firmware updating service
|
||||||
fstrim.enable = true; # ssd maintenance service
|
fstrim.enable = true; # ssd maintenance service
|
||||||
thermald.enable = true; # thermal regulation service
|
thermald.enable = true; # thermal regulation service
|
||||||
printing.enable = true; # printing services, cups
|
printing.enable = true; # printing services, cups
|
||||||
gnome.gnome-keyring.enable = true; # keyring
|
gnome.gnome-keyring.enable = true; # keyring
|
||||||
flatpak.enable = true; # allow installing things from flatpaks
|
flatpak.enable = true; # allow installing things from flatpaks
|
||||||
#flatpak remote-add --if-not-exists flathub https://flathub.org/repo/flathub.flatpakrepo
|
#flatpak remote-add --if-not-exists flathub https://flathub.org/repo/flathub.flatpakrepo
|
||||||
|
|
||||||
# printer discovery
|
# printer discovery
|
||||||
avahi = {
|
avahi = {
|
||||||
enable = true;
|
enable = true;
|
||||||
nssmdns4 = true;
|
nssmdns4 = true;
|
||||||
openFirewall = true;
|
openFirewall = true;
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
virtualisation.docker.enable = true; # enable docker
|
virtualisation.docker.enable = true; # enable docker
|
||||||
users.users.${user.username}.extraGroups = [ "docker" ]; # add self to docker user group
|
users.users.${user.username}.extraGroups = [ "docker" ]; # add self to docker user group
|
||||||
}
|
}
|
||||||
|
|||||||
+28
-28
@@ -1,42 +1,42 @@
|
|||||||
{
|
{
|
||||||
description = "Henrov's nixos configuration";
|
description = "Henrov's nixos configuration";
|
||||||
inputs = {
|
inputs = {
|
||||||
nixpkgs.url = "github:nixos/nixpkgs/nixos-unstable";
|
nixpkgs.url = "github:nixos/nixpkgs/nixos-unstable";
|
||||||
home-manager = {
|
home-manager = {
|
||||||
url = "github:nix-community/home-manager";
|
url = "github:nix-community/home-manager";
|
||||||
inputs.nixpkgs.follows = "nixpkgs";
|
inputs.nixpkgs.follows = "nixpkgs";
|
||||||
};
|
};
|
||||||
emacs-overlay = {
|
emacs-overlay = {
|
||||||
url = "github:nix-community/emacs-overlay";
|
url = "github:nix-community/emacs-overlay";
|
||||||
inputs.nixpkgs.follows = "nixpkgs";
|
inputs.nixpkgs.follows = "nixpkgs";
|
||||||
};
|
};
|
||||||
catppuccin = {
|
catppuccin = {
|
||||||
url = "github:catppuccin/nix";
|
url = "github:catppuccin/nix";
|
||||||
inputs.nixpkgs.follows = "nixpkgs";
|
inputs.nixpkgs.follows = "nixpkgs";
|
||||||
};
|
};
|
||||||
zen-browser = {
|
zen-browser = {
|
||||||
url = "github:youwen5/zen-browser-flake";
|
url = "github:youwen5/zen-browser-flake";
|
||||||
inputs.nixpkgs.follows = "nixpkgs";
|
inputs.nixpkgs.follows = "nixpkgs";
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
outputs = inputs@{
|
outputs = inputs@{
|
||||||
nixpkgs,
|
nixpkgs,
|
||||||
home-manager,
|
home-manager,
|
||||||
emacs-overlay,
|
emacs-overlay,
|
||||||
catppuccin,
|
catppuccin,
|
||||||
...
|
...
|
||||||
}:
|
}:
|
||||||
let
|
let
|
||||||
user = import ./user.nix;
|
user = import ./user.nix;
|
||||||
lib = nixpkgs.lib;
|
lib = nixpkgs.lib;
|
||||||
machines = [
|
machines = [
|
||||||
"traveldroid"
|
"traveldroid"
|
||||||
];
|
];
|
||||||
pkgs = import nixpkgs {
|
pkgs = import nixpkgs {
|
||||||
inherit (user) system;
|
inherit (user) system;
|
||||||
};
|
};
|
||||||
in
|
in
|
||||||
{
|
{
|
||||||
nixosConfigurations = builtins.listToAttrs (
|
nixosConfigurations = builtins.listToAttrs (
|
||||||
builtins.map (machine: {
|
builtins.map (machine: {
|
||||||
name = machine;
|
name = machine;
|
||||||
@@ -84,6 +84,6 @@
|
|||||||
nixfmt-rfc-style
|
nixfmt-rfc-style
|
||||||
];
|
];
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,23 +1,23 @@
|
|||||||
{ pkgs, lib, user, config, ...} :
|
{ pkgs, lib, user, config, ...} :
|
||||||
{
|
{
|
||||||
nixpkgs.hostPlatform = lib.mkDefault user.system; # x86_64-linux
|
nixpkgs.hostPlatform = lib.mkDefault user.system; # x86_64-linux
|
||||||
powerManagement.cpuFreqGovernor = lib.mkDefault "powersave"; # enable power saving on the cpu
|
powerManagement.cpuFreqGovernor = lib.mkDefault "powersave"; # enable power saving on the cpu
|
||||||
|
|
||||||
# update cpu microcode with firmware that allows redistribution
|
# update cpu microcode with firmware that allows redistribution
|
||||||
hardware.cpu.intel.updateMicrocode = lib.mkDefault config.hardware.enableRedistributableFirmware;
|
hardware.cpu.intel.updateMicrocode = lib.mkDefault config.hardware.enableRedistributableFirmware;
|
||||||
|
|
||||||
hardware = {
|
hardware = {
|
||||||
# always enable bluetooth
|
# always enable bluetooth
|
||||||
bluetooth.enable = true;
|
bluetooth.enable = true;
|
||||||
|
|
||||||
# always enable graphics drivers and enable a bunch of layers for it (including vulkan validation)
|
# always enable graphics drivers and enable a bunch of layers for it (including vulkan validation)
|
||||||
graphics = {
|
graphics = {
|
||||||
enable = true;
|
enable = true;
|
||||||
extraPackages = with pkgs; [
|
extraPackages = with pkgs; [
|
||||||
vulkan-validation-layers # helps catch and debug vulkan crashes
|
vulkan-validation-layers # helps catch and debug vulkan crashes
|
||||||
];
|
];
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
hardware.enableAllFirmware = true; # enable all firmware regardless of license
|
hardware.enableAllFirmware = true; # enable all firmware regardless of license
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,9 +1,9 @@
|
|||||||
{ pkgs, ...}:
|
{ pkgs, ...}:
|
||||||
{
|
{
|
||||||
gtk = {
|
gtk = {
|
||||||
enable = true;
|
enable = true;
|
||||||
colorScheme = "dark";
|
colorScheme = "dark";
|
||||||
theme = {
|
theme = {
|
||||||
name = "Catppuccin-GTK-Grey-Dark-Compact";
|
name = "Catppuccin-GTK-Grey-Dark-Compact";
|
||||||
package = (pkgs.magnetic-catppuccin-gtk.override {
|
package = (pkgs.magnetic-catppuccin-gtk.override {
|
||||||
accent = [ "grey" ];
|
accent = [ "grey" ];
|
||||||
@@ -11,12 +11,12 @@
|
|||||||
tweaks = [ "black" ];
|
tweaks = [ "black" ];
|
||||||
size = "compact";
|
size = "compact";
|
||||||
});
|
});
|
||||||
};
|
};
|
||||||
iconTheme.name = "Papirus-Dark";
|
iconTheme.name = "Papirus-Dark";
|
||||||
};
|
};
|
||||||
catppuccin.enable = true;
|
catppuccin.enable = true;
|
||||||
catppuccin.flavor = "mocha";
|
catppuccin.flavor = "mocha";
|
||||||
catppuccin.accent = "blue";
|
catppuccin.accent = "blue";
|
||||||
catppuccin.gtk.icon.enable = true;
|
catppuccin.gtk.icon.enable = true;
|
||||||
catppuccin.cursors.enable = true;
|
catppuccin.cursors.enable = true;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -4,5 +4,6 @@ let
|
|||||||
in
|
in
|
||||||
{
|
{
|
||||||
home.packages = [ pkgs.hypridle ];
|
home.packages = [ pkgs.hypridle ];
|
||||||
xdg.configFile."hypr/hypridle.conf".source = hypridleConf;
|
xdg.configFile."hypr/hypridle.conf".source = lib.mkForce hypridleConf;
|
||||||
|
xdg.configFile."hypr/hypridle.conf".backup = lib.mkForce false ;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -20,7 +20,8 @@ in
|
|||||||
|
|
||||||
};
|
};
|
||||||
xdg.configFile."hypr/scripts/lid-lock.sh" = {
|
xdg.configFile."hypr/scripts/lid-lock.sh" = {
|
||||||
source = flakeRoot + "/assets/conf/desktop/hypr/scripts/lid-lock.sh";
|
source = lib.mkForce flakeRoot + "/assets/conf/desktop/hypr/scripts/lid-lock.sh";
|
||||||
|
backup = lib.mkForce false;
|
||||||
executable = true;
|
executable = true;
|
||||||
};
|
};
|
||||||
xdg.portal = {
|
xdg.portal = {
|
||||||
|
|||||||
@@ -5,6 +5,8 @@ let
|
|||||||
in
|
in
|
||||||
{
|
{
|
||||||
home.packages = [ pkgs.hyprlock ];
|
home.packages = [ pkgs.hyprlock ];
|
||||||
xdg.configFile."hypr/lock.png".source = lockPngSrc;
|
xdg.configFile."hypr/lock.png".source = lib.mkForce lockPngSrc;
|
||||||
xdg.configFile."hypr/hyprlock.conf".source = hyprlockConf;
|
xdg.configFile."hypr/lock.png".backup = lib.mkForce false;
|
||||||
|
xdg.configFile."hypr/hyprlock.conf".source = lib.mkForce hyprlockConf;
|
||||||
|
xdg.configFile."hypr/hyprlock.conf".backup = lib.mkForce false;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -30,18 +30,21 @@ in
|
|||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
# Copy repo configs/scripts into ~/.config
|
# Copy repo configs/scripts into ~/.config
|
||||||
xdg.configFile."${targetRel}".source = repoConf;
|
xdg.configFile."${targetRel}".source = lib.mkForce repoConf;
|
||||||
|
xdg.configFile."${targetRel}".backup = lib.mkForce false;
|
||||||
xdg.configFile."${targetOverflowRel}" = {
|
xdg.configFile."${targetOverflowRel}" = {
|
||||||
source = repoOverflowScript;
|
source = lib.mkForce repoOverflowScript;
|
||||||
|
backup = lib.mkForce false;
|
||||||
executable = true; # makes it chmod +x
|
executable = true; # makes it chmod +x
|
||||||
};
|
};
|
||||||
xdg.configFile."${targetPerMonitor}" = {
|
xdg.configFile."${targetPerMonitor}" = {
|
||||||
source = repoPerMonitorScript;
|
source = lib.mkForce repoPerMonitorScript;
|
||||||
|
backup = lib.mkForce false;
|
||||||
executable = true; # makes it chmod +x
|
executable = true; # makes it chmod +x
|
||||||
};
|
};
|
||||||
xdg.configFile."${targetSwitchScript}" = {
|
xdg.configFile."${targetSwitchScript}" = {
|
||||||
source = repoSwitchScript;
|
source = lib.mkForce repoSwitchScript;
|
||||||
|
backup = lib.mkForce false;
|
||||||
executable = true; # makes it chmod +x
|
executable = true; # makes it chmod +x
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -9,8 +9,10 @@ in
|
|||||||
xdg.enable = true;
|
xdg.enable = true;
|
||||||
home.packages = [ pkgs.hyprshell ];
|
home.packages = [ pkgs.hyprshell ];
|
||||||
# Link repo -> ~/.config/hyprshell/...
|
# Link repo -> ~/.config/hyprshell/...
|
||||||
xdg.configFile."hyprshell/config.ron".source = cfgRon;
|
xdg.configFile."hyprshell/config.ron".source = lib.mkForce cfgRon;
|
||||||
xdg.configFile."hyprshell/styles.css".source = cssFile;
|
xdg.configFile."hyprshell/config.ron".backup = lib.mkForce false;
|
||||||
|
xdg.configFile."hyprshell/styles.css".source = lib.mkForce cssFile;
|
||||||
|
xdg.configFile."hyprshell/styles.css".backup = lib.mkForce false;
|
||||||
# Autostart (systemd user service)
|
# Autostart (systemd user service)
|
||||||
systemd.user.services.hyprshell = {
|
systemd.user.services.hyprshell = {
|
||||||
Unit = {
|
Unit = {
|
||||||
|
|||||||
@@ -7,7 +7,8 @@ in
|
|||||||
{
|
{
|
||||||
# Ensure script exists in ~/.config/hypr/scripts/
|
# Ensure script exists in ~/.config/hypr/scripts/
|
||||||
xdg.configFile."${targetRel}" = {
|
xdg.configFile."${targetRel}" = {
|
||||||
source = repoScript;
|
source = lib.mkForce repoScript;
|
||||||
|
backup = lib.mkForce false;
|
||||||
executable = true;
|
executable = true;
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -16,10 +16,14 @@ in
|
|||||||
xdg.enable = true;
|
xdg.enable = true;
|
||||||
home.packages = [ walkerPkg elephantPkg ];
|
home.packages = [ walkerPkg elephantPkg ];
|
||||||
# ~/.config/walker/themes/*
|
# ~/.config/walker/themes/*
|
||||||
xdg.configFile."walker/themes/frosted/default.css".source = repoThemesDir + "/themes/frosted/default.css";
|
xdg.configFile."walker/themes/frosted/default.css".source = lib.mkForce repoThemesDir + "/themes/frosted/default.css";
|
||||||
|
xdg.configFile."walker/themes/frosted/default.css".backup = lib.mkForce false;
|
||||||
xdg.configFile."walker/themes/frosted/style.css".source = repoThemesDir + "/themes/frosted/style.css";
|
xdg.configFile."walker/themes/frosted/style.css".source = repoThemesDir + "/themes/frosted/style.css";
|
||||||
|
xdg.configFile."walker/themes/frosted/style.css".backup = lib.mkForce false;
|
||||||
xdg.configFile."walker/config.toml".source = repoThemesDir + "/config.toml";
|
xdg.configFile."walker/config.toml".source = repoThemesDir + "/config.toml";
|
||||||
# xdg.configFile."walker/themes/default.html".source = repoThemesDir + "/default.html";
|
xdg.configFile."walker/config.toml".backup = lib.mkForce false;
|
||||||
|
# xdg.configFile."walker/themes/default.html".source = lib.mkForce repoThemesDir + "/default.html";
|
||||||
|
# xdg.configFile."walker/themes/default.html".backup = lib.mkForce false;
|
||||||
# (services unchanged)
|
# (services unchanged)
|
||||||
systemd.user.services.elephant = { /* ... your existing service ... */ };
|
systemd.user.services.elephant = { /* ... your existing service ... */ };
|
||||||
systemd.user.services.walker = { /* ... your existing service ... */ };
|
systemd.user.services.walker = { /* ... your existing service ... */ };
|
||||||
|
|||||||
@@ -6,13 +6,15 @@ in
|
|||||||
programs.waybar.enable = true;
|
programs.waybar.enable = true;
|
||||||
# Ensure config matches repo (HM-managed symlink, not user-editable)
|
# Ensure config matches repo (HM-managed symlink, not user-editable)
|
||||||
xdg.configFile."waybar/config" = {
|
xdg.configFile."waybar/config" = {
|
||||||
source = repoWaybarDir + "/config.jsonc";
|
source = lib.mkForce repoWaybarDir + "/config.jsonc";
|
||||||
|
backup = lib.mkForce false;
|
||||||
force = true;
|
force = true;
|
||||||
};
|
};
|
||||||
# Override HM's internally-generated waybar-style.css derivation
|
# Override HM's internally-generated waybar-style.css derivation
|
||||||
# and use your repo file instead.
|
# and use your repo file instead.
|
||||||
xdg.configFile."waybar/style.css" = {
|
xdg.configFile."waybar/style.css" = {
|
||||||
source = lib.mkForce (repoWaybarDir + "/style.css");
|
source = lib.mkForce (repoWaybarDir + "/style.css");
|
||||||
|
backup = lib.mkForce false;
|
||||||
force = true;
|
force = true;
|
||||||
};
|
};
|
||||||
# Prevent HM from also trying to generate style content via programs.waybar.style
|
# Prevent HM from also trying to generate style content via programs.waybar.style
|
||||||
|
|||||||
@@ -30,15 +30,16 @@ in
|
|||||||
};
|
};
|
||||||
# Hyprpaper config (hyprpaper reads this; it does NOT need to write it)
|
# Hyprpaper config (hyprpaper reads this; it does NOT need to write it)
|
||||||
# `ipc = true` enables `hyprctl hyprpaper ...` commands. :contentReference[oaicite:0]{index=0}
|
# `ipc = true` enables `hyprctl hyprpaper ...` commands. :contentReference[oaicite:0]{index=0}
|
||||||
xdg.configFile."hypr/hyprpaper.conf".text = ''
|
xdg.configFile."hypr/hyprpaper.conf".text = lib.mkForce ''
|
||||||
ipc = true
|
ipc = true
|
||||||
splash = false
|
splash = false
|
||||||
'';
|
'';
|
||||||
|
xdg.configFile."hypr/hyprpaper.conf".backup = lib.mkForce false;
|
||||||
# Workspace wallpaper daemon: listens to socket2, applies w-<id>=... mapping
|
# Workspace wallpaper daemon: listens to socket2, applies w-<id>=... mapping
|
||||||
# Uses workspacev2 to get numeric workspace id. :contentReference[oaicite:1]{index=1}
|
# Uses workspacev2 to get numeric workspace id. :contentReference[oaicite:1]{index=1}
|
||||||
xdg.configFile."${daemonRel}" = {
|
xdg.configFile."${daemonRel}" = {
|
||||||
executable = true;
|
executable = true;
|
||||||
text = ''
|
text = lib.mkForce ''
|
||||||
#!/usr/bin/env bash
|
#!/usr/bin/env bash
|
||||||
set -euo pipefail
|
set -euo pipefail
|
||||||
: "''${XDG_RUNTIME_DIR:?XDG_RUNTIME_DIR not set}"
|
: "''${XDG_RUNTIME_DIR:?XDG_RUNTIME_DIR not set}"
|
||||||
@@ -121,13 +122,14 @@ in
|
|||||||
handle "''${line}" || true
|
handle "''${line}" || true
|
||||||
done
|
done
|
||||||
'';
|
'';
|
||||||
|
backup = lib.mkForce false;
|
||||||
};
|
};
|
||||||
|
|
||||||
# CLI setter in the style of your inspiration script.
|
# CLI setter in the style of your inspiration script.
|
||||||
# Usage: set-wallpaper.sh <workspace_id> <monitor> [wallpaper]
|
# Usage: set-wallpaper.sh <workspace_id> <monitor> [wallpaper]
|
||||||
xdg.configFile."${setRel}" = {
|
xdg.configFile."${setRel}" = {
|
||||||
executable = true;
|
executable = true;
|
||||||
text = ''
|
text = lib.mkForce ''
|
||||||
#!/usr/bin/env bash
|
#!/usr/bin/env bash
|
||||||
set -euo pipefail
|
set -euo pipefail
|
||||||
|
|
||||||
@@ -170,6 +172,7 @@ in
|
|||||||
hyprctl hyprpaper wallpaper "''${mon}, ''${wp}, fill" >/dev/null
|
hyprctl hyprpaper wallpaper "''${mon}, ''${wp}, fill" >/dev/null
|
||||||
fi
|
fi
|
||||||
'';
|
'';
|
||||||
|
backup = lib.mkForce false;
|
||||||
};
|
};
|
||||||
|
|
||||||
# Services
|
# Services
|
||||||
|
|||||||
@@ -7,6 +7,7 @@ in
|
|||||||
programs.alacritty.enable = true;
|
programs.alacritty.enable = true;
|
||||||
# Override the config generated by programs.alacritty
|
# Override the config generated by programs.alacritty
|
||||||
xdg.configFile."alacritty/alacritty.toml".source = lib.mkForce repoAlacrittyConf;
|
xdg.configFile."alacritty/alacritty.toml".source = lib.mkForce repoAlacrittyConf;
|
||||||
|
xdg.configFile."alacritty/alacritty.toml".backup = lib.mkForce false
|
||||||
catppuccin.alacritty.enable = true;
|
catppuccin.alacritty.enable = true;
|
||||||
catppuccin.alacritty.flavor = "mocha";
|
catppuccin.alacritty.flavor = "mocha";
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,10 +1,10 @@
|
|||||||
{ pkgs, ... }:
|
{ pkgs, ... }:
|
||||||
{
|
{
|
||||||
programs.emacs = {
|
programs.emacs = {
|
||||||
enable = true;
|
enable = true;
|
||||||
# install with tree sitter enabled
|
# install with tree sitter enabled
|
||||||
package = (pkgs.emacs-pgtk.override { withTreeSitter = true; });
|
package = (pkgs.emacs-pgtk.override { withTreeSitter = true; });
|
||||||
extraPackages = epkgs: [
|
extraPackages = epkgs: [
|
||||||
# also install all tree sitter grammars
|
# also install all tree sitter grammars
|
||||||
epkgs.manualPackages.treesit-grammars.with-all-grammars
|
epkgs.manualPackages.treesit-grammars.with-all-grammars
|
||||||
epkgs.nerd-icons # nerd fonts support
|
epkgs.nerd-icons # nerd fonts support
|
||||||
@@ -45,23 +45,23 @@
|
|||||||
epkgs.sideline # mainly for flymake errors on the side
|
epkgs.sideline # mainly for flymake errors on the side
|
||||||
epkgs.sideline-flymake # mainly for flymake errors on the side
|
epkgs.sideline-flymake # mainly for flymake errors on the side
|
||||||
epkgs.sideline-eglot # mainly for flymake errors on the side
|
epkgs.sideline-eglot # mainly for flymake errors on the side
|
||||||
];
|
];
|
||||||
};
|
};
|
||||||
home.sessionVariables = {
|
home.sessionVariables = {
|
||||||
EDITOR = "emacs";
|
EDITOR = "emacs";
|
||||||
XDG_SCREENSHOTS_DIR = "~/screenshots";
|
XDG_SCREENSHOTS_DIR = "~/screenshots";
|
||||||
};
|
};
|
||||||
home.file = {
|
home.file = {
|
||||||
emacs-init = {
|
emacs-init = {
|
||||||
source = ./early-init.el;
|
source = ./early-init.el;
|
||||||
target = ".emacs.d/early-init.el";
|
target = ".emacs.d/early-init.el";
|
||||||
};
|
};
|
||||||
emacs = {
|
emacs = {
|
||||||
source = ./init.el;
|
source = ./init.el;
|
||||||
target = ".emacs.d/init.el";
|
target = ".emacs.d/init.el";
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
services.nextcloud-client = {
|
services.nextcloud-client = {
|
||||||
enable = true;
|
enable = true;
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,11 +1,11 @@
|
|||||||
;;; package --- early init -*- lexical-binding: t -*-
|
;;; package --- early init -*- lexical-binding: t -*-
|
||||||
;;; Commentary:
|
;;; Commentary:
|
||||||
;;; Prevents white flash and better Emacs defaults
|
;;; Prevents white flash and better Emacs defaults
|
||||||
;;; Code:
|
;;; Code:
|
||||||
(set-language-environment "UTF-8")
|
(set-language-environment "UTF-8")
|
||||||
(setq-default
|
(setq-default
|
||||||
default-frame-alist
|
default-frame-alist
|
||||||
'((background-color . "#1e1e2e")
|
'((background-color . "#1e1e2e")
|
||||||
(bottom-divider-width . 1) ; Thin horizontal window divider
|
(bottom-divider-width . 1) ; Thin horizontal window divider
|
||||||
(foreground-color . "#bac2de") ; Default foreground color
|
(foreground-color . "#bac2de") ; Default foreground color
|
||||||
(fullscreen . maximized) ; Maximize the window by default
|
(fullscreen . maximized) ; Maximize the window by default
|
||||||
@@ -17,76 +17,76 @@
|
|||||||
(tool-bar-lines . 0) ; No tool bar
|
(tool-bar-lines . 0) ; No tool bar
|
||||||
(undecorated . t) ; Remove extraneous X decorations
|
(undecorated . t) ; Remove extraneous X decorations
|
||||||
(vertical-scroll-bars . nil)) ; No vertical scroll-bars
|
(vertical-scroll-bars . nil)) ; No vertical scroll-bars
|
||||||
user-full-name "Henrov henrov" ; ME!
|
user-full-name "Henrov henrov" ; ME!
|
||||||
;; memory configuration
|
;; memory configuration
|
||||||
;; Higher garbage collection threshold, prevents frequent gc locks, reset later
|
;; Higher garbage collection threshold, prevents frequent gc locks, reset later
|
||||||
gc-cons-threshold most-positive-fixnum
|
gc-cons-threshold most-positive-fixnum
|
||||||
;; Ignore warnings for (obsolete) elisp compilations
|
;; Ignore warnings for (obsolete) elisp compilations
|
||||||
byte-compile-warnings '(not obsolete)
|
byte-compile-warnings '(not obsolete)
|
||||||
;; And other log types completely
|
;; And other log types completely
|
||||||
warning-suppress-log-types '((comp) (bytecomp))
|
warning-suppress-log-types '((comp) (bytecomp))
|
||||||
;; Large files are okay in the new millenium.
|
;; Large files are okay in the new millenium.
|
||||||
large-file-warning-threshold 100000000
|
large-file-warning-threshold 100000000
|
||||||
;; dont show garbage collection messages at startup, will reset later
|
;; dont show garbage collection messages at startup, will reset later
|
||||||
garbage-collection-messages nil
|
garbage-collection-messages nil
|
||||||
;; native compilation
|
;; native compilation
|
||||||
package-native-compile t
|
package-native-compile t
|
||||||
native-comp-warning-on-missing-source nil
|
native-comp-warning-on-missing-source nil
|
||||||
native-comp-async-report-warnings-errors 'silent
|
native-comp-async-report-warnings-errors 'silent
|
||||||
;; Read more based on system pipe capacity
|
;; Read more based on system pipe capacity
|
||||||
read-process-output-max (max (* 10240 10240) read-process-output-max)
|
read-process-output-max (max (* 10240 10240) read-process-output-max)
|
||||||
;; scroll configuration
|
;; scroll configuration
|
||||||
scroll-margin 0 ; Lets scroll to the end of the margin
|
scroll-margin 0 ; Lets scroll to the end of the margin
|
||||||
scroll-conservatively 100000 ; Never recenter the window
|
scroll-conservatively 100000 ; Never recenter the window
|
||||||
scroll-preserve-screen-position 1 ; Scrolling back and forth
|
scroll-preserve-screen-position 1 ; Scrolling back and forth
|
||||||
;; frame config
|
;; frame config
|
||||||
;; Improve emacs startup time by not resizing to adjust for custom settings
|
;; Improve emacs startup time by not resizing to adjust for custom settings
|
||||||
frame-inhibit-implied-resize t
|
frame-inhibit-implied-resize t
|
||||||
;; Dont resize based on character height / width but to exact pixels
|
;; Dont resize based on character height / width but to exact pixels
|
||||||
frame-resize-pixelwise t
|
frame-resize-pixelwise t
|
||||||
;; backups & files
|
;; backups & files
|
||||||
backup-directory-alist '(("." . "~/.backups/")) ; Don't clutter
|
backup-directory-alist '(("." . "~/.backups/")) ; Don't clutter
|
||||||
backup-by-copying t ; Don't clobber symlinks
|
backup-by-copying t ; Don't clobber symlinks
|
||||||
create-lockfiles nil ; Don't have temp files
|
create-lockfiles nil ; Don't have temp files
|
||||||
delete-old-versions t ; Cleanup automatically
|
delete-old-versions t ; Cleanup automatically
|
||||||
kept-new-versions 6 ; Update every few times
|
kept-new-versions 6 ; Update every few times
|
||||||
kept-old-versions 2 ; And cleanup even more
|
kept-old-versions 2 ; And cleanup even more
|
||||||
version-control t ; Version them backups
|
version-control t ; Version them backups
|
||||||
delete-by-moving-to-trash t ; Dont delete, send to trash instead
|
delete-by-moving-to-trash t ; Dont delete, send to trash instead
|
||||||
;; startup
|
;; startup
|
||||||
inhibit-startup-screen t ; I have already done the tutorial. Twice
|
inhibit-startup-screen t ; I have already done the tutorial. Twice
|
||||||
inhibit-startup-message t ; I know I am ready
|
inhibit-startup-message t ; I know I am ready
|
||||||
inhibit-startup-echo-area-message t ; Yep, still know it
|
inhibit-startup-echo-area-message t ; Yep, still know it
|
||||||
initial-scratch-message nil ; I know it is the scratch buffer!
|
initial-scratch-message nil ; I know it is the scratch buffer!
|
||||||
initial-buffer-choice nil
|
initial-buffer-choice nil
|
||||||
inhibit-startup-buffer-menu t
|
inhibit-startup-buffer-menu t
|
||||||
inhibit-x-resources t
|
inhibit-x-resources t
|
||||||
initial-major-mode 'fundamental-mode
|
initial-major-mode 'fundamental-mode
|
||||||
pgtk-wait-for-event-timeout 0.001 ; faster child frames
|
pgtk-wait-for-event-timeout 0.001 ; faster child frames
|
||||||
ad-redefinition-action 'accept ; dont care about legacy things being redefined
|
ad-redefinition-action 'accept ; dont care about legacy things being redefined
|
||||||
inhibit-compacting-font-caches t
|
inhibit-compacting-font-caches t
|
||||||
;; tabs
|
;; tabs
|
||||||
tab-width 4 ; Always tab 4 spaces.
|
tab-width 4 ; Always tab 4 spaces.
|
||||||
indent-tabs-mode nil ; Never use actual tabs.
|
indent-tabs-mode nil ; Never use actual tabs.
|
||||||
;; rendering
|
;; rendering
|
||||||
cursor-in-non-selected-windows nil ; dont render cursors other windows
|
cursor-in-non-selected-windows nil ; dont render cursors other windows
|
||||||
;; packages
|
;; packages
|
||||||
use-package-always-defer t
|
use-package-always-defer t
|
||||||
load-prefer-newer t
|
load-prefer-newer t
|
||||||
default-input-method nil
|
default-input-method nil
|
||||||
use-dialog-box nil
|
use-dialog-box nil
|
||||||
use-file-dialog nil
|
use-file-dialog nil
|
||||||
use-package-expand-minimally t
|
use-package-expand-minimally t
|
||||||
package-enable-at-startup nil
|
package-enable-at-startup nil
|
||||||
use-package-enable-imenu-support t
|
use-package-enable-imenu-support t
|
||||||
auto-mode-case-fold nil ; No second pass of case-insensitive search over auto-mode-alist.
|
auto-mode-case-fold nil ; No second pass of case-insensitive search over auto-mode-alist.
|
||||||
package-archives '(("melpa" . "https://melpa.org/packages/")
|
package-archives '(("melpa" . "https://melpa.org/packages/")
|
||||||
("gnu" . "https://elpa.gnu.org/packages/")
|
("gnu" . "https://elpa.gnu.org/packages/")
|
||||||
("nongnu" . "https://elpa.nongnu.org/nongnu/")
|
("nongnu" . "https://elpa.nongnu.org/nongnu/")
|
||||||
("melpa-stable" . "https://stable.melpa.org/packages/"))
|
("melpa-stable" . "https://stable.melpa.org/packages/"))
|
||||||
package-archive-priorities '(("gnu" . 99)
|
package-archive-priorities '(("gnu" . 99)
|
||||||
("nongnu" . 80)
|
("nongnu" . 80)
|
||||||
("melpa" . 70)
|
("melpa" . 70)
|
||||||
("melpa-stable" . 50))
|
("melpa-stable" . 50))
|
||||||
)
|
)
|
||||||
;;; early-init.el ends here
|
;;; early-init.el ends here
|
||||||
|
|||||||
+252
-252
@@ -1,9 +1,9 @@
|
|||||||
;;; package --- Summary - My minimal Emacs init file -*- lexical-binding: t -*-
|
;;; package --- Summary - My minimal Emacs init file -*- lexical-binding: t -*-
|
||||||
|
|
||||||
;;; Commentary:
|
;;; Commentary:
|
||||||
;;; Simple Emacs setup I carry everywhere
|
;;; Simple Emacs setup I carry everywhere
|
||||||
|
|
||||||
;;; Code:
|
;;; Code:
|
||||||
(setq custom-file (locate-user-emacs-file "custom.el"))
|
(setq custom-file (locate-user-emacs-file "custom.el"))
|
||||||
(load custom-file 'noerror) ;; no error on missing custom file
|
(load custom-file 'noerror) ;; no error on missing custom file
|
||||||
|
|
||||||
@@ -11,73 +11,73 @@
|
|||||||
(package-initialize)
|
(package-initialize)
|
||||||
|
|
||||||
(defun reset-custom-vars ()
|
(defun reset-custom-vars ()
|
||||||
"Resets the custom variables that were set to crazy numbers"
|
"Resets the custom variables that were set to crazy numbers"
|
||||||
(setopt gc-cons-threshold (* 1024 1024 100))
|
(setopt gc-cons-threshold (* 1024 1024 100))
|
||||||
(setopt garbage-collection-messages t))
|
(setopt garbage-collection-messages t))
|
||||||
|
|
||||||
(use-package emacs
|
(use-package emacs
|
||||||
:custom
|
:custom
|
||||||
(native-comp-async-query-on-exit t)
|
(native-comp-async-query-on-exit t)
|
||||||
(read-answer-short t)
|
(read-answer-short t)
|
||||||
(use-short-answers t)
|
(use-short-answers t)
|
||||||
(enable-recursive-minibuffers t)
|
(enable-recursive-minibuffers t)
|
||||||
(which-func-update-delay 1.0)
|
(which-func-update-delay 1.0)
|
||||||
(visible-bell nil)
|
(visible-bell nil)
|
||||||
(custom-buffer-done-kill t)
|
(custom-buffer-done-kill t)
|
||||||
(whitespace-line-column nil)
|
(whitespace-line-column nil)
|
||||||
(x-underline-at-descent-line t)
|
(x-underline-at-descent-line t)
|
||||||
(imenu-auto-rescan t)
|
(imenu-auto-rescan t)
|
||||||
(uniquify-buffer-name-style 'forward)
|
(uniquify-buffer-name-style 'forward)
|
||||||
(confirm-nonexistent-file-or-buffer nil)
|
(confirm-nonexistent-file-or-buffer nil)
|
||||||
(create-lockfiles nil)
|
(create-lockfiles nil)
|
||||||
(make-backup-files nil)
|
(make-backup-files nil)
|
||||||
(kill-do-not-save-duplicates t)
|
(kill-do-not-save-duplicates t)
|
||||||
(sentence-end-double-space nil)
|
(sentence-end-double-space nil)
|
||||||
(treesit-enabled-modes t)
|
(treesit-enabled-modes t)
|
||||||
:init
|
:init
|
||||||
;; base visual
|
;; base visual
|
||||||
(menu-bar-mode -1) ;; no menu bar
|
(menu-bar-mode -1) ;; no menu bar
|
||||||
(toggle-scroll-bar -1) ;; no scroll bar
|
(toggle-scroll-bar -1) ;; no scroll bar
|
||||||
(tool-bar-mode -1) ;; no tool bar either
|
(tool-bar-mode -1) ;; no tool bar either
|
||||||
(blink-cursor-mode -1) ;; stop blinking
|
(blink-cursor-mode -1) ;; stop blinking
|
||||||
|
|
||||||
;; font of the century
|
;; font of the century
|
||||||
(set-frame-font "Aporetic Sans Mono 12" nil t)
|
(set-frame-font "Aporetic Sans Mono 12" nil t)
|
||||||
|
|
||||||
:bind
|
:bind
|
||||||
(("C-<wheel-up>" . pixel-scroll-precision) ; dont zoom in please, just scroll
|
(("C-<wheel-up>" . pixel-scroll-precision) ; dont zoom in please, just scroll
|
||||||
("C-<wheel-down>" . pixel-scroll-precision) ; dont zoom in either, just scroll
|
("C-<wheel-down>" . pixel-scroll-precision) ; dont zoom in either, just scroll
|
||||||
("C-x k" . kill-current-buffer)) ; kill the buffer, dont ask
|
("C-x k" . kill-current-buffer)) ; kill the buffer, dont ask
|
||||||
:hook
|
:hook
|
||||||
(text-mode . delete-trailing-whitespace-mode)
|
(text-mode . delete-trailing-whitespace-mode)
|
||||||
(prog-mode . delete-trailing-whitespace-mode)
|
(prog-mode . delete-trailing-whitespace-mode)
|
||||||
(after-init . global-display-line-numbers-mode) ;; always show line numbers
|
(after-init . global-display-line-numbers-mode) ;; always show line numbers
|
||||||
(after-init . column-number-mode) ;; column number in the mode line
|
(after-init . column-number-mode) ;; column number in the mode line
|
||||||
(after-init . size-indication-mode) ;; file size in the mode line
|
(after-init . size-indication-mode) ;; file size in the mode line
|
||||||
(after-init . pixel-scroll-precision-mode) ;; smooth mouse scroll
|
(after-init . pixel-scroll-precision-mode) ;; smooth mouse scroll
|
||||||
(after-init . electric-pair-mode) ;; i mean ... parens should auto create
|
(after-init . electric-pair-mode) ;; i mean ... parens should auto create
|
||||||
(after-init . reset-custom-vars)
|
(after-init . reset-custom-vars)
|
||||||
)
|
)
|
||||||
|
|
||||||
(use-package autorevert
|
(use-package autorevert
|
||||||
:ensure nil
|
:ensure nil
|
||||||
:custom
|
:custom
|
||||||
(auto-revert-interval 3)
|
(auto-revert-interval 3)
|
||||||
(auto-revert-remote-files nil)
|
(auto-revert-remote-files nil)
|
||||||
(auto-revert-use-notify t)
|
(auto-revert-use-notify t)
|
||||||
(auto-revert-avoid-polling nil)
|
(auto-revert-avoid-polling nil)
|
||||||
(auto-revert-verbose t)
|
(auto-revert-verbose t)
|
||||||
:hook
|
:hook
|
||||||
(after-init . global-auto-revert-mode))
|
(after-init . global-auto-revert-mode))
|
||||||
|
|
||||||
(use-package recentf
|
(use-package recentf
|
||||||
:ensure nil
|
:ensure nil
|
||||||
:commands (recentf-mode recentf-cleanup)
|
:commands (recentf-mode recentf-cleanup)
|
||||||
:hook
|
:hook
|
||||||
(after-init . recentf-mode)
|
(after-init . recentf-mode)
|
||||||
:custom
|
:custom
|
||||||
(recentf-auto-cleanup 'never)
|
(recentf-auto-cleanup 'never)
|
||||||
(recentf-exclude
|
(recentf-exclude
|
||||||
(list "\\.tar$" "\\.tbz2$" "\\.tbz$" "\\.tgz$" "\\.bz2$"
|
(list "\\.tar$" "\\.tbz2$" "\\.tbz$" "\\.tgz$" "\\.bz2$"
|
||||||
"\\.bz$" "\\.gz$" "\\.gzip$" "\\.xz$" "\\.zip$"
|
"\\.bz$" "\\.gz$" "\\.gzip$" "\\.xz$" "\\.zip$"
|
||||||
"\\.7z$" "\\.rar$"
|
"\\.7z$" "\\.rar$"
|
||||||
@@ -85,231 +85,231 @@
|
|||||||
"\\.\\(?:gz\\|gif\\|svg\\|png\\|jpe?g\\|bmp\\|xpm\\)$"
|
"\\.\\(?:gz\\|gif\\|svg\\|png\\|jpe?g\\|bmp\\|xpm\\)$"
|
||||||
"-autoloads\\.el$" "autoload\\.el$"))
|
"-autoloads\\.el$" "autoload\\.el$"))
|
||||||
|
|
||||||
:config
|
:config
|
||||||
;; A cleanup depth of -90 ensures that `recentf-cleanup' runs before
|
;; A cleanup depth of -90 ensures that `recentf-cleanup' runs before
|
||||||
;; `recentf-save-list', allowing stale entries to be removed before the list
|
;; `recentf-save-list', allowing stale entries to be removed before the list
|
||||||
;; is saved by `recentf-save-list', which is automatically added to
|
;; is saved by `recentf-save-list', which is automatically added to
|
||||||
;; `kill-emacs-hook' by `recentf-mode'.
|
;; `kill-emacs-hook' by `recentf-mode'.
|
||||||
(add-hook 'kill-emacs-hook #'recentf-cleanup -90))
|
(add-hook 'kill-emacs-hook #'recentf-cleanup -90))
|
||||||
|
|
||||||
(use-package savehist
|
(use-package savehist
|
||||||
:ensure nil
|
:ensure nil
|
||||||
:commands (savehist-mode savehist-save)
|
:commands (savehist-mode savehist-save)
|
||||||
:hook
|
:hook
|
||||||
(after-init . savehist-mode)
|
(after-init . savehist-mode)
|
||||||
:custom
|
:custom
|
||||||
(savehist-autosave-interval 600)
|
(savehist-autosave-interval 600)
|
||||||
(savehist-additional-variables
|
(savehist-additional-variables
|
||||||
'(kill-ring ; clipboard
|
'(kill-ring ; clipboard
|
||||||
register-alist ; macros
|
register-alist ; macros
|
||||||
mark-ring global-mark-ring ; marks
|
mark-ring global-mark-ring ; marks
|
||||||
search-ring regexp-search-ring)))
|
search-ring regexp-search-ring)))
|
||||||
|
|
||||||
(use-package hl-line
|
(use-package hl-line
|
||||||
:ensure nil
|
:ensure nil
|
||||||
:custom
|
:custom
|
||||||
(hl-line-sticky-flag nil)
|
(hl-line-sticky-flag nil)
|
||||||
(global-hl-line-sticky-flag nil)
|
(global-hl-line-sticky-flag nil)
|
||||||
:hook
|
:hook
|
||||||
(after-init . global-hl-line-mode))
|
(after-init . global-hl-line-mode))
|
||||||
|
|
||||||
(use-package saveplace
|
(use-package saveplace
|
||||||
:ensure nil
|
:ensure nil
|
||||||
:commands (save-place-mode save-place-local-mode)
|
:commands (save-place-mode save-place-local-mode)
|
||||||
:hook
|
:hook
|
||||||
(after-init . save-place-mode)
|
(after-init . save-place-mode)
|
||||||
:custom
|
:custom
|
||||||
(save-place-limit 400))
|
(save-place-limit 400))
|
||||||
|
|
||||||
(use-package nerd-icons
|
(use-package nerd-icons
|
||||||
:custom
|
:custom
|
||||||
;; disable bright icon colors
|
;; disable bright icon colors
|
||||||
(nerd-icons-color-icons nil))hells.nix
|
(nerd-icons-color-icons nil))hells.nix
|
||||||
|
|
||||||
(use-package doom-modeline
|
(use-package doom-modeline
|
||||||
:custom
|
:custom
|
||||||
(inhibit-compacting-font-caches t) ;; speed
|
(inhibit-compacting-font-caches t) ;; speed
|
||||||
(doom-modeline-buffer-file-name-style 'relative-from-project)
|
(doom-modeline-buffer-file-name-style 'relative-from-project)
|
||||||
(doom-modeline-major-mode-icon nil) ;; distracting icons, no thank you
|
(doom-modeline-major-mode-icon nil) ;; distracting icons, no thank you
|
||||||
(doom-modeline-buffer-encoding nil) ;; everything is utf-8 anyway
|
(doom-modeline-buffer-encoding nil) ;; everything is utf-8 anyway
|
||||||
(doom-modeline-buffer-state-icon nil) ;; the filename already shows me
|
(doom-modeline-buffer-state-icon nil) ;; the filename already shows me
|
||||||
(doom-modeline-lsp nil) ;; lsp state is too distracting, too often
|
(doom-modeline-lsp nil) ;; lsp state is too distracting, too often
|
||||||
:hook (after-init . doom-modeline-mode))
|
:hook (after-init . doom-modeline-mode))
|
||||||
|
|
||||||
(load-theme 'catppuccin :no-confirm)
|
(load-theme 'catppuccin :no-confirm)
|
||||||
|
|
||||||
(use-package diminish :demand t) ;; declutter the modeline
|
(use-package diminish :demand t) ;; declutter the modeline
|
||||||
(use-package eldoc
|
(use-package eldoc
|
||||||
:diminish eldoc-mode
|
:diminish eldoc-mode
|
||||||
:custom
|
:custom
|
||||||
(eldoc-echo-area-use-multiline-p nil)) ;; docs for everything
|
(eldoc-echo-area-use-multiline-p nil)) ;; docs for everything
|
||||||
|
|
||||||
(use-package eldoc-box
|
(use-package eldoc-box
|
||||||
:defer t
|
:defer t
|
||||||
:config
|
:config
|
||||||
(set-face-background 'eldoc-box-border (catppuccin-color 'green))
|
(set-face-background 'eldoc-box-border (catppuccin-color 'green))
|
||||||
(set-face-background 'eldoc-box-body (catppuccin-color 'base))
|
(set-face-background 'eldoc-box-body (catppuccin-color 'base))
|
||||||
:bind
|
:bind
|
||||||
(("M-h" . eldoc-box-help-at-point)))
|
(("M-h" . eldoc-box-help-at-point)))
|
||||||
|
|
||||||
(use-package pulsar
|
(use-package pulsar
|
||||||
:commands pulsar-global-mode pulsar-recenter-top pulsar-reveal-entry
|
:commands pulsar-global-mode pulsar-recenter-top pulsar-reveal-entry
|
||||||
:init
|
:init
|
||||||
(defface pulsar-catppuccin
|
(defface pulsar-catppuccin
|
||||||
`((default :extend t)
|
`((default :extend t)
|
||||||
(((class color) (min-colors 88) (background light))
|
(((class color) (min-colors 88) (background light))
|
||||||
:background ,(catppuccin-color 'sapphire))
|
:background ,(catppuccin-color 'sapphire))
|
||||||
(((class color) (min-colors 88) (background dark))
|
(((class color) (min-colors 88) (background dark))
|
||||||
:background ,(catppuccin-color 'sapphire))
|
:background ,(catppuccin-color 'sapphire))
|
||||||
(t :inverse-video t))
|
(t :inverse-video t))
|
||||||
"Alternative nord face for `pulsar-face'."
|
"Alternative nord face for `pulsar-face'."
|
||||||
:group 'pulsar-faces)
|
:group 'pulsar-faces)
|
||||||
:custom
|
:custom
|
||||||
(pulsar-face 'pulsar-catppuccin)
|
(pulsar-face 'pulsar-catppuccin)
|
||||||
:hook
|
:hook
|
||||||
(after-init . pulsar-global-mode))
|
(after-init . pulsar-global-mode))
|
||||||
|
|
||||||
(use-package which-key
|
(use-package which-key
|
||||||
:commands which-key-mode
|
:commands which-key-mode
|
||||||
:diminish which-key-mode
|
:diminish which-key-mode
|
||||||
:hook
|
:hook
|
||||||
(after-init . which-key-mode))
|
(after-init . which-key-mode))
|
||||||
|
|
||||||
(use-package expreg
|
(use-package expreg
|
||||||
:bind ("M-m" . expreg-expand))
|
:bind ("M-m" . expreg-expand))
|
||||||
|
|
||||||
(use-package vundo) ;; undo tree
|
(use-package vundo) ;; undo tree
|
||||||
|
|
||||||
;; better structured editing
|
;; better structured editing
|
||||||
(use-package puni
|
(use-package puni
|
||||||
:commands puni-global-mode
|
:commands puni-global-mode
|
||||||
:hook
|
:hook
|
||||||
(after-init . puni-global-mode))
|
(after-init . puni-global-mode))
|
||||||
|
|
||||||
(use-package avy
|
(use-package avy
|
||||||
:bind
|
:bind
|
||||||
("M-i" . avy-goto-char-2)
|
("M-i" . avy-goto-char-2)
|
||||||
:custom
|
:custom
|
||||||
(avy-background t))
|
(avy-background t))
|
||||||
|
|
||||||
(use-package consult
|
(use-package consult
|
||||||
:bind
|
:bind
|
||||||
("C-x b" . consult-buffer) ;; orig. switch-to-buffer
|
("C-x b" . consult-buffer) ;; orig. switch-to-buffer
|
||||||
("M-y" . consult-yank-pop) ;; orig. yank-pop
|
("M-y" . consult-yank-pop) ;; orig. yank-pop
|
||||||
("M-g M-g" . consult-goto-line) ;; orig. goto-line
|
("M-g M-g" . consult-goto-line) ;; orig. goto-line
|
||||||
("M-g i" . consult-imenu) ;; consult version is interactive
|
("M-g i" . consult-imenu) ;; consult version is interactive
|
||||||
("M-g r" . consult-ripgrep) ;; find in project also works
|
("M-g r" . consult-ripgrep) ;; find in project also works
|
||||||
:custom
|
:custom
|
||||||
(consult-narrow-key "<"))
|
(consult-narrow-key "<"))
|
||||||
|
|
||||||
(use-package vertico
|
(use-package vertico
|
||||||
:commands vertico-mode
|
:commands vertico-mode
|
||||||
:custom
|
:custom
|
||||||
(read-file-name-completion-ignore-case t)
|
(read-file-name-completion-ignore-case t)
|
||||||
(read-buffer-completion-ignore-case t)
|
(read-buffer-completion-ignore-case t)
|
||||||
(completion-ignore-case t)
|
(completion-ignore-case t)
|
||||||
(enable-recursive-minibuffers t)
|
(enable-recursive-minibuffers t)
|
||||||
(minibuffer-prompt-properties '(read-only t cursor-intangible t face minibuffer-prompt))
|
(minibuffer-prompt-properties '(read-only t cursor-intangible t face minibuffer-prompt))
|
||||||
:init
|
:init
|
||||||
(vertico-mode)
|
(vertico-mode)
|
||||||
:hook
|
:hook
|
||||||
(minibuffer-setup-hook . cursor-intangible-mode))
|
(minibuffer-setup-hook . cursor-intangible-mode))
|
||||||
|
|
||||||
(use-package marginalia
|
(use-package marginalia
|
||||||
:commands marginalia-mode
|
:commands marginalia-mode
|
||||||
:hook (after-init . marginalia-mode))
|
:hook (after-init . marginalia-mode))
|
||||||
|
|
||||||
(use-package crux
|
(use-package crux
|
||||||
:bind
|
:bind
|
||||||
("C-c M-e" . crux-find-user-init-file)
|
("C-c M-e" . crux-find-user-init-file)
|
||||||
("C-c C-w" . crux-transpose-windows)
|
("C-c C-w" . crux-transpose-windows)
|
||||||
("C-c M-d" . crux-find-current-directory-dir-locals-file)
|
("C-c M-d" . crux-find-current-directory-dir-locals-file)
|
||||||
("C-a" . crux-move-beginning-of-line))
|
("C-a" . crux-move-beginning-of-line))
|
||||||
|
|
||||||
(use-package magit
|
(use-package magit
|
||||||
:bind (("C-M-g" . magit-status)))
|
:bind (("C-M-g" . magit-status)))
|
||||||
|
|
||||||
(use-package nerd-icons-corfu
|
(use-package nerd-icons-corfu
|
||||||
:commands nerd-icons-corfu-formatter
|
:commands nerd-icons-corfu-formatter
|
||||||
:defines corfu-margin-formatters)
|
:defines corfu-margin-formatters)
|
||||||
|
|
||||||
(use-package corfu
|
(use-package corfu
|
||||||
:commands global-corfu-mode
|
:commands global-corfu-mode
|
||||||
:custom
|
:custom
|
||||||
(corfu-cycle t)
|
(corfu-cycle t)
|
||||||
(corfu-auto t)
|
(corfu-auto t)
|
||||||
(corfu-auto-delay 1)
|
(corfu-auto-delay 1)
|
||||||
(corfu-auto-prefix 3)
|
(corfu-auto-prefix 3)
|
||||||
(corfu-separator ?_)
|
(corfu-separator ?_)
|
||||||
:hook
|
:hook
|
||||||
(after-init . global-corfu-mode)
|
(after-init . global-corfu-mode)
|
||||||
:config
|
:config
|
||||||
(add-to-list 'corfu-margin-formatters #'nerd-icons-corfu-formatter))
|
(add-to-list 'corfu-margin-formatters #'nerd-icons-corfu-formatter))
|
||||||
|
|
||||||
(use-package cape)
|
(use-package cape)
|
||||||
|
|
||||||
(use-package orderless
|
(use-package orderless
|
||||||
:custom
|
:custom
|
||||||
(completion-styles '(orderless partial-completion basic))
|
(completion-styles '(orderless partial-completion basic))
|
||||||
(completion-category-defaults nil)
|
(completion-category-defaults nil)
|
||||||
(completion-category-overrides nil))
|
(completion-category-overrides nil))
|
||||||
|
|
||||||
(use-package yasnippet
|
(use-package yasnippet
|
||||||
:commands yas-global-mode
|
:commands yas-global-mode
|
||||||
:diminish yas-minor-mode
|
:diminish yas-minor-mode
|
||||||
:hook
|
:hook
|
||||||
(after-init . yas-global-mode))
|
(after-init . yas-global-mode))
|
||||||
|
|
||||||
(use-package yasnippet-snippets :after yasnippet)
|
(use-package yasnippet-snippets :after yasnippet)
|
||||||
|
|
||||||
(use-package exec-path-from-shell
|
(use-package exec-path-from-shell
|
||||||
:commands exec-path-from-shell-initialize
|
:commands exec-path-from-shell-initialize
|
||||||
:custom
|
:custom
|
||||||
(exec-path-from-shell-arguments nil)
|
(exec-path-from-shell-arguments nil)
|
||||||
:hook
|
:hook
|
||||||
(after-init . exec-path-from-shell-initialize))
|
(after-init . exec-path-from-shell-initialize))
|
||||||
|
|
||||||
(use-package nixpkgs-fmt
|
(use-package nixpkgs-fmt
|
||||||
:custom
|
:custom
|
||||||
(nixpkgs-fmt-command "nixfmt"))
|
(nixpkgs-fmt-command "nixfmt"))
|
||||||
|
|
||||||
(use-package eat
|
(use-package eat
|
||||||
:bind
|
:bind
|
||||||
(("C-c e p" . eat-project)
|
(("C-c e p" . eat-project)
|
||||||
("C-c e t" . eat)))
|
("C-c e t" . eat)))
|
||||||
|
|
||||||
(use-package f :demand t)
|
(use-package f :demand t)
|
||||||
|
|
||||||
(use-package envrc
|
(use-package envrc
|
||||||
:commands envrc-global-mode
|
:commands envrc-global-mode
|
||||||
:hook
|
:hook
|
||||||
(after-init . envrc-global-mode))
|
(after-init . envrc-global-mode))
|
||||||
|
|
||||||
(use-package gptel
|
(use-package gptel
|
||||||
:commands gptel-make-anthropic f-read-text
|
:commands gptel-make-anthropic f-read-text
|
||||||
:config
|
:config
|
||||||
(gptel-make-anthropic "Claude"
|
(gptel-make-anthropic "Claude"
|
||||||
:stream t :key (f-read-text "/run/secrets/claude_key")))
|
:stream t :key (f-read-text "/run/secrets/claude_key")))
|
||||||
|
|
||||||
(use-package sideline-flymake)
|
(use-package sideline-flymake)
|
||||||
(use-package sideline-eglot)
|
(use-package sideline-eglot)
|
||||||
(use-package sideline
|
(use-package sideline
|
||||||
:custom
|
:custom
|
||||||
(sideline-backends-right '(sideline-flymake sideline-eglot))
|
(sideline-backends-right '(sideline-flymake sideline-eglot))
|
||||||
:hook
|
:hook
|
||||||
(eglot-managed-mode . sideline-mode)
|
(eglot-managed-mode . sideline-mode)
|
||||||
(flymake-mode . sideline-mode))
|
(flymake-mode . sideline-mode))
|
||||||
|
|
||||||
(use-package eglot
|
(use-package eglot
|
||||||
:custom
|
:custom
|
||||||
(eglot-extend-to-xref t)
|
(eglot-extend-to-xref t)
|
||||||
(eglot-ignored-server-capabilities '(:inlayHintProvider))
|
(eglot-ignored-server-capabilities '(:inlayHintProvider))
|
||||||
(jsonrpc-event-hook nil)
|
(jsonrpc-event-hook nil)
|
||||||
:hook
|
:hook
|
||||||
(eglot-managed-mode . eldoc-box-hover-mode)
|
(eglot-managed-mode . eldoc-box-hover-mode)
|
||||||
(before-save . eldoc-format-buffer)
|
(before-save . eldoc-format-buffer)
|
||||||
:bind
|
:bind
|
||||||
(:map eglot-mode-map
|
(:map eglot-mode-map
|
||||||
("C-c l a" . eglot-code-actions)
|
("C-c l a" . eglot-code-actions)
|
||||||
("C-c l r" . eglot-rename)
|
("C-c l r" . eglot-rename)
|
||||||
("C-c l h" . eldoc)
|
("C-c l h" . eldoc)
|
||||||
@@ -317,58 +317,58 @@
|
|||||||
("C-c l w" . eglot-reconnect)))
|
("C-c l w" . eglot-reconnect)))
|
||||||
|
|
||||||
(use-package proced
|
(use-package proced
|
||||||
:custom
|
:custom
|
||||||
(proced-auto-update-flag t)
|
(proced-auto-update-flag t)
|
||||||
(proced-auto-update-interval 3)
|
(proced-auto-update-interval 3)
|
||||||
(proced-enable-color-flag t)
|
(proced-enable-color-flag t)
|
||||||
(proced-show-remote-processes t))
|
(proced-show-remote-processes t))
|
||||||
|
|
||||||
(use-package org
|
(use-package org
|
||||||
:ensure t
|
:ensure t
|
||||||
:defer t
|
:defer t
|
||||||
:commands (org-mode org-capture org-agenda)
|
:commands (org-mode org-capture org-agenda)
|
||||||
:init
|
:init
|
||||||
(defvar org-journal-file "~/nextcloud/org/journal.org")
|
(defvar org-journal-file "~/nextcloud/org/journal.org")
|
||||||
(defvar org-archive-file "~/nextcloud/org/archive.org")
|
(defvar org-archive-file "~/nextcloud/org/archive.org")
|
||||||
(defvar org-notes-file "~/nextcloud/org/notes.org")
|
(defvar org-notes-file "~/nextcloud/org/notes.org")
|
||||||
(defvar org-inbox-file "~/nextcloud/org/inbox.org")
|
(defvar org-inbox-file "~/nextcloud/org/inbox.org")
|
||||||
(defvar org-work-file "~/nextcloud/org/work.org")
|
(defvar org-work-file "~/nextcloud/org/work.org")
|
||||||
(defun my/org-capture-project-target-heading ()
|
(defun my/org-capture-project-target-heading ()
|
||||||
"Determine Org target headings from the current file's project path.
|
"Determine Org target headings from the current file's project path.
|
||||||
|
|
||||||
This function assumes a directory structure like '~/projects/COMPANY/PROJECT/'.
|
This function assumes a directory structure like '~/projects/COMPANY/PROJECT/'.
|
||||||
It extracts 'COMPANY' and 'PROJECT' to use as nested headlines
|
It extracts 'COMPANY' and 'PROJECT' to use as nested headlines
|
||||||
for an Org capture template.
|
for an Org capture template.
|
||||||
|
|
||||||
If the current buffer is not visi
|
If the current buffer is not visi
|
||||||
ting a file within such a
|
ting a file within such a
|
||||||
project structure, it returns nil, causing capture to default to
|
project structure, it returns nil, causing capture to default to
|
||||||
the top of the file."
|
the top of the file."
|
||||||
(when-let* ((path (buffer-file-name))) ; Ensure we are in a file-visiting buffer
|
(when-let* ((path (buffer-file-name))) ; Ensure we are in a file-visiting buffer
|
||||||
(let ((path-parts (split-string path "/" t " ")))
|
(let ((path-parts (split-string path "/" t " ")))
|
||||||
(when-let* ((projects-pos (cl-position "projects" path-parts :test #'string=))
|
(when-let* ((projects-pos (cl-position "projects" path-parts :test #'string=))
|
||||||
(company (nth (+ 1 projects-pos) path-parts))
|
(company (nth (+ 1 projects-pos) path-parts))
|
||||||
(project (nth (+ 2 projects-pos) path-parts)))
|
(project (nth (+ 2 projects-pos) path-parts)))
|
||||||
;; Return a list of headlines for Org to find or create.
|
;; Return a list of headlines for Org to find or create.
|
||||||
(list company project)))))
|
(list company project)))))
|
||||||
:bind
|
:bind
|
||||||
(("C-c c" . org-capture)
|
(("C-c c" . org-capture)
|
||||||
("C-c i" . org-store-link)
|
("C-c i" . org-store-link)
|
||||||
("C-c a" . org-agenda)
|
("C-c a" . org-agenda)
|
||||||
:map org-mode-map
|
:map org-mode-map
|
||||||
("C-c t" . org-toggle-inline-images)
|
("C-c t" . org-toggle-inline-images)
|
||||||
("C-c l" . org-toggle-link-display))
|
("C-c l" . org-toggle-link-display))
|
||||||
:custom
|
:custom
|
||||||
(org-agenda-files (list org-inbox-file org-journal-file))
|
(org-agenda-files (list org-inbox-file org-journal-file))
|
||||||
(org-directory "~/nextcloud/org")
|
(org-directory "~/nextcloud/org")
|
||||||
(org-default-notes-file org-inbox-file)
|
(org-default-notes-file org-inbox-file)
|
||||||
(org-archive-location (concat org-archive-file "::* From %s"))
|
(org-archive-location (concat org-archive-file "::* From %s"))
|
||||||
(org-log-done 'time)
|
(org-log-done 'time)
|
||||||
(org-log-into-drawer t)
|
(org-log-into-drawer t)
|
||||||
(org-hide-emphasis-markers t)
|
(org-hide-emphasis-markers t)
|
||||||
(org-src-fontify-natively t)
|
(org-src-fontify-natively t)
|
||||||
(org-src-tab-acts-natively t)
|
(org-src-tab-acts-natively t)
|
||||||
(org-capture-templates '(("t" "Todo" entry (file org-inbox-file)
|
(org-capture-templates '(("t" "Todo" entry (file org-inbox-file)
|
||||||
"* TODO %?\n:PROPERTIES:\n:CREATED: %U\n:END:\n\n%a\n\n)")
|
"* TODO %?\n:PROPERTIES:\n:CREATED: %U\n:END:\n\n%a\n\n)")
|
||||||
("j" "Journal" entry (file+olp+datetree org-journal-file)
|
("j" "Journal" entry (file+olp+datetree org-journal-file)
|
||||||
"* %?\n:PROPERTIES:\n:CREATED: %U\n:END:\n\n%a\n\n")
|
"* %?\n:PROPERTIES:\n:CREATED: %U\n:END:\n\n%a\n\n")
|
||||||
@@ -379,22 +379,22 @@ ting a file within such a
|
|||||||
"* TODO %? \n CLOCK: %U"
|
"* TODO %? \n CLOCK: %U"
|
||||||
))
|
))
|
||||||
)
|
)
|
||||||
:config
|
:config
|
||||||
;; Enable syntax highlighting in code blocks
|
;; Enable syntax highlighting in code blocks
|
||||||
(add-hook 'org-mode-hook 'turn-on-font-lock)
|
(add-hook 'org-mode-hook 'turn-on-font-lock)
|
||||||
(add-hook 'org-mode-hook 'org-indent-mode))
|
(add-hook 'org-mode-hook 'org-indent-mode))
|
||||||
|
|
||||||
;; extras
|
;; extras
|
||||||
(use-package comp-run
|
(use-package comp-run
|
||||||
:ensure nil
|
:ensure nil
|
||||||
:config
|
:config
|
||||||
(push "tramp-loaddefs.el.gz" native-comp-jit-compilation-deny-list)
|
(push "tramp-loaddefs.el.gz" native-comp-jit-compilation-deny-list)
|
||||||
(push "cl-loaddefs.el.gz" native-comp-jit-compilation-deny-list))
|
(push "cl-loaddefs.el.gz" native-comp-jit-compilation-deny-list))
|
||||||
|
|
||||||
(use-package rustic
|
(use-package rustic
|
||||||
:custom
|
:custom
|
||||||
(rustic-lsp-client 'eglot))
|
(rustic-lsp-client 'eglot))
|
||||||
|
|
||||||
(provide 'init)
|
(provide 'init)
|
||||||
|
|
||||||
;;; init.el ends here
|
;;; init.el ends here
|
||||||
|
|||||||
@@ -9,7 +9,8 @@ in
|
|||||||
{
|
{
|
||||||
xdg.enable = true;
|
xdg.enable = true;
|
||||||
# Stable theme file so kitty.conf can include it without /nix/store paths
|
# Stable theme file so kitty.conf can include it without /nix/store paths
|
||||||
xdg.configFile."kitty/themes/Catppuccin-Mocha.conf".text = catppuccinMochaConf;
|
xdg.configFile."kitty/themes/Catppuccin-Mocha.conf".text = lib.mkForce catppuccinMochaConf;
|
||||||
|
xdg.configFile."kitty/themes/Catppuccin-Mocha.conf".backup = lib.mkForce false;
|
||||||
programs.kitty = {
|
programs.kitty = {
|
||||||
enable = true;
|
enable = true;
|
||||||
# Home Manager generates ~/.config/kitty/kitty.conf; we append in-order:
|
# Home Manager generates ~/.config/kitty/kitty.conf; we append in-order:
|
||||||
|
|||||||
@@ -1,17 +1,17 @@
|
|||||||
{
|
{
|
||||||
hostname,
|
hostname,
|
||||||
pkgs,
|
pkgs,
|
||||||
lib,
|
lib,
|
||||||
modulesPath,
|
modulesPath,
|
||||||
user,
|
user,
|
||||||
config,
|
config,
|
||||||
...
|
...
|
||||||
}:
|
}:
|
||||||
{
|
{
|
||||||
imports = [
|
imports = [
|
||||||
(modulesPath + "/installer/scan/not-detected.nix")
|
(modulesPath + "/installer/scan/not-detected.nix")
|
||||||
../../hardware/hardware.nix
|
../../hardware/hardware.nix
|
||||||
];
|
];
|
||||||
|
|
||||||
boot.initrd.availableKernelModules = [ "xhci_pci" "nvme" "usb_storage" "sd_mod" "rtsx_usb_sdmmc" ];
|
boot.initrd.availableKernelModules = [ "xhci_pci" "nvme" "usb_storage" "sd_mod" "rtsx_usb_sdmmc" ];
|
||||||
boot.initrd.kernelModules = [ ];
|
boot.initrd.kernelModules = [ ];
|
||||||
@@ -19,19 +19,19 @@ boot.kernelModules = [ "kvm-intel" ];
|
|||||||
boot.extraModulePackages = [ ];
|
boot.extraModulePackages = [ ];
|
||||||
|
|
||||||
fileSystems."/" =
|
fileSystems."/" =
|
||||||
{ device = "/dev/disk/by-uuid/69433a14-fbaf-401b-af85-cd1bbf02b4e2";
|
{ device = "/dev/disk/by-uuid/69433a14-fbaf-401b-af85-cd1bbf02b4e2";
|
||||||
fsType = "ext4";
|
fsType = "ext4";
|
||||||
};
|
};
|
||||||
|
|
||||||
fileSystems."/boot" =
|
fileSystems."/boot" =
|
||||||
{ device = "/dev/disk/by-uuid/811D-0676";
|
{ device = "/dev/disk/by-uuid/811D-0676";
|
||||||
fsType = "vfat";
|
fsType = "vfat";
|
||||||
options = [ "fmask=0077" "dmask=0077" ];
|
options = [ "fmask=0077" "dmask=0077" ];
|
||||||
};
|
};
|
||||||
|
|
||||||
swapDevices =
|
swapDevices =
|
||||||
[ { device = "/dev/disk/by-uuid/b6c557c2-7682-460b-a5e7-8f6f2f429a3a"; }
|
[ { device = "/dev/disk/by-uuid/b6c557c2-7682-460b-a5e7-8f6f2f429a3a"; }
|
||||||
];
|
];
|
||||||
|
|
||||||
nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux";
|
nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux";
|
||||||
hardware.cpu.intel.updateMicrocode = lib.mkDefault config.hardware.enableRedistributableFirmware;
|
hardware.cpu.intel.updateMicrocode = lib.mkDefault config.hardware.enableRedistributableFirmware;
|
||||||
|
|||||||
@@ -37,13 +37,13 @@ nmcli connection show --active
|
|||||||
nmcli device status
|
nmcli device status
|
||||||
|
|
||||||
find ~/Repos/nixos/henrovnix_ok \
|
find ~/Repos/nixos/henrovnix_ok \
|
||||||
-type d -name ".*" -prune -o \
|
-type d -name ".*" -prune -o \
|
||||||
-type f -print0 \
|
-type f -print0 \
|
||||||
| xargs -0 sed -i 's/=<defaultUser>=/YOUR_USER/g'
|
| xargs -0 sed -i 's/=<defaultUser>=/YOUR_USER/g'
|
||||||
|
|
||||||
find ~/Repos/nixos/henrovnix_ok \
|
find ~/Repos/nixos/henrovnix_ok \
|
||||||
-type d -name ".*" -prune -o \
|
-type d -name ".*" -prune -o \
|
||||||
-type f -print0 \
|
-type f -print0 \
|
||||||
| xargs -0 sed -i 's/machine1/YOUR_HOSTNAME/g'
|
| xargs -0 sed -i 's/machine1/YOUR_HOSTNAME/g'
|
||||||
|
|
||||||
mv ./machines/machine1 ./machines/YOUR_HOSTNAME
|
mv ./machines/machine1 ./machines/YOUR_HOSTNAME
|
||||||
|
|||||||
Reference in New Issue
Block a user