Compare commits
110 Commits
6a9f014410
...
c846222877
| Author | SHA1 | Date | |
|---|---|---|---|
| c846222877 | |||
| 6a4fd061af | |||
| 86ce38523f | |||
| 921f7e6130 | |||
| 8c9b79e1b1 | |||
| cc18cca7d7 | |||
| 67034b9c5c | |||
| 7f76439575 | |||
| 387d5ef141 | |||
| 4afa9ecf13 | |||
| c9e6e0aebd | |||
| b273596169 | |||
| 426ec9728f | |||
| 017f51204f | |||
| 8e9fc6c67f | |||
| c2b51ce942 | |||
| 273847cb55 | |||
| 7517231d4d | |||
| 0195bfc00f | |||
| 2e00573769 | |||
| f95a66e909 | |||
| 868e36dd5d | |||
| 674ab3d20a | |||
| 808d1eccd6 | |||
| 7cc6b58014 | |||
| 6b95a3bf83 | |||
| 10c08e69ee | |||
| 05f4e6c9bc | |||
| 583fe49d9c | |||
| c6e706fce3 | |||
| 02ed631af2 | |||
| 599e9e0a8e | |||
| ee1cfadbc1 | |||
| c9eac3dc49 | |||
| f0ebf6e466 | |||
| fc8ce0aa4b | |||
| a158b06839 | |||
| 7e49450163 | |||
| 1b20925abf | |||
| b68ac1a338 | |||
| d0c578a5ef | |||
| 682765f2e4 | |||
| 914e37f812 | |||
| b5fe43fc80 | |||
| 476c4d3310 | |||
| 4696250131 | |||
| 4812cc38d2 | |||
| cbdd3dcf59 | |||
| 2841e8278a | |||
| 6a46083e56 | |||
| 11859c0057 | |||
| 086c818991 | |||
| 84966cbeb1 | |||
| af6cfedacd | |||
| e9710d4aab | |||
| 58728002c5 | |||
| 491729bfe0 | |||
| 0328585a86 | |||
| 5234ae63b0 | |||
| 7ae45c7c2c | |||
| 774d720487 | |||
| 9a55f5b784 | |||
| 041a185e00 | |||
| 5a75fcfbdc | |||
| a637256463 | |||
| 50caf0f789 | |||
| fc807f48d0 | |||
| 3c2403c41f | |||
| fa5ae3b084 | |||
| 5da158701d | |||
| b04adbd91f | |||
| 64348cc24b | |||
| 945ff7faa5 | |||
| 1fc12132af | |||
| bf7335c44e | |||
| da1eabfc96 | |||
| 45474798c6 | |||
| e6614db5d6 | |||
| bc7ccf5914 | |||
| 1175ca1f88 | |||
| 03f677d419 | |||
| ce12b2b094 | |||
| 0ffec539d6 | |||
| 776a7f2793 | |||
| 601e848d46 | |||
| a29f5bc6e4 | |||
| ef490e1a69 | |||
| d189d4c7a9 | |||
| cadad0b184 | |||
| d2f949f179 | |||
| 3b1e73f359 | |||
| 45f3f6ca31 | |||
| df01100cca | |||
| b50072a4eb | |||
| 93da548d00 | |||
| ae4fd2aca9 | |||
| fcb3c7815c | |||
| 6679c31fa5 | |||
| ca13190ecc | |||
| 83c077fa29 | |||
| ba1977a667 | |||
| bcd8a6d092 | |||
| f5f1be35fd | |||
| 7d3f12d918 | |||
| 382eb0a213 | |||
| 1a7b49122a | |||
| 33010a7b29 | |||
| d7d9a12e7b | |||
| df56e6bf26 | |||
| 7f25130de9 |
File diff suppressed because it is too large
Load Diff
+324
-642
File diff suppressed because it is too large
Load Diff
@@ -9,7 +9,7 @@
|
|||||||
}:
|
}:
|
||||||
{
|
{
|
||||||
imports = [
|
imports = [
|
||||||
(modulesPath + "/installer/scan/not-detected.nix")
|
# (modulesPath + "/installer/scan/not-detected.nix")
|
||||||
#../../hardware/hardware.nix
|
#../../hardware/hardware.nix
|
||||||
];
|
];
|
||||||
|
|
||||||
@@ -44,5 +44,4 @@
|
|||||||
|
|
||||||
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;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -139,13 +139,13 @@ bind = $mainMod, L, exec, loginctl lock-session
|
|||||||
#########################
|
#########################
|
||||||
# Laptop lid settings
|
# Laptop lid settings
|
||||||
#########################
|
#########################
|
||||||
# bindl = , switch:on:Lid Switch, exec, ~/.config/hypr/scripts/lid-action.sh
|
bindl = , switch:on:Lid Switch, exec, ~/.config/hypr/scripts/lid-action.sh
|
||||||
# bindl = , switch:off:Lid Switch, exec, ~/.config/hypr/scripts/lid-restore.sh
|
bindl = , switch:off:Lid Switch, exec, ~/.config/hypr/scripts/lid-restore.sh
|
||||||
|
|
||||||
#########################
|
#########################
|
||||||
# Start apps
|
# Start apps
|
||||||
#########################
|
#########################
|
||||||
# bind = CTRL ALT, B, exec, flatpak run eu.betterbird.Betterbird
|
bind = CTRL ALT, B, exec, flatpak run eu.betterbird.Betterbird
|
||||||
# bind = CTRL ALT, S, exec, spotify
|
bind = CTRL ALT, S, exec, spotify
|
||||||
# bind = $mainMod, z, exec, zeditor
|
bind = $mainMod, z, exec, zeditor
|
||||||
# bind = $mainMod, w, exec, zen --url https://nextcloud.data-pro.nu
|
bind = $mainMod, w, exec, zen --url https://nextcloud.data-pro.nu
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
exec-once = dbus-update-activation-environment --systemd --all
|
exec-once = dbus-update-activation-environment --systemd --all
|
||||||
exec-once = uwsm app -- waybar
|
exec-once = bash -c "sleep 5 && uwsm app -- waybar"
|
||||||
exec-once = hypridle
|
exec-once = hypridle
|
||||||
exec-once = hyprpolkitagent
|
exec-once = hyprpolkitagent
|
||||||
exec-once = systemd-run --user --scope --unit=elephant elephant
|
exec-once = systemd-run --user --scope --unit=elephant elephant
|
||||||
|
|||||||
@@ -1,24 +1,11 @@
|
|||||||
source = ./variables.conf
|
source = ./variables.conf
|
||||||
source = ./theming.conf
|
source = ./theming.conf
|
||||||
# source = ./behaviour.conf
|
|
||||||
# source = ./layout.conf
|
|
||||||
source = ./animations.conf
|
source = ./animations.conf
|
||||||
# source = ./layer-rules.conf
|
|
||||||
# source = ./window-rules.conf
|
|
||||||
# source = ./monitor-rules.conf
|
|
||||||
# source = ./workspace-rules.conf
|
|
||||||
source = ./bindings.conf
|
source = ./bindings.conf
|
||||||
|
# source = ./behaviour.conf
|
||||||
source = ./exec-once.conf
|
source = ./exec-once.conf
|
||||||
|
source = ./layer-rules.conf
|
||||||
general {
|
source = ./layout.conf
|
||||||
gaps_in = 2
|
source = ./monitor-rules.conf
|
||||||
gaps_out = 4
|
# source = ./window-rules.conf
|
||||||
border_size = 2
|
# source = ./workspace-rules.conf
|
||||||
# Gradient syntax: color color angle (e.g. 45deg). :contentReference[oaicite:5]{index=5}
|
|
||||||
col.active_border = $blue $green 45deg
|
|
||||||
col.inactive_border = $inactive
|
|
||||||
layout = scrolling
|
|
||||||
resize_on_border = true
|
|
||||||
extend_border_grab_area = 20 # Makes it easier to "grab" the edge
|
|
||||||
}
|
|
||||||
|
|||||||
@@ -1,24 +0,0 @@
|
|||||||
general {
|
|
||||||
gaps_in = 2
|
|
||||||
gaps_out = 4
|
|
||||||
border_size = 2
|
|
||||||
col.active_border = rgba($blue) rgba($green) 45deg
|
|
||||||
col.inactive_border = rgba($inactive)
|
|
||||||
layout = dwindle
|
|
||||||
resize_on_border = yes
|
|
||||||
border_grab_modifier = 20
|
|
||||||
disable_hyprland_logo = no # Use 'no' instead of 'false'
|
|
||||||
focus_on_activate = yes
|
|
||||||
}
|
|
||||||
|
|
||||||
decoration {
|
|
||||||
rounding = 5
|
|
||||||
blur = yes
|
|
||||||
blur_size = 8
|
|
||||||
blur_passes = 3
|
|
||||||
blur_new_optimizations = yes
|
|
||||||
blur_exclude = fullscreen
|
|
||||||
drop_shadow = yes
|
|
||||||
shadow_range = 4
|
|
||||||
shadow_render_power = 3
|
|
||||||
}
|
|
||||||
|
|||||||
@@ -30,85 +30,32 @@ $rosewater = #f5e0dc
|
|||||||
|
|
||||||
# General theming
|
# General theming
|
||||||
general {
|
general {
|
||||||
col.active_border = $blue $green 45deg
|
gaps_in = 2
|
||||||
col.inactive_border = $surface1 80%
|
gaps_out = 4
|
||||||
col.urgent_border = $red
|
border_size = 2
|
||||||
col.float_border_active = $blue
|
col.active_border = rgba(33ccffee) rgba(00ff99ee) 45deg
|
||||||
col.float_border_inactive = $surface1
|
col.inactive_border = $inactive
|
||||||
col.focused_title = $text
|
layout = scrolling
|
||||||
col.unfocused_title = $subtext0
|
resize_on_border = true
|
||||||
col.backdrop = $base
|
extend_border_grab_area = 20 # Makes it easier to "grab" the edge
|
||||||
col.backdrop_title = $overlay0
|
|
||||||
col.backdrop_border = $surface1
|
|
||||||
col.backdrop_float_border = $surface1
|
|
||||||
col.backdrop_float_border_active = $blue
|
|
||||||
col.backdrop_float_title = $overlay0
|
|
||||||
col.backdrop_float_title_active = $text
|
|
||||||
col.backdrop_float_urgent = $red
|
|
||||||
col.backdrop_float_urgent_title = $text
|
|
||||||
col.backdrop_float_urgent_border = $red
|
|
||||||
col.backdrop_group_active = $surface1
|
|
||||||
col.backdrop_group_active_border = $blue
|
|
||||||
col.backdrop_group_active_title = $text
|
|
||||||
col.backdrop_group_inactive = $surface1
|
|
||||||
col.backdrop_group_inactive_border = $surface1
|
|
||||||
col.backdrop_group_inactive_title = $overlay0
|
|
||||||
col.backdrop_group_urgent = $red
|
|
||||||
col.backdrop_group_urgent_border = $red
|
|
||||||
col.backdrop_group_urgent_title = $text
|
|
||||||
}
|
}
|
||||||
|
|
||||||
# Window decorations
|
|
||||||
decoration {
|
decoration {
|
||||||
rounding = 6
|
rounding = 6
|
||||||
blur = yes
|
|
||||||
blur_size = 3
|
|
||||||
blur_passes = 2
|
|
||||||
drop_shadow = yes
|
|
||||||
shadow_range = 4
|
|
||||||
shadow_render_power = 3
|
|
||||||
col.shadow = rgba(0, 0, 0, 0.8)
|
|
||||||
col.shadow_active = rgba(0, 0, 0, 0.5)
|
|
||||||
col.shadow_inactive = rgba(0, 0, 0, 0.3)
|
|
||||||
}
|
}
|
||||||
|
|
||||||
# Input fields (e.g., Hyprctl menus)
|
# Input fields (e.g., Hyprctl menus)
|
||||||
input_field {
|
input_field {
|
||||||
col.background = $surface0
|
|
||||||
col.border = $blue
|
|
||||||
col.text = $text
|
|
||||||
col.placeholder = $overlay1
|
|
||||||
}
|
}
|
||||||
|
|
||||||
# Hyprbar (if used)
|
# Hyprbar (if used)
|
||||||
hyprbar {
|
hyprbar {
|
||||||
col.background = $surface0 90%
|
|
||||||
col.text = $text
|
|
||||||
col.icon = $text
|
|
||||||
col.icon_unoccupied = $overlay1
|
|
||||||
col.urgent = $red
|
|
||||||
col.urgent_text = $text
|
|
||||||
col.active_workspace = $blue
|
|
||||||
col.inactive_workspace = $overlay0
|
|
||||||
col.occupied_workspace = $subtext0
|
|
||||||
}
|
}
|
||||||
|
|
||||||
# Hyprlock (if used)
|
# Hyprlock (if used)
|
||||||
hyprlock {
|
hyprlock {
|
||||||
col.background = $base
|
|
||||||
col.input_field = $surface0
|
|
||||||
col.text = $text
|
|
||||||
col.time_text = $blue
|
|
||||||
col.date_text = $green
|
|
||||||
col.wrong_password = $red
|
|
||||||
col.wrong_password_bg = $surface0
|
|
||||||
}
|
}
|
||||||
|
|
||||||
# Hypridle (if used)
|
# Hypridle (if used)
|
||||||
hypridle {
|
hypridle {
|
||||||
col.lock = $base
|
|
||||||
col.lock_input_field = $surface0
|
|
||||||
col.lock_text = $text
|
|
||||||
col.lock_time_text = $blue
|
|
||||||
col.lock_date_text = $green
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -6,6 +6,7 @@ brave
|
|||||||
chromium
|
chromium
|
||||||
|
|
||||||
# utils
|
# utils
|
||||||
|
ripgrep
|
||||||
wget
|
wget
|
||||||
kdePackages.kdeconnect-kde
|
kdePackages.kdeconnect-kde
|
||||||
_1password-gui
|
_1password-gui
|
||||||
@@ -33,6 +34,7 @@ tea
|
|||||||
python3
|
python3
|
||||||
|
|
||||||
# communication
|
# communication
|
||||||
|
nextcloud-client
|
||||||
nextcloud-talk-desktop
|
nextcloud-talk-desktop
|
||||||
signal-desktop
|
signal-desktop
|
||||||
openssl
|
openssl
|
||||||
|
|||||||
Binary file not shown.
Generated
+3
-3
@@ -485,11 +485,11 @@
|
|||||||
},
|
},
|
||||||
"nixpkgs_2": {
|
"nixpkgs_2": {
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1773282481,
|
"lastModified": 1773389992,
|
||||||
"narHash": "sha256-b/GV2ysM8mKHhinse2wz+uP37epUrSE+sAKXy/xvBY4=",
|
"narHash": "sha256-wvfdLLWJ2I9oEpDd9PfMA8osfIZicoQ5MT1jIwNs9Tk=",
|
||||||
"owner": "NixOS",
|
"owner": "NixOS",
|
||||||
"repo": "nixpkgs",
|
"repo": "nixpkgs",
|
||||||
"rev": "fe416aaedd397cacb33a610b33d60ff2b431b127",
|
"rev": "c06b4ae3d6599a672a6210b7021d699c351eebda",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
|
|||||||
+60
-55
@@ -2,11 +2,13 @@
|
|||||||
description = "Droidnix: A dendritic NixOS + Home Manager configuration";
|
description = "Droidnix: A dendritic NixOS + Home Manager 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";
|
||||||
@@ -22,65 +24,68 @@
|
|||||||
hyprland.url = "github:hyprwm/Hyprland";
|
hyprland.url = "github:hyprwm/Hyprland";
|
||||||
};
|
};
|
||||||
|
|
||||||
outputs =
|
outputs =
|
||||||
inputs@{
|
inputs@{
|
||||||
self,
|
self,
|
||||||
nixpkgs,
|
nixpkgs,
|
||||||
home-manager,
|
home-manager,
|
||||||
emacs-overlay,
|
emacs-overlay,
|
||||||
catppuccin,
|
catppuccin,
|
||||||
zen-browser,
|
zen-browser,
|
||||||
hyprland,
|
hyprland,
|
||||||
...
|
...
|
||||||
}:
|
}:
|
||||||
let
|
let
|
||||||
lib = nixpkgs.lib;
|
lib = nixpkgs.lib;
|
||||||
system = "x86_64-linux";
|
system = "x86_64-linux";
|
||||||
user = import ./assets/flake/users/henrov.nix;
|
user = import ./assets/flake/users/henrov.nix;
|
||||||
machines = [
|
machines = [
|
||||||
"traveldroid"
|
"traveldroid"
|
||||||
"maindroid"
|
"maindroid"
|
||||||
];
|
];
|
||||||
flakeRoot = ./.; # Define flakeRoot here
|
flakeRoot = ./.; # Define flakeRoot here
|
||||||
in
|
in
|
||||||
{
|
{
|
||||||
nixosConfigurations = lib.genAttrs machines (
|
nixosConfigurations = lib.genAttrs machines (
|
||||||
machine:
|
machine:
|
||||||
lib.nixosSystem {
|
lib.nixosSystem {
|
||||||
inherit system;
|
inherit system;
|
||||||
modules = [
|
modules = [
|
||||||
# Import machine-specific configurations
|
# Standard NixOS modules
|
||||||
./assets/flake/machines/traveldroid/top.nix
|
#nixpkgs.nixosModules
|
||||||
|
|
||||||
# Catppuccin theme module
|
# Import machine-specific configurations
|
||||||
inputs.catppuccin.nixosModules.catppuccin
|
./assets/flake/machines/traveldroid/top.nix
|
||||||
|
|
||||||
# Anchoring all the other nixes
|
# Catppuccin theme module
|
||||||
./generated/top.nix
|
inputs.catppuccin.nixosModules.catppuccin
|
||||||
|
|
||||||
# Home Manager module
|
# Anchoring all the other nixes
|
||||||
inputs.home-manager.nixosModules.home-manager
|
./generated/top.nix
|
||||||
{
|
|
||||||
home-manager.useGlobalPkgs = true;
|
|
||||||
home-manager.useUserPackages = true;
|
|
||||||
home-manager.extraSpecialArgs = { inherit user inputs flakeRoot; };
|
|
||||||
}
|
|
||||||
];
|
|
||||||
specialArgs = { inherit user inputs flakeRoot; };
|
|
||||||
}
|
|
||||||
);
|
|
||||||
|
|
||||||
homeConfigurations = lib.genAttrs (map (machine: "${user.username}@${machine}") machines) (
|
# Home Manager module
|
||||||
userMachine:
|
inputs.home-manager.nixosModules.home-manager
|
||||||
home-manager.lib.homeManagerConfiguration {
|
{
|
||||||
inherit system;
|
home-manager.useGlobalPkgs = true;
|
||||||
configuration = import ./user.nix { inherit inputs user flakeRoot; };
|
home-manager.useUserPackages = true;
|
||||||
extraSpecialArgs = { inherit user inputs flakeRoot; };
|
home-manager.extraSpecialArgs = { inherit user inputs flakeRoot; };
|
||||||
}
|
}
|
||||||
);
|
];
|
||||||
|
specialArgs = { inherit user inputs flakeRoot; };
|
||||||
|
}
|
||||||
|
);
|
||||||
|
|
||||||
devShells.${system}.default = import ./assets/flake/terminal_shell/devshell.nix {
|
homeConfigurations = lib.genAttrs (map (machine: "${user.username}@${machine}") machines) (
|
||||||
inherit (nixpkgs.legacyPackages.${system}) mkShell;
|
userMachine:
|
||||||
};
|
home-manager.lib.homeManagerConfiguration {
|
||||||
|
inherit system;
|
||||||
|
configuration = import ./user.nix { inherit inputs user flakeRoot; };
|
||||||
|
extraSpecialArgs = { inherit user inputs flakeRoot; };
|
||||||
|
}
|
||||||
|
);
|
||||||
|
|
||||||
|
devShells.${system}.default = import ./assets/flake/terminal_shell/devshell.nix {
|
||||||
|
inherit (nixpkgs.legacyPackages.${system}) mkShell;
|
||||||
};
|
};
|
||||||
|
};
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -8,25 +8,23 @@
|
|||||||
}:
|
}:
|
||||||
|
|
||||||
let
|
let
|
||||||
hyprlandConfigDir = "${config.home-manager.users.${user.username}.xdg.configHome}/hypr";
|
hyprlandFiles = builtins.attrNames (builtins.readDir "${flakeRoot}/assets/hyprland/conf/hypr");
|
||||||
# Dynamically read all files in assets/hyprland/conf/hypr
|
# Filter out hyprland.conf from the list of files to symlink
|
||||||
hyprlandConfs =
|
otherHyprlandFiles = lib.filter (name: name != "hyprland.conf") hyprlandFiles;
|
||||||
lib.genAttrs (builtins.attrNames (builtins.readDir "${flakeRoot}/assets/hyprland/conf/hypr"))
|
# Generate xdg.configFile entries for all files except hyprland.conf
|
||||||
(name: {
|
otherConfigs = lib.genAttrs otherHyprlandFiles (name: {
|
||||||
text = builtins.readFile "${flakeRoot}/assets/hyprland/conf/hypr/${name}";
|
target = "hypr/${name}";
|
||||||
});
|
source = "${flakeRoot}/assets/hyprland/conf/hypr/${name}";
|
||||||
|
});
|
||||||
in
|
in
|
||||||
{
|
{
|
||||||
# NixOS: Enable Hyprland (optional)
|
|
||||||
programs.hyprland = {
|
programs.hyprland = {
|
||||||
enable = true;
|
enable = true;
|
||||||
};
|
};
|
||||||
|
|
||||||
# Home Manager: Hyprland-specific configurations
|
|
||||||
home-manager.users.${user.username} = {
|
home-manager.users.${user.username} = {
|
||||||
# Use config.home-manager.users.${user.username} instead of userConfig
|
home.stateVersion = "25.11";
|
||||||
home.stateVersion = config.home-manager.users.${user.username}.stateVersion or "25.11"; # Default fallback
|
home.username = user.username;
|
||||||
home.username = user.username; # Use the 'user' argument
|
|
||||||
home.homeDirectory =
|
home.homeDirectory =
|
||||||
config.home-manager.users.${user.username}.homeDirectory or "/home/${user.username}";
|
config.home-manager.users.${user.username}.homeDirectory or "/home/${user.username}";
|
||||||
|
|
||||||
@@ -34,11 +32,13 @@ in
|
|||||||
enable = true;
|
enable = true;
|
||||||
};
|
};
|
||||||
|
|
||||||
# Ensure the Hyprland config directory exists
|
# Merge all xdg.configFile definitions
|
||||||
xdg.configFile = {
|
xdg.configFile = otherConfigs // {
|
||||||
"hypr/.keep" = {
|
"hypr/hyprland.conf".text = ''
|
||||||
text = "";
|
${builtins.readFile "${flakeRoot}/assets/hyprland/conf/hypr/hyprland.conf"}
|
||||||
};
|
# Your manual settings will go below this line and will not be overwritten
|
||||||
} // hyprlandConfs;
|
'';
|
||||||
|
"hypr/.keep".text = "";
|
||||||
|
};
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,20 +0,0 @@
|
|||||||
{
|
|
||||||
config,
|
|
||||||
pkgs,
|
|
||||||
lib,
|
|
||||||
user,
|
|
||||||
inputs,
|
|
||||||
flakeRoot,
|
|
||||||
...
|
|
||||||
}:
|
|
||||||
let
|
|
||||||
bindingsContent = builtins.readFile (flakeRoot + "/assets/hyprland/conf/hypr/bindings.conf");
|
|
||||||
in
|
|
||||||
{
|
|
||||||
home-manager.users.${user.username} = {
|
|
||||||
wayland.windowManager.hyprland = {
|
|
||||||
enable = true;
|
|
||||||
extraConfig = bindingsContent;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
}
|
|
||||||
@@ -1,27 +0,0 @@
|
|||||||
{
|
|
||||||
config,
|
|
||||||
pkgs,
|
|
||||||
lib,
|
|
||||||
user,
|
|
||||||
flakeRoot,
|
|
||||||
...
|
|
||||||
}:
|
|
||||||
let
|
|
||||||
xdgDataHome = config.home-manager.users.${user.username}.xdg.dataHome;
|
|
||||||
in
|
|
||||||
{
|
|
||||||
# NixOS: Install Wofi system-wide (optional)
|
|
||||||
environment.systemPackages = with pkgs; [ wofi ];
|
|
||||||
|
|
||||||
# Home Manager: User-specific Wofi config
|
|
||||||
home-manager.users.${user.username} = {
|
|
||||||
# Install Wofi for the user
|
|
||||||
home.packages = with pkgs; [ wofi ];
|
|
||||||
|
|
||||||
# Wofi configuration
|
|
||||||
xdg.configFile."wofi/config".source = "${flakeRoot}/assets/system/conf/wofi/wofi.conf";
|
|
||||||
|
|
||||||
# Custom Catppuccin Mocha theme for Wofi
|
|
||||||
xdg.configFile."wofi/style.css".source = "${flakeRoot}/assets/system/conf/wofi/theming.css";
|
|
||||||
};
|
|
||||||
}
|
|
||||||
@@ -4,10 +4,8 @@
|
|||||||
./hyprland.nix
|
./hyprland.nix
|
||||||
./animations_effects/top.nix
|
./animations_effects/top.nix
|
||||||
./decorations/top.nix
|
./decorations/top.nix
|
||||||
./keyboard_binds/top.nix
|
|
||||||
./notifications/top.nix
|
./notifications/top.nix
|
||||||
./statusbar_tray/top.nix
|
./statusbar_tray/top.nix
|
||||||
./task_launcher/top.nix
|
|
||||||
./task_window_workspace_switcher/top.nix
|
./task_window_workspace_switcher/top.nix
|
||||||
./window_rules/top.nix
|
./window_rules/top.nix
|
||||||
];
|
];
|
||||||
|
|||||||
@@ -1,7 +0,0 @@
|
|||||||
{ config, pkgs, lib, user, inputs, flakeRoot,... }:
|
|
||||||
{
|
|
||||||
imports = [
|
|
||||||
# No subfolders to import
|
|
||||||
];
|
|
||||||
# .. put any code here
|
|
||||||
}
|
|
||||||
@@ -1,7 +0,0 @@
|
|||||||
{ config, pkgs, lib, user, inputs, flakeRoot,... }:
|
|
||||||
{
|
|
||||||
imports = [
|
|
||||||
# No subfolders to import
|
|
||||||
];
|
|
||||||
# .. put any code here
|
|
||||||
}
|
|
||||||
@@ -1 +0,0 @@
|
|||||||
# Your code here...
|
|
||||||
@@ -1,7 +0,0 @@
|
|||||||
{ config, pkgs, lib, user, inputs, flakeRoot,... }:
|
|
||||||
{
|
|
||||||
imports = [
|
|
||||||
# No subfolders to import
|
|
||||||
];
|
|
||||||
# .. put any code here
|
|
||||||
}
|
|
||||||
@@ -1,7 +0,0 @@
|
|||||||
{ config, pkgs, lib, user, inputs, flakeRoot,... }:
|
|
||||||
{
|
|
||||||
imports = [
|
|
||||||
# No subfolders to import
|
|
||||||
];
|
|
||||||
# .. put any code here
|
|
||||||
}
|
|
||||||
@@ -1,7 +0,0 @@
|
|||||||
{ config, pkgs, lib, user, inputs, flakeRoot,... }:
|
|
||||||
{
|
|
||||||
imports = [
|
|
||||||
# No subfolders to import
|
|
||||||
];
|
|
||||||
# .. put any code here
|
|
||||||
}
|
|
||||||
@@ -1,4 +0,0 @@
|
|||||||
{ config, pkgs, lib, user, inputs, flakeRoot,... }:
|
|
||||||
{
|
|
||||||
# .. put any code here
|
|
||||||
}
|
|
||||||
@@ -1,7 +0,0 @@
|
|||||||
{ config, pkgs, lib, user, inputs, flakeRoot,... }:
|
|
||||||
{
|
|
||||||
imports = [
|
|
||||||
# No subfolders to import
|
|
||||||
];
|
|
||||||
# .. put any code here
|
|
||||||
}
|
|
||||||
@@ -1,14 +0,0 @@
|
|||||||
{ config, pkgs, lib, user, inputs, flakeRoot,... }:
|
|
||||||
{
|
|
||||||
imports = [
|
|
||||||
./animations_effects/top.nix
|
|
||||||
./decorations/top.nix
|
|
||||||
./keyboard_binds/top.nix
|
|
||||||
./notifications/top.nix
|
|
||||||
./statusbar_tray/top.nix
|
|
||||||
./task_launcher/top.nix
|
|
||||||
./task_window_workspace_switcher/top.nix
|
|
||||||
./window_rules/top.nix
|
|
||||||
];
|
|
||||||
# .. put any code here
|
|
||||||
}
|
|
||||||
@@ -1,7 +0,0 @@
|
|||||||
{ config, pkgs, lib, user, inputs, flakeRoot,... }:
|
|
||||||
{
|
|
||||||
imports = [
|
|
||||||
# No subfolders to import
|
|
||||||
];
|
|
||||||
# .. put any code here
|
|
||||||
}
|
|
||||||
@@ -1,17 +1,36 @@
|
|||||||
{ config, pkgs, lib, ... }:
|
|
||||||
|
|
||||||
{
|
{
|
||||||
home-manager.users.${config.home.username} = {
|
config,
|
||||||
# Symlink Papirus icon theme
|
pkgs,
|
||||||
xdg.configFile."local/share/icons/Papirus".source = "/assets/system/theming/icons/papirus";
|
lib,
|
||||||
xdg.configFile."local/share/icons/Papirus-Dark".source = "/assets/system/theming/icons/papirus-dark"; # If you have the dark variant
|
...
|
||||||
|
}:
|
||||||
|
|
||||||
# Set Papirus as the default icon theme
|
let
|
||||||
|
username = "henrov"; # vervang door je echte gebruikersnaam
|
||||||
|
in
|
||||||
|
{
|
||||||
|
home-manager.users.${username} = {
|
||||||
|
|
||||||
|
# GTK icon theme: Papirus + Catppuccin Mocha
|
||||||
gtk.enable = true;
|
gtk.enable = true;
|
||||||
gtk.gtk3.iconTheme.name = "Papirus";
|
gtk.gtk3.iconTheme.name = "Papirus";
|
||||||
gtk.gtk4.iconTheme.name = "Papirus";
|
gtk.gtk4.iconTheme.name = "Papirus";
|
||||||
|
|
||||||
# Thunar and its plugins (as before)
|
# Catppuccin Mocha dark theme
|
||||||
|
xdg.configFile."gtk-3.0/settings.ini".text = ''
|
||||||
|
[Settings]
|
||||||
|
gtk-theme-name=Catppuccin-Mocha-Standard-Blue-Dark
|
||||||
|
gtk-icon-theme-name=Papirus
|
||||||
|
gtk-application-prefer-dark-theme=1
|
||||||
|
'';
|
||||||
|
xdg.configFile."gtk-4.0/settings.ini".text = ''
|
||||||
|
[Settings]
|
||||||
|
gtk-theme-name=Catppuccin-Mocha-Standard-Blue-Dark
|
||||||
|
gtk-icon-theme-name=Papirus
|
||||||
|
gtk-application-prefer-dark-theme=1
|
||||||
|
'';
|
||||||
|
|
||||||
|
# Thunar and plugins
|
||||||
home.packages = with pkgs; [
|
home.packages = with pkgs; [
|
||||||
thunar
|
thunar
|
||||||
thunar-volman
|
thunar-volman
|
||||||
@@ -20,15 +39,10 @@
|
|||||||
tumbler
|
tumbler
|
||||||
ffmpegthumbnailer
|
ffmpegthumbnailer
|
||||||
gvfs
|
gvfs
|
||||||
gvfs-mtp
|
|
||||||
gvfs-afc
|
|
||||||
gvfs-goa
|
|
||||||
gvfs-google
|
|
||||||
gvfs-smb
|
|
||||||
gvfs-nfs
|
|
||||||
xdg-utils
|
xdg-utils
|
||||||
];
|
];
|
||||||
|
|
||||||
|
# Default file manager
|
||||||
xdg.mimeApps = {
|
xdg.mimeApps = {
|
||||||
defaultApplications = {
|
defaultApplications = {
|
||||||
"inode/directory" = "Thunar.desktop";
|
"inode/directory" = "Thunar.desktop";
|
||||||
|
|||||||
@@ -3,5 +3,4 @@
|
|||||||
imports = [
|
imports = [
|
||||||
./thunar.nix
|
./thunar.nix
|
||||||
];
|
];
|
||||||
# .. put any code here
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -0,0 +1,92 @@
|
|||||||
|
;;; package --- early init -*- lexical-binding: t -*-
|
||||||
|
;;; Commentary:
|
||||||
|
;;; Prevents white flash and better Emacs defaults
|
||||||
|
;;; Code:
|
||||||
|
(set-language-environment "UTF-8")
|
||||||
|
(setq-default
|
||||||
|
default-frame-alist
|
||||||
|
'((background-color . "#1e1e2e")
|
||||||
|
(bottom-divider-width . 1) ; Thin horizontal window divider
|
||||||
|
(foreground-color . "#bac2de") ; Default foreground color
|
||||||
|
(fullscreen . maximized) ; Maximize the window by default
|
||||||
|
(horizontal-scroll-bars . nil) ; No horizontal scroll-bars
|
||||||
|
(left-fringe . 8) ; Thin left fringe
|
||||||
|
(menu-bar-lines . 0) ; No menu bar
|
||||||
|
(right-divider-width . 1) ; Thin vertical window divider
|
||||||
|
(right-fringe . 8) ; Thin right fringe
|
||||||
|
(tool-bar-lines . 0) ; No tool bar
|
||||||
|
(undecorated . t) ; Remove extraneous X decorations
|
||||||
|
(vertical-scroll-bars . nil)) ; No vertical scroll-bars
|
||||||
|
user-full-name "Henrov henrov" ; ME!
|
||||||
|
;; memory configuration
|
||||||
|
;; Higher garbage collection threshold, prevents frequent gc locks, reset later
|
||||||
|
gc-cons-threshold most-positive-fixnum
|
||||||
|
;; Ignore warnings for (obsolete) elisp compilations
|
||||||
|
byte-compile-warnings '(not obsolete)
|
||||||
|
;; And other log types completely
|
||||||
|
warning-suppress-log-types '((comp) (bytecomp))
|
||||||
|
;; Large files are okay in the new millenium.
|
||||||
|
large-file-warning-threshold 100000000
|
||||||
|
;; dont show garbage collection messages at startup, will reset later
|
||||||
|
garbage-collection-messages nil
|
||||||
|
;; native compilation
|
||||||
|
package-native-compile t
|
||||||
|
native-comp-warning-on-missing-source nil
|
||||||
|
native-comp-async-report-warnings-errors 'silent
|
||||||
|
;; Read more based on system pipe capacity
|
||||||
|
read-process-output-max (max (* 10240 10240) read-process-output-max)
|
||||||
|
;; scroll configuration
|
||||||
|
scroll-margin 0 ; Lets scroll to the end of the margin
|
||||||
|
scroll-conservatively 100000 ; Never recenter the window
|
||||||
|
scroll-preserve-screen-position 1 ; Scrolling back and forth
|
||||||
|
;; frame config
|
||||||
|
;; Improve emacs startup time by not resizing to adjust for custom settings
|
||||||
|
frame-inhibit-implied-resize t
|
||||||
|
;; Dont resize based on character height / width but to exact pixels
|
||||||
|
frame-resize-pixelwise t
|
||||||
|
;; backups & files
|
||||||
|
backup-directory-alist '(("." . "~/.backups/")) ; Don't clutter
|
||||||
|
backup-by-copying t ; Don't clobber symlinks
|
||||||
|
create-lockfiles nil ; Don't have temp files
|
||||||
|
delete-old-versions t ; Cleanup automatically
|
||||||
|
kept-new-versions 6 ; Update every few times
|
||||||
|
kept-old-versions 2 ; And cleanup even more
|
||||||
|
version-control t ; Version them backups
|
||||||
|
delete-by-moving-to-trash t ; Dont delete, send to trash instead
|
||||||
|
;; startup
|
||||||
|
inhibit-startup-screen t ; I have already done the tutorial. Twice
|
||||||
|
inhibit-startup-message t ; I know I am ready
|
||||||
|
inhibit-startup-echo-area-message t ; Yep, still know it
|
||||||
|
initial-scratch-message nil ; I know it is the scratch buffer!
|
||||||
|
initial-buffer-choice nil
|
||||||
|
inhibit-startup-buffer-menu t
|
||||||
|
inhibit-x-resources t
|
||||||
|
initial-major-mode 'fundamental-mode
|
||||||
|
pgtk-wait-for-event-timeout 0.001 ; faster child frames
|
||||||
|
ad-redefinition-action 'accept ; dont care about legacy things being redefined
|
||||||
|
inhibit-compacting-font-caches t
|
||||||
|
;; tabs
|
||||||
|
tab-width 4 ; Always tab 4 spaces.
|
||||||
|
indent-tabs-mode nil ; Never use actual tabs.
|
||||||
|
;; rendering
|
||||||
|
cursor-in-non-selected-windows nil ; dont render cursors other windows
|
||||||
|
;; packages
|
||||||
|
use-package-always-defer t
|
||||||
|
load-prefer-newer t
|
||||||
|
default-input-method nil
|
||||||
|
use-dialog-box nil
|
||||||
|
use-file-dialog nil
|
||||||
|
use-package-expand-minimally t
|
||||||
|
package-enable-at-startup nil
|
||||||
|
use-package-enable-imenu-support t
|
||||||
|
auto-mode-case-fold nil ; No second pass of case-insensitive search over auto-mode-alist.
|
||||||
|
package-archives '(("melpa" . "https://melpa.org/packages/")
|
||||||
|
("gnu" . "https://elpa.gnu.org/packages/")
|
||||||
|
("nongnu" . "https://elpa.nongnu.org/nongnu/")
|
||||||
|
("melpa-stable" . "https://stable.melpa.org/packages/"))
|
||||||
|
package-archive-priorities '(("gnu" . 99)
|
||||||
|
("nongnu" . 80)
|
||||||
|
("melpa" . 70)
|
||||||
|
("melpa-stable" . 50))
|
||||||
|
)
|
||||||
|
;;; early-init.el ends here
|
||||||
@@ -0,0 +1,93 @@
|
|||||||
|
{ pkgs, ... }:
|
||||||
|
|
||||||
|
{
|
||||||
|
# NixOS Configuration
|
||||||
|
environment.systemPackages = with pkgs; [
|
||||||
|
# Add system-wide packages here, if any
|
||||||
|
];
|
||||||
|
|
||||||
|
# Home Manager Configuration for the user 'henrov'
|
||||||
|
home-manager.users.henrov = {
|
||||||
|
programs.emacs = {
|
||||||
|
enable = true;
|
||||||
|
package = pkgs.emacs-pgtk.override { withTreeSitter = true; };
|
||||||
|
|
||||||
|
# Group related packages for clarity and easier maintenance
|
||||||
|
extraPackages = epkgs: with epkgs; [
|
||||||
|
# Tree-sitter and language support
|
||||||
|
manualPackages.treesit-grammars.with-all-grammars
|
||||||
|
rust-mode
|
||||||
|
rustic
|
||||||
|
nix-mode
|
||||||
|
hcl-mode
|
||||||
|
|
||||||
|
# UI/UX and navigation
|
||||||
|
nerd-icons
|
||||||
|
doom-modeline
|
||||||
|
diminish
|
||||||
|
eldoc
|
||||||
|
eldoc-box
|
||||||
|
pulsar
|
||||||
|
which-key
|
||||||
|
avy
|
||||||
|
consult
|
||||||
|
vertico
|
||||||
|
marginalia
|
||||||
|
crux
|
||||||
|
shell-pop
|
||||||
|
|
||||||
|
# Completion and snippets
|
||||||
|
nerd-icons-corfu
|
||||||
|
corfu
|
||||||
|
cape
|
||||||
|
orderless
|
||||||
|
yasnippet
|
||||||
|
yasnippet-snippets
|
||||||
|
|
||||||
|
# Utilities and tools
|
||||||
|
rg
|
||||||
|
exec-path-from-shell
|
||||||
|
eat
|
||||||
|
f
|
||||||
|
gptel
|
||||||
|
nixpkgs-fmt
|
||||||
|
envrc
|
||||||
|
|
||||||
|
# Theming
|
||||||
|
catppuccin-theme
|
||||||
|
|
||||||
|
# Git
|
||||||
|
magit
|
||||||
|
|
||||||
|
# Editing and workflow
|
||||||
|
expreg
|
||||||
|
vundo
|
||||||
|
puni
|
||||||
|
|
||||||
|
# Error and side panel support
|
||||||
|
sideline
|
||||||
|
sideline-flymake
|
||||||
|
sideline-eglot
|
||||||
|
];
|
||||||
|
};
|
||||||
|
|
||||||
|
# Home Manager session variables
|
||||||
|
home.sessionVariables = {
|
||||||
|
EDITOR = "emacs";
|
||||||
|
XDG_SCREENSHOTS_DIR = "~/screenshots";
|
||||||
|
};
|
||||||
|
/*
|
||||||
|
# Home Manager file management
|
||||||
|
home.file = {
|
||||||
|
"emacs/early-init.el" = {
|
||||||
|
source = ./early-init.el;
|
||||||
|
target = ".emacs.d/early-init.el";
|
||||||
|
};
|
||||||
|
"emacs/init.el" = {
|
||||||
|
source = ./init.el;
|
||||||
|
target = ".emacs.d/init.el";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
*/
|
||||||
|
};
|
||||||
|
}
|
||||||
@@ -0,0 +1,400 @@
|
|||||||
|
;;; package --- Summary - My minimal Emacs init file -*- lexical-binding: t -*-
|
||||||
|
|
||||||
|
;;; Commentary:
|
||||||
|
;;; Simple Emacs setup I carry everywhere
|
||||||
|
|
||||||
|
;;; Code:
|
||||||
|
(setq custom-file (locate-user-emacs-file "custom.el"))
|
||||||
|
(load custom-file 'noerror) ;; no error on missing custom file
|
||||||
|
|
||||||
|
(require 'package)
|
||||||
|
(package-initialize)
|
||||||
|
|
||||||
|
(defun reset-custom-vars ()
|
||||||
|
"Resets the custom variables that were set to crazy numbers"
|
||||||
|
(setopt gc-cons-threshold (* 1024 1024 100))
|
||||||
|
(setopt garbage-collection-messages t))
|
||||||
|
|
||||||
|
(use-package emacs
|
||||||
|
:custom
|
||||||
|
(native-comp-async-query-on-exit t)
|
||||||
|
(read-answer-short t)
|
||||||
|
(use-short-answers t)
|
||||||
|
(enable-recursive-minibuffers t)
|
||||||
|
(which-func-update-delay 1.0)
|
||||||
|
(visible-bell nil)
|
||||||
|
(custom-buffer-done-kill t)
|
||||||
|
(whitespace-line-column nil)
|
||||||
|
(x-underline-at-descent-line t)
|
||||||
|
(imenu-auto-rescan t)
|
||||||
|
(uniquify-buffer-name-style 'forward)
|
||||||
|
(confirm-nonexistent-file-or-buffer nil)
|
||||||
|
(create-lockfiles nil)
|
||||||
|
(make-backup-files nil)
|
||||||
|
(kill-do-not-save-duplicates t)
|
||||||
|
(sentence-end-double-space nil)
|
||||||
|
(treesit-enabled-modes t)
|
||||||
|
:init
|
||||||
|
;; base visual
|
||||||
|
(menu-bar-mode -1) ;; no menu bar
|
||||||
|
(toggle-scroll-bar -1) ;; no scroll bar
|
||||||
|
(tool-bar-mode -1) ;; no tool bar either
|
||||||
|
(blink-cursor-mode -1) ;; stop blinking
|
||||||
|
|
||||||
|
;; font of the century
|
||||||
|
(set-frame-font "Aporetic Sans Mono 12" nil t)
|
||||||
|
|
||||||
|
:bind
|
||||||
|
(("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-x k" . kill-current-buffer)) ; kill the buffer, dont ask
|
||||||
|
:hook
|
||||||
|
(text-mode . delete-trailing-whitespace-mode)
|
||||||
|
(prog-mode . delete-trailing-whitespace-mode)
|
||||||
|
(after-init . global-display-line-numbers-mode) ;; always show line numbers
|
||||||
|
(after-init . column-number-mode) ;; column number 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 . electric-pair-mode) ;; i mean ... parens should auto create
|
||||||
|
(after-init . reset-custom-vars)
|
||||||
|
)
|
||||||
|
|
||||||
|
(use-package autorevert
|
||||||
|
:ensure nil
|
||||||
|
:custom
|
||||||
|
(auto-revert-interval 3)
|
||||||
|
(auto-revert-remote-files nil)
|
||||||
|
(auto-revert-use-notify t)
|
||||||
|
(auto-revert-avoid-polling nil)
|
||||||
|
(auto-revert-verbose t)
|
||||||
|
:hook
|
||||||
|
(after-init . global-auto-revert-mode))
|
||||||
|
|
||||||
|
(use-package recentf
|
||||||
|
:ensure nil
|
||||||
|
:commands (recentf-mode recentf-cleanup)
|
||||||
|
:hook
|
||||||
|
(after-init . recentf-mode)
|
||||||
|
:custom
|
||||||
|
(recentf-auto-cleanup 'never)
|
||||||
|
(recentf-exclude
|
||||||
|
(list "\\.tar$" "\\.tbz2$" "\\.tbz$" "\\.tgz$" "\\.bz2$"
|
||||||
|
"\\.bz$" "\\.gz$" "\\.gzip$" "\\.xz$" "\\.zip$"
|
||||||
|
"\\.7z$" "\\.rar$"
|
||||||
|
"COMMIT_EDITMSG\\'"
|
||||||
|
"\\.\\(?:gz\\|gif\\|svg\\|png\\|jpe?g\\|bmp\\|xpm\\)$"
|
||||||
|
"-autoloads\\.el$" "autoload\\.el$"))
|
||||||
|
|
||||||
|
:config
|
||||||
|
;; A cleanup depth of -90 ensures that `recentf-cleanup' runs before
|
||||||
|
;; `recentf-save-list', allowing stale entries to be removed before the list
|
||||||
|
;; is saved by `recentf-save-list', which is automatically added to
|
||||||
|
;; `kill-emacs-hook' by `recentf-mode'.
|
||||||
|
(add-hook 'kill-emacs-hook #'recentf-cleanup -90))
|
||||||
|
|
||||||
|
(use-package savehist
|
||||||
|
:ensure nil
|
||||||
|
:commands (savehist-mode savehist-save)
|
||||||
|
:hook
|
||||||
|
(after-init . savehist-mode)
|
||||||
|
:custom
|
||||||
|
(savehist-autosave-interval 600)
|
||||||
|
(savehist-additional-variables
|
||||||
|
'(kill-ring ; clipboard
|
||||||
|
register-alist ; macros
|
||||||
|
mark-ring global-mark-ring ; marks
|
||||||
|
search-ring regexp-search-ring)))
|
||||||
|
|
||||||
|
(use-package hl-line
|
||||||
|
:ensure nil
|
||||||
|
:custom
|
||||||
|
(hl-line-sticky-flag nil)
|
||||||
|
(global-hl-line-sticky-flag nil)
|
||||||
|
:hook
|
||||||
|
(after-init . global-hl-line-mode))
|
||||||
|
|
||||||
|
(use-package saveplace
|
||||||
|
:ensure nil
|
||||||
|
:commands (save-place-mode save-place-local-mode)
|
||||||
|
:hook
|
||||||
|
(after-init . save-place-mode)
|
||||||
|
:custom
|
||||||
|
(save-place-limit 400))
|
||||||
|
|
||||||
|
(use-package nerd-icons
|
||||||
|
:custom
|
||||||
|
;; disable bright icon colors
|
||||||
|
(nerd-icons-color-icons nil))hells.nix
|
||||||
|
|
||||||
|
(use-package doom-modeline
|
||||||
|
:custom
|
||||||
|
(inhibit-compacting-font-caches t) ;; speed
|
||||||
|
(doom-modeline-buffer-file-name-style 'relative-from-project)
|
||||||
|
(doom-modeline-major-mode-icon nil) ;; distracting icons, no thank you
|
||||||
|
(doom-modeline-buffer-encoding nil) ;; everything is utf-8 anyway
|
||||||
|
(doom-modeline-buffer-state-icon nil) ;; the filename already shows me
|
||||||
|
(doom-modeline-lsp nil) ;; lsp state is too distracting, too often
|
||||||
|
:hook (after-init . doom-modeline-mode))
|
||||||
|
|
||||||
|
(load-theme 'catppuccin :no-confirm)
|
||||||
|
|
||||||
|
(use-package diminish :demand t) ;; declutter the modeline
|
||||||
|
(use-package eldoc
|
||||||
|
:diminish eldoc-mode
|
||||||
|
:custom
|
||||||
|
(eldoc-echo-area-use-multiline-p nil)) ;; docs for everything
|
||||||
|
|
||||||
|
(use-package eldoc-box
|
||||||
|
:defer t
|
||||||
|
:config
|
||||||
|
(set-face-background 'eldoc-box-border (catppuccin-color 'green))
|
||||||
|
(set-face-background 'eldoc-box-body (catppuccin-color 'base))
|
||||||
|
:bind
|
||||||
|
(("M-h" . eldoc-box-help-at-point)))
|
||||||
|
|
||||||
|
(use-package pulsar
|
||||||
|
:commands pulsar-global-mode pulsar-recenter-top pulsar-reveal-entry
|
||||||
|
:init
|
||||||
|
(defface pulsar-catppuccin
|
||||||
|
`((default :extend t)
|
||||||
|
(((class color) (min-colors 88) (background light))
|
||||||
|
:background ,(catppuccin-color 'sapphire))
|
||||||
|
(((class color) (min-colors 88) (background dark))
|
||||||
|
:background ,(catppuccin-color 'sapphire))
|
||||||
|
(t :inverse-video t))
|
||||||
|
"Alternative nord face for `pulsar-face'."
|
||||||
|
:group 'pulsar-faces)
|
||||||
|
:custom
|
||||||
|
(pulsar-face 'pulsar-catppuccin)
|
||||||
|
:hook
|
||||||
|
(after-init . pulsar-global-mode))
|
||||||
|
|
||||||
|
(use-package which-key
|
||||||
|
:commands which-key-mode
|
||||||
|
:diminish which-key-mode
|
||||||
|
:hook
|
||||||
|
(after-init . which-key-mode))
|
||||||
|
|
||||||
|
(use-package expreg
|
||||||
|
:bind ("M-m" . expreg-expand))
|
||||||
|
|
||||||
|
(use-package vundo) ;; undo tree
|
||||||
|
|
||||||
|
;; better structured editing
|
||||||
|
(use-package puni
|
||||||
|
:commands puni-global-mode
|
||||||
|
:hook
|
||||||
|
(after-init . puni-global-mode))
|
||||||
|
|
||||||
|
(use-package avy
|
||||||
|
:bind
|
||||||
|
("M-i" . avy-goto-char-2)
|
||||||
|
:custom
|
||||||
|
(avy-background t))
|
||||||
|
|
||||||
|
(use-package consult
|
||||||
|
:bind
|
||||||
|
("C-x b" . consult-buffer) ;; orig. switch-to-buffer
|
||||||
|
("M-y" . consult-yank-pop) ;; orig. yank-pop
|
||||||
|
("M-g M-g" . consult-goto-line) ;; orig. goto-line
|
||||||
|
("M-g i" . consult-imenu) ;; consult version is interactive
|
||||||
|
("M-g r" . consult-ripgrep) ;; find in project also works
|
||||||
|
:custom
|
||||||
|
(consult-narrow-key "<"))
|
||||||
|
|
||||||
|
(use-package vertico
|
||||||
|
:commands vertico-mode
|
||||||
|
:custom
|
||||||
|
(read-file-name-completion-ignore-case t)
|
||||||
|
(read-buffer-completion-ignore-case t)
|
||||||
|
(completion-ignore-case t)
|
||||||
|
(enable-recursive-minibuffers t)
|
||||||
|
(minibuffer-prompt-properties '(read-only t cursor-intangible t face minibuffer-prompt))
|
||||||
|
:init
|
||||||
|
(vertico-mode)
|
||||||
|
:hook
|
||||||
|
(minibuffer-setup-hook . cursor-intangible-mode))
|
||||||
|
|
||||||
|
(use-package marginalia
|
||||||
|
:commands marginalia-mode
|
||||||
|
:hook (after-init . marginalia-mode))
|
||||||
|
|
||||||
|
(use-package crux
|
||||||
|
:bind
|
||||||
|
("C-c M-e" . crux-find-user-init-file)
|
||||||
|
("C-c C-w" . crux-transpose-windows)
|
||||||
|
("C-c M-d" . crux-find-current-directory-dir-locals-file)
|
||||||
|
("C-a" . crux-move-beginning-of-line))
|
||||||
|
|
||||||
|
(use-package magit
|
||||||
|
:bind (("C-M-g" . magit-status)))
|
||||||
|
|
||||||
|
(use-package nerd-icons-corfu
|
||||||
|
:commands nerd-icons-corfu-formatter
|
||||||
|
:defines corfu-margin-formatters)
|
||||||
|
|
||||||
|
(use-package corfu
|
||||||
|
:commands global-corfu-mode
|
||||||
|
:custom
|
||||||
|
(corfu-cycle t)
|
||||||
|
(corfu-auto t)
|
||||||
|
(corfu-auto-delay 1)
|
||||||
|
(corfu-auto-prefix 3)
|
||||||
|
(corfu-separator ?_)
|
||||||
|
:hook
|
||||||
|
(after-init . global-corfu-mode)
|
||||||
|
:config
|
||||||
|
(add-to-list 'corfu-margin-formatters #'nerd-icons-corfu-formatter))
|
||||||
|
|
||||||
|
(use-package cape)
|
||||||
|
|
||||||
|
(use-package orderless
|
||||||
|
:custom
|
||||||
|
(completion-styles '(orderless partial-completion basic))
|
||||||
|
(completion-category-defaults nil)
|
||||||
|
(completion-category-overrides nil))
|
||||||
|
|
||||||
|
(use-package yasnippet
|
||||||
|
:commands yas-global-mode
|
||||||
|
:diminish yas-minor-mode
|
||||||
|
:hook
|
||||||
|
(after-init . yas-global-mode))
|
||||||
|
|
||||||
|
(use-package yasnippet-snippets :after yasnippet)
|
||||||
|
|
||||||
|
(use-package exec-path-from-shell
|
||||||
|
:commands exec-path-from-shell-initialize
|
||||||
|
:custom
|
||||||
|
(exec-path-from-shell-arguments nil)
|
||||||
|
:hook
|
||||||
|
(after-init . exec-path-from-shell-initialize))
|
||||||
|
|
||||||
|
(use-package nixpkgs-fmt
|
||||||
|
:custom
|
||||||
|
(nixpkgs-fmt-command "nixfmt"))
|
||||||
|
|
||||||
|
(use-package eat
|
||||||
|
:bind
|
||||||
|
(("C-c e p" . eat-project)
|
||||||
|
("C-c e t" . eat)))
|
||||||
|
|
||||||
|
(use-package f :demand t)
|
||||||
|
|
||||||
|
(use-package envrc
|
||||||
|
:commands envrc-global-mode
|
||||||
|
:hook
|
||||||
|
(after-init . envrc-global-mode))
|
||||||
|
|
||||||
|
(use-package gptel
|
||||||
|
:commands gptel-make-anthropic f-read-text
|
||||||
|
:config
|
||||||
|
(gptel-make-anthropic "Claude"
|
||||||
|
:stream t :key (f-read-text "/run/secrets/claude_key")))
|
||||||
|
|
||||||
|
(use-package sideline-flymake)
|
||||||
|
(use-package sideline-eglot)
|
||||||
|
(use-package sideline
|
||||||
|
:custom
|
||||||
|
(sideline-backends-right '(sideline-flymake sideline-eglot))
|
||||||
|
:hook
|
||||||
|
(eglot-managed-mode . sideline-mode)
|
||||||
|
(flymake-mode . sideline-mode))
|
||||||
|
|
||||||
|
(use-package eglot
|
||||||
|
:custom
|
||||||
|
(eglot-extend-to-xref t)
|
||||||
|
(eglot-ignored-server-capabilities '(:inlayHintProvider))
|
||||||
|
(jsonrpc-event-hook nil)
|
||||||
|
:hook
|
||||||
|
(eglot-managed-mode . eldoc-box-hover-mode)
|
||||||
|
(before-save . eldoc-format-buffer)
|
||||||
|
:bind
|
||||||
|
(:map eglot-mode-map
|
||||||
|
("C-c l a" . eglot-code-actions)
|
||||||
|
("C-c l r" . eglot-rename)
|
||||||
|
("C-c l h" . eldoc)
|
||||||
|
("C-c l g" . xref-find-references)
|
||||||
|
("C-c l w" . eglot-reconnect)))
|
||||||
|
|
||||||
|
(use-package proced
|
||||||
|
:custom
|
||||||
|
(proced-auto-update-flag t)
|
||||||
|
(proced-auto-update-interval 3)
|
||||||
|
(proced-enable-color-flag t)
|
||||||
|
(proced-show-remote-processes t))
|
||||||
|
|
||||||
|
(use-package org
|
||||||
|
:ensure t
|
||||||
|
:defer t
|
||||||
|
:commands (org-mode org-capture org-agenda)
|
||||||
|
:init
|
||||||
|
(defvar org-journal-file "~/nextcloud/org/journal.org")
|
||||||
|
(defvar org-archive-file "~/nextcloud/org/archive.org")
|
||||||
|
(defvar org-notes-file "~/nextcloud/org/notes.org")
|
||||||
|
(defvar org-inbox-file "~/nextcloud/org/inbox.org")
|
||||||
|
(defvar org-work-file "~/nextcloud/org/work.org")
|
||||||
|
(defun my/org-capture-project-target-heading ()
|
||||||
|
"Determine Org target headings from the current file's project path.
|
||||||
|
|
||||||
|
This function assumes a directory structure like '~/projects/COMPANY/PROJECT/'.
|
||||||
|
It extracts 'COMPANY' and 'PROJECT' to use as nested headlines
|
||||||
|
for an Org capture template.
|
||||||
|
|
||||||
|
If the current buffer is not visi
|
||||||
|
ting a file within such a
|
||||||
|
project structure, it returns nil, causing capture to default to
|
||||||
|
the top of the file."
|
||||||
|
(when-let* ((path (buffer-file-name))) ; Ensure we are in a file-visiting buffer
|
||||||
|
(let ((path-parts (split-string path "/" t " ")))
|
||||||
|
(when-let* ((projects-pos (cl-position "projects" path-parts :test #'string=))
|
||||||
|
(company (nth (+ 1 projects-pos) path-parts))
|
||||||
|
(project (nth (+ 2 projects-pos) path-parts)))
|
||||||
|
;; Return a list of headlines for Org to find or create.
|
||||||
|
(list company project)))))
|
||||||
|
:bind
|
||||||
|
(("C-c c" . org-capture)
|
||||||
|
("C-c i" . org-store-link)
|
||||||
|
("C-c a" . org-agenda)
|
||||||
|
:map org-mode-map
|
||||||
|
("C-c t" . org-toggle-inline-images)
|
||||||
|
("C-c l" . org-toggle-link-display))
|
||||||
|
:custom
|
||||||
|
(org-agenda-files (list org-inbox-file org-journal-file))
|
||||||
|
(org-directory "~/nextcloud/org")
|
||||||
|
(org-default-notes-file org-inbox-file)
|
||||||
|
(org-archive-location (concat org-archive-file "::* From %s"))
|
||||||
|
(org-log-done 'time)
|
||||||
|
(org-log-into-drawer t)
|
||||||
|
(org-hide-emphasis-markers t)
|
||||||
|
(org-src-fontify-natively t)
|
||||||
|
(org-src-tab-acts-natively t)
|
||||||
|
(org-capture-templates '(("t" "Todo" entry (file org-inbox-file)
|
||||||
|
"* TODO %?\n:PROPERTIES:\n:CREATED: %U\n:END:\n\n%a\n\n)")
|
||||||
|
("j" "Journal" entry (file+olp+datetree org-journal-file)
|
||||||
|
"* %?\n:PROPERTIES:\n:CREATED: %U\n:END:\n\n%a\n\n")
|
||||||
|
("n" "Note" entry (file org-notes-file)
|
||||||
|
"* %?\n:PROPERTIES:\n:CREATED: %U\n:END:\n\n%a\n\n")
|
||||||
|
("p" "Project Task" item
|
||||||
|
(file+function org-work-file my/org-capture-project-target-heading)
|
||||||
|
"* TODO %? \n CLOCK: %U"
|
||||||
|
))
|
||||||
|
)
|
||||||
|
:config
|
||||||
|
;; Enable syntax highlighting in code blocks
|
||||||
|
(add-hook 'org-mode-hook 'turn-on-font-lock)
|
||||||
|
(add-hook 'org-mode-hook 'org-indent-mode))
|
||||||
|
|
||||||
|
;; extras
|
||||||
|
(use-package comp-run
|
||||||
|
:ensure nil
|
||||||
|
:config
|
||||||
|
(push "tramp-loaddefs.el.gz" native-comp-jit-compilation-deny-list)
|
||||||
|
(push "cl-loaddefs.el.gz" native-comp-jit-compilation-deny-list))
|
||||||
|
|
||||||
|
(use-package rustic
|
||||||
|
:custom
|
||||||
|
(rustic-lsp-client 'eglot))
|
||||||
|
|
||||||
|
(provide 'init)
|
||||||
|
|
||||||
|
;;; init.el ends here
|
||||||
@@ -4,6 +4,7 @@
|
|||||||
./kitty.nix
|
./kitty.nix
|
||||||
./starship.nix
|
./starship.nix
|
||||||
./zsh.nix
|
./zsh.nix
|
||||||
|
./emacs.nix
|
||||||
];
|
];
|
||||||
# .. put any code here
|
# .. put any code here
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -26,10 +26,5 @@ in
|
|||||||
exec-once = [ "eww daemon" ];
|
exec-once = [ "eww daemon" ];
|
||||||
exec = [ "eww open-many ${ewwConfigDir}/widgets" ]; # Adjust as needed
|
exec = [ "eww open-many ${ewwConfigDir}/widgets" ]; # Adjust as needed
|
||||||
};
|
};
|
||||||
# For MangoWC, use:
|
|
||||||
# wayland.windowManager.mangowc.config = {
|
|
||||||
# exec = [ "eww daemon" ];
|
|
||||||
# exec-once = [ "eww open-many ${ewwConfigDir}/widgets" ];
|
|
||||||
# };
|
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,26 +1,14 @@
|
|||||||
{ config, pkgs, ... }:
|
{ pkgs, ... }:
|
||||||
|
|
||||||
{
|
{
|
||||||
# Enable GTK and Qt theming
|
|
||||||
programs.gtk.enable = true;
|
|
||||||
programs.qt.enable = true;
|
|
||||||
|
|
||||||
# Install the Adwaita icon theme
|
|
||||||
environment.systemPackages = with pkgs; [
|
environment.systemPackages = with pkgs; [
|
||||||
adwaita-icon-theme
|
catppuccin-gtk
|
||||||
|
papirus-icon-theme
|
||||||
];
|
];
|
||||||
|
|
||||||
# Set GTK theme and icon theme via environment variables
|
|
||||||
environment.sessionVariables = {
|
environment.sessionVariables = {
|
||||||
GTK_THEME = "Adwaita:dark";
|
GTK_THEME = "Catppuccin-Mocha-Standard-Blue-Dark";
|
||||||
GTK_ICON_THEME = "Adwaita";
|
GTK_ICON_THEME = "Papirus-Dark";
|
||||||
QT_STYLE_OVERRIDE = "gtk2";
|
GTK_APPLICATION_PREFER_DARK_THEME = "1";
|
||||||
QT_QPA_PLATFORMTHEME = "gtk2";
|
|
||||||
};
|
};
|
||||||
|
|
||||||
# For Qt5/Qt6 apps
|
|
||||||
environment.etc."xdg/qt5ct/qss/qt5ct.qss".text = ''
|
|
||||||
/* Set dark palette for Qt5 apps */
|
|
||||||
@import "dark";
|
|
||||||
'';
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -2,11 +2,10 @@
|
|||||||
{
|
{
|
||||||
imports = [
|
imports = [
|
||||||
./wayland.nix
|
./wayland.nix
|
||||||
./eww.nix
|
#./eww.nix
|
||||||
./waybar.nix
|
./waybar.nix
|
||||||
./login-tuigreeter.nix
|
./login-tuigreeter.nix
|
||||||
#./login-lightdm.nix
|
#./login-lightdm.nix
|
||||||
./gtk.nix
|
./gtk.nix
|
||||||
];
|
];
|
||||||
# .. put any code here
|
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user