diff --git a/flake.lock b/flake.lock
index 7af56ed..968701a 100644
--- a/flake.lock
+++ b/flake.lock
@@ -67,6 +67,38 @@
"type": "github"
}
},
+ "flake-compat_2": {
+ "locked": {
+ "lastModified": 1733328505,
+ "narHash": "sha256-NeCCThCEP3eCl2l/+27kNNK7QrwZB1IJCrXfrbv5oqU=",
+ "rev": "ff81ac966bb2cae68946d5ed5fc4994f96d0ffec",
+ "revCount": 69,
+ "type": "tarball",
+ "url": "https://api.flakehub.com/f/pinned/edolstra/flake-compat/1.1.0/01948eb7-9cba-704f-bbf3-3fa956735b52/source.tar.gz?rev=ff81ac966bb2cae68946d5ed5fc4994f96d0ffec&revCount=69"
+ },
+ "original": {
+ "type": "tarball",
+ "url": "https://flakehub.com/f/edolstra/flake-compat/1.tar.gz"
+ }
+ },
+ "flake-parts": {
+ "inputs": {
+ "nixpkgs-lib": "nixpkgs-lib"
+ },
+ "locked": {
+ "lastModified": 1754091436,
+ "narHash": "sha256-XKqDMN1/Qj1DKivQvscI4vmHfDfvYR2pfuFOJiCeewM=",
+ "owner": "hercules-ci",
+ "repo": "flake-parts",
+ "rev": "67df8c627c2c39c41dbec76a1f201929929ab0bd",
+ "type": "github"
+ },
+ "original": {
+ "owner": "hercules-ci",
+ "repo": "flake-parts",
+ "type": "github"
+ }
+ },
"gitignore": {
"inputs": {
"nixpkgs": [
@@ -399,6 +431,26 @@
"type": "github"
}
},
+ "nixcord": {
+ "inputs": {
+ "flake-compat": "flake-compat_2",
+ "flake-parts": "flake-parts",
+ "nixpkgs": "nixpkgs_3"
+ },
+ "locked": {
+ "lastModified": 1755307498,
+ "narHash": "sha256-6AXJWZnW/Y9qxlblabRx3NeMtfeMGicndefYEolzgtg=",
+ "owner": "kaylorben",
+ "repo": "nixcord",
+ "rev": "a171d05a26467a74c66138ac83f1dd1fb07e4a3e",
+ "type": "github"
+ },
+ "original": {
+ "owner": "kaylorben",
+ "repo": "nixcord",
+ "type": "github"
+ }
+ },
"nixpkgs": {
"locked": {
"lastModified": 1743583204,
@@ -415,6 +467,21 @@
"type": "github"
}
},
+ "nixpkgs-lib": {
+ "locked": {
+ "lastModified": 1753579242,
+ "narHash": "sha256-zvaMGVn14/Zz8hnp4VWT9xVnhc8vuL3TStRqwk22biA=",
+ "owner": "nix-community",
+ "repo": "nixpkgs.lib",
+ "rev": "0f36c44e01a6129be94e3ade315a5883f0228a6e",
+ "type": "github"
+ },
+ "original": {
+ "owner": "nix-community",
+ "repo": "nixpkgs.lib",
+ "type": "github"
+ }
+ },
"nixpkgs_2": {
"locked": {
"lastModified": 1742669843,
@@ -432,6 +499,22 @@
}
},
"nixpkgs_3": {
+ "locked": {
+ "lastModified": 1754028485,
+ "narHash": "sha256-IiiXB3BDTi6UqzAZcf2S797hWEPCRZOwyNThJIYhUfk=",
+ "owner": "NixOS",
+ "repo": "nixpkgs",
+ "rev": "59e69648d345d6e8fef86158c555730fa12af9de",
+ "type": "github"
+ },
+ "original": {
+ "owner": "NixOS",
+ "ref": "nixos-25.05",
+ "repo": "nixpkgs",
+ "type": "github"
+ }
+ },
+ "nixpkgs_4": {
"locked": {
"lastModified": 1743576891,
"narHash": "sha256-vXiKURtntURybE6FMNFAVpRPr8+e8KoLPrYs9TGuAKc=",
@@ -447,7 +530,7 @@
"type": "github"
}
},
- "nixpkgs_4": {
+ "nixpkgs_5": {
"locked": {
"lastModified": 1751984180,
"narHash": "sha256-LwWRsENAZJKUdD3SpLluwDmdXY9F45ZEgCb0X+xgOL0=",
@@ -492,13 +575,14 @@
"home-manager": "home-manager",
"hyprland": "hyprland",
"hyprland-plugins": "hyprland-plugins",
- "nixpkgs": "nixpkgs_3",
+ "nixcord": "nixcord",
+ "nixpkgs": "nixpkgs_4",
"spicetify-nix": "spicetify-nix"
}
},
"spicetify-nix": {
"inputs": {
- "nixpkgs": "nixpkgs_4",
+ "nixpkgs": "nixpkgs_5",
"systems": "systems_2"
},
"locked": {
diff --git a/flake.nix b/flake.nix
index 96129f2..4128493 100644
--- a/flake.nix
+++ b/flake.nix
@@ -1,17 +1,8 @@
{
description = "NixOS configuration of DerGrumpf";
- ##################################################################################################################
- #
- # Want to know Nix in details? Looking for a beginner-friendly tutorial?
- # Check out https://github.com/ryan4yin/nixos-and-flakes-book !
- #
- ##################################################################################################################
-
# the nixConfig here only affects the flake itself, not the system configuration!
nixConfig = {
- # substituers will be appended to the default substituters when fetching packages
- # nix com extra-substituters = [munity's cache server
extra-substituters = [
"https://nix-community.cachix.org"
];
@@ -24,11 +15,14 @@
nixpkgs.url = "github:nixos/nixpkgs/nixos-24.11";
hyprland.url = "github:hyprwm/Hyprland";
spicetify-nix.url = "github:Gerg-L/spicetify-nix";
-
- /*nixvim = {
- url = "github:nix-community/nixvim/nixos-24.11";
- inputs.nixpkgs.follows = "nixpkgs";
- };*/
+ nixcord.url = "github:kaylorben/nixcord";
+
+ /*
+ nixvim = {
+ url = "github:nix-community/nixvim/nixos-24.11";
+ inputs.nixpkgs.follows = "nixpkgs";
+ };
+ */
catppuccin.url = "github:catppuccin/nix";
@@ -36,104 +30,126 @@
home-manager.inputs.nixpkgs.follows = "nixpkgs";
hyprland-plugins = {
- url = "github:hyprwm/hyprland-plugins";
- inputs.hyprland.follows = "hyprland";
+ url = "github:hyprwm/hyprland-plugins";
+ inputs.hyprland.follows = "hyprland";
};
};
- outputs = inputs @ {
- self,
- nixpkgs,
- home-manager,
- catppuccin,
- ...
- }: {
- packages.x86_64-linux.default = self.nixosConfigurations.iso.config.system.build.isoImage;
- nixosConfigurations = {
- iso = nixpkgs.lib.nixosSystem {
- system = "x86_64-linux";
- modules = [
- ({ pkgs, modulesPath, ... }: {
+ outputs =
+ inputs@{
+ self,
+ nixpkgs,
+ home-manager,
+ catppuccin,
+ ...
+ }:
+ {
+ packages.x86_64-linux.default = self.nixosConfigurations.iso.config.system.build.isoImage;
+ nixosConfigurations = {
+ iso = nixpkgs.lib.nixosSystem {
+ system = "x86_64-linux";
+ modules = [
+ (
+ { pkgs, modulesPath, ... }:
+ {
imports = [ (modulesPath + "/installer/cd-dvd/installation-cd-minimal.nix") ];
environment.systemPackages = with pkgs; [
- neovim
- git
- wget
- curl
+ neovim
+ git
+ wget
+ curl
];
- nix.settings.experimental-features = ["nix-command" "flakes"];
- })
- ];
- };
-
- m920q = let
- username = "phil";
- specialArgs = {inherit username;};
- in
- nixpkgs.lib.nixosSystem {
- inherit specialArgs;
- system = "x86_64-linux";
-
- modules = [
- ./hosts/m920q
- ./users/${username}/nixos.nix
-
- home-manager.nixosModules.home-manager
- {
- home-manager.useGlobalPkgs = true;
- home-manager.useUserPackages = true;
-
- home-manager.extraSpecialArgs = inputs // specialArgs;
- home-manager.users.${username} = import ./users/${username}/home.nix;
- }
+ nix.settings.experimental-features = [
+ "nix-command"
+ "flakes"
+ ];
+ }
+ )
];
};
- qemu = let
- username = "phil";
- specialArgs = {inherit username;};
- in
- nixpkgs.lib.nixosSystem {
- inherit specialArgs;
- system = "x86_64-linux";
+ m920q =
+ let
+ username = "phil";
+ specialArgs = {
+ inherit inputs username;
+ };
+ in
+ nixpkgs.lib.nixosSystem {
+ inherit specialArgs;
+ system = "x86_64-linux";
- modules = [
- ./hosts/qemu
- ./users/${username}/nixos.nix
+ modules = [
+ ./hosts/m920q
+ ./users/${username}/nixos.nix
- home-manager.nixosModules.home-manager
- {
- home-manager.useGlobalPkgs = true;
- home-manager.useUserPackages = true;
+ home-manager.nixosModules.home-manager
+ {
+ home-manager.useGlobalPkgs = true;
+ home-manager.useUserPackages = true;
- home-manager.extraSpecialArgs = inputs // specialArgs;
- home-manager.users.${username} = import ./users/${username}/home.nix;
- }
- ];
- };
+ home-manager.backupFileExtension = "backup";
+ home-manager.extraSpecialArgs = inputs // specialArgs;
+ home-manager.users.${username} = import ./users/${username}/home.nix;
+ home-manager.sharedModules = [
+ inputs.nixcord.homeModules.nixcord
+ ];
- hp15-n028sg = let
- username = "phil";
- specialArgs = {inherit username;};
- in
- nixpkgs.lib.nixosSystem {
- inherit specialArgs;
- system = "x86_64-linux";
+ nix.settings.experimental-features = [
+ "nix-command"
+ "flakes"
+ ];
+ }
+ ];
+ };
- modules = [
- ./hosts/hp15-n028sg
- ./users/${username}/nixos.nix
+ qemu =
+ let
+ username = "phil";
+ specialArgs = { inherit username; };
+ in
+ nixpkgs.lib.nixosSystem {
+ inherit specialArgs;
+ system = "x86_64-linux";
- home-manager.nixosModules.home-manager
- {
- home-manager.useGlobalPkgs = true;
- home-manager.useUserPackages = true;
+ modules = [
+ ./hosts/qemu
+ ./users/${username}/nixos.nix
- home-manager.extraSpecialArgs = inputs // specialArgs;
- home-manager.users.${username} = import ./users/${username}/home.nix;
- }
- ];
- };
+ home-manager.nixosModules.home-manager
+ {
+ home-manager.useGlobalPkgs = true;
+ home-manager.useUserPackages = true;
+
+ home-manager.extraSpecialArgs = inputs // specialArgs;
+ home-manager.users.${username} = import ./users/${username}/home.nix;
+ }
+ ];
+ };
+
+ hp15-n028sg =
+ let
+ username = "phil";
+ specialArgs = { inherit username; };
+ in
+ nixpkgs.lib.nixosSystem {
+ inherit specialArgs;
+ system = "x86_64-linux";
+
+ modules = [
+ ./hosts/hp15-n028sg
+ ./users/${username}/nixos.nix
+
+ home-manager.nixosModules.home-manager
+ {
+ home-manager.useGlobalPkgs = true;
+ home-manager.useUserPackages = true;
+
+ home-manager.extraSpecialArgs = inputs // specialArgs;
+ home-manager.users.${username} = import ./users/${username}/home.nix;
+ }
+ ];
+ };
+ };
};
- };
}
diff --git a/home/core.nix b/home/core.nix
index 54b2c79..f8b4b0f 100644
--- a/home/core.nix
+++ b/home/core.nix
@@ -1,4 +1,5 @@
-{username, ...}: {
+{ username, ... }:
+{
# Home Manager needs a bit of information about you and the
# paths it should manage.
home = {
diff --git a/home/file_manager/dolphin.nix b/home/file_manager/dolphin.nix
index 95b0ede..7bcf4b5 100644
--- a/home/file_manager/dolphin.nix
+++ b/home/file_manager/dolphin.nix
@@ -1,8 +1,8 @@
{ pkgs, ... }:
{
- home.packages = with pkgs; [
- kdePackages.dolphin
- libsForQt5.kio-extras
- kio-fuse
- ];
+ home.packages = with pkgs; [
+ kdePackages.dolphin
+ libsForQt5.kio-extras
+ kio-fuse
+ ];
}
diff --git a/home/file_manager/krusader.nix b/home/file_manager/krusader.nix
index 32b1821..b9845f3 100644
--- a/home/file_manager/krusader.nix
+++ b/home/file_manager/krusader.nix
@@ -1,11 +1,11 @@
{ pkgs, ... }:
{
- home.packages = with pkgs; [
- krusader
- krename
- kdiff3
-# kdePackages.kompare
- xxdiff
- ];
+ home.packages = with pkgs; [
+ krusader
+ krename
+ kdiff3
+ # kdePackages.kompare
+ xxdiff
+ ];
}
diff --git a/home/file_manager/spacefm.nix b/home/file_manager/spacefm.nix
index 5a30a51..b98c91c 100644
--- a/home/file_manager/spacefm.nix
+++ b/home/file_manager/spacefm.nix
@@ -1,4 +1,4 @@
{ pkgs, ... }:
{
- progams.spacefm.enable = true;
+ progams.spacefm.enable = true;
}
diff --git a/home/file_manager/thunar.nix b/home/file_manager/thunar.nix
index 84382d4..c62047c 100644
--- a/home/file_manager/thunar.nix
+++ b/home/file_manager/thunar.nix
@@ -1,5 +1,4 @@
{ pkgs, ... }:
{
-
}
diff --git a/home/hyprland/alacritty.nix b/home/hyprland/alacritty.nix
index 767dc4b..a8eba47 100644
--- a/home/hyprland/alacritty.nix
+++ b/home/hyprland/alacritty.nix
@@ -1,8 +1,48 @@
{ pkgs, ... }:
{
- programs.alacritty = {
- enable = true;
+ programs.alacritty = {
+ enable = true;
+ settings = {
+ # Font
+ font = {
+ normal = {
+ family = "FiraCode Nerd Font Mono"; # Change to your preferred Nerd Font
+ style = "Regular";
+ };
+ bold = {
+ family = "FiraCode Nerd Font Mono";
+ style = "Bold";
+ };
+ italic = {
+ family = "FiraCode Nerd Font Mono";
+ style = "Italic";
+ };
+ size = 11;
+ };
+ window = {
+ opacity = 0.6; # Adjust between 0.0 (fully transparent) and 1.0 (opaque)
+ padding = {
+ x = 10;
+ y = 10;
+ };
+ decorations = "full"; # none, transparent, full, buttonless
+ title = "Alacritty";
+ dynamic_title = true;
+ };
- };
+ };
+ };
+ fonts = {
+ fontconfig = {
+ enable = true;
+ defaultFonts = {
+ monospace = [ "FiraCode Nerd Font Mono" ];
+ };
+ };
+ };
+
+ home.packages = with pkgs; [
+ fira-code-nerdfont
+ ];
}
diff --git a/home/hyprland/default.nix b/home/hyprland/default.nix
index 2e63e1f..5de8bf9 100644
--- a/home/hyprland/default.nix
+++ b/home/hyprland/default.nix
@@ -1,13 +1,14 @@
-{ pkgs, ...}: {
- imports = [
- ./kitty.nix # Terminal
- ./alacritty.nix
- ./hyprland.nix
- ./hypridle.nix
- ./hyprlock.nix
- ./hyprpaper.nix
- ./rofi # App Launcher
- ./mako.nix # Notifyer
- ];
-
+{ pkgs, ... }:
+{
+ imports = [
+ ./kitty.nix # Terminal
+ ./alacritty.nix
+ ./hyprland.nix
+ ./hypridle.nix
+ ./hyprlock.nix
+ ./hyprpaper.nix
+ ./rofi # App Launcher
+ ./mako.nix # Notifyer
+ ];
+
}
diff --git a/home/hyprland/hypridle.nix b/home/hyprland/hypridle.nix
index 462b2ed..7452fd3 100644
--- a/home/hyprland/hypridle.nix
+++ b/home/hyprland/hypridle.nix
@@ -1,34 +1,35 @@
{ pkgs, ... }:
{
- # Hyprland and related packages
- home.packages = with pkgs; [
- hypridle
- ];
+ # Hyprland and related packages
+ home.packages = with pkgs; [
+ hypridle
+ ];
- # Hypridle configuration
- services.hypridle = {
- enable = true;
- settings = {
- general = {
- after_sleep_cmd = "hyprctl dispatch dpms on";
- ignore_dbus_inhibit = false;
- lock_cmd = "hyprlock";
- before_sleep_cmd = ''notify-send -u critical "Hey master, I’m getting sleepy… I’ll see you in my code dreams 💖" --icon
-="$HOME/.config/hypr/avatar.png" --app-name="Hyprlock"'';
- };
+ # Hypridle configuration
+ services.hypridle = {
+ enable = true;
+ settings = {
+ general = {
+ after_sleep_cmd = "hyprctl dispatch dpms on";
+ ignore_dbus_inhibit = false;
+ lock_cmd = "hyprlock";
+ before_sleep_cmd = ''
+ notify-send -u critical "Hey master, I’m getting sleepy… I’ll see you in my code dreams 💖" --icon
+ ="$HOME/.config/hypr/avatar.png" --app-name="Hyprlock"'';
+ };
- listener = [
- {
- timeout = 300;
- on-timeout = "hyprlock";
- }
- {
- timeout = 600;
- on-timeout = "hyprctl dispatch dpms off";
- on-resume = "hyprctl dispatch dpms on";
- }
- ];
- };
+ listener = [
+ {
+ timeout = 300;
+ on-timeout = "hyprlock";
+ }
+ {
+ timeout = 600;
+ on-timeout = "hyprctl dispatch dpms off";
+ on-resume = "hyprctl dispatch dpms on";
+ }
+ ];
};
+ };
}
diff --git a/home/hyprland/hyprland.nix b/home/hyprland/hyprland.nix
index f9f27cf..75b7399 100644
--- a/home/hyprland/hyprland.nix
+++ b/home/hyprland/hyprland.nix
@@ -1,281 +1,280 @@
-{ inputs, pkgs, ...}:
-let
- package = pkgs.hyprland;
- super = "SUPER";
- terminal = "kitty";
- fileManager = "spacefm";
- theme = "-theme $HOME/.config/rofi/catppuccin-default.rasi";
- menu = "rofi -show drun ${theme}";
- filebrowser = "rofi -show filebrowser ${theme}";
- power = "rofi -show p -modi p:rofi-power-menu";
-in
+{ pkgs, ... }:
+let
+ package = pkgs.hyprland;
+ super = "SUPER";
+ terminal = "kitty";
+ fileManager = "yazi";
+ theme = "-theme $HOME/.config/rofi/custom.rasi";
+ menu = "rofi -show drun ${theme}";
+ filebrowser = "rofi -show filebrowser ${theme}";
+ power = "rofi -show p -modi p:rofi-power-menu";
+in
{
- home.packages = with pkgs; [
- grim
- slurp
- wl-clipboard
+ home.packages = with pkgs; [
+ grim
+ slurp
+ wl-clipboard
+ ];
+
+ home.file.".config/hypr" = {
+ source = ./configs;
+ # copy the scripts directory recursively
+ recursive = true;
+ };
+
+ home.pointerCursor = {
+ gtk.enable = true;
+ package = pkgs.bibata-cursors;
+ name = "Bibata-Modern-Classic";
+ size = 16;
+ };
+
+ systemd.user.targets.hyprland-sessionn.Unit.Wants = [
+ "xdg-desktop-autostart.target"
+ ];
+
+ wayland.windowManager.hyprland = {
+ inherit package;
+ enable = true;
+
+ xwayland.enable = true;
+
+ systemd = {
+ enable = true;
+ variables = [ "--all" ];
+ enableXdgAutostart = true;
+ };
+
+ plugins = [
+ #inputs.hyprland-plugins.packages.${pkgs.stdenv.hostPlatform.system}.hyprbars
+ ];
+ };
+
+ wayland.windowManager.hyprland.settings = {
+ source = [
+ "~/.config/hypr/mocha.conf"
];
- home.file.".config/hypr" = {
- source = ./configs;
- # copy the scripts directory recursively
- recursive = true;
- };
-
- home.pointerCursor = {
- gtk.enable = true;
- package = pkgs.bibata-cursors;
- name = "Bibata-Modern-Classic";
- size = 16;
- };
-
- systemd.user.targets.hyprland-sessionn.Unit.Wants = [
- "xdg-desktop-autostart.target"
+ env = [
+ "NIXOS_OZONE_WL,1"
+ "MOZ_ENABLE_WAYLAND,1"
+ "MOZ_WEBRENDER,1"
+ "_JAVA_AWT_WM_NONREPARENTING,1"
+ "QT_WAYLAND_DISABLE_WINDOWDECORATION,1"
+ "QT_QPA_PLATFORM,wayland"
+ "SDL_VIDEODRIVER,wayland"
+ "GDK_BACKEND,wayland,x11"
+ "XCURSOR_SIZE,24"
+ "EDITOR,nvim"
];
- wayland.windowManager.hyprland = {
- inherit package;
- enable = true;
+ monitor = [
+ "DP-1, 1920x1080@60, 1920x0, 1"
+ "HDMI-A-2, 1920x1080@60, 0x0, 1"
+ ];
- xwayland.enable = true;
+ input = {
+ kb_layout = "de";
+ repeat_rate = 50;
+ repeat_delay = 300;
- systemd = {
- enable = true;
- variables = [ "--all" ];
- enableXdgAutostart = true;
- };
+ accel_profile = "flat";
+ follow_mouse = 1;
+ mouse_refocus = false;
+ sensitivity = 0; # -1.0 to 1.0, 0 means no modification.
+
+ numlock_by_default = 1;
+ touchpad = {
+ natural_scroll = true;
+ };
- plugins = [
- #inputs.hyprland-plugins.packages.${pkgs.stdenv.hostPlatform.system}.hyprbars
- ];
};
- wayland.windowManager.hyprland.settings = {
- source = [
- "~/.config/hypr/mocha.conf"
- ];
+ general = {
+ # See https://wiki.hyprland.org/Configuring/Variables/ for more
+ gaps_in = 8;
+ gaps_out = 16;
+ border_size = 4;
- env = [
- "NIXOS_OZONE_WL,1"
- "MOZ_ENABLE_WAYLAND,1"
- "MOZ_WEBRENDER,1"
- "_JAVA_AWT_WM_NONREPARENTING,1"
- "QT_WAYLAND_DISABLE_WINDOWDECORATION,1"
- "QT_QPA_PLATFORM,wayland"
- "SDL_VIDEODRIVER,wayland"
- "GDK_BACKEND,wayland,x11"
- "XCURSOR_SIZE,24"
- "EDITOR,nvim"
- ];
-
- monitor = [
- "DP-1, 1920x1080@60, 1920x0, 1"
- "HDMI-A-2, 1920x1080@60, 0x0, 1"
- ];
+ "col.active_border" = "$green";
+ "col.inactive_border" = "$red";
- input = {
- kb_layout = "de";
- repeat_rate = 50;
- repeat_delay = 300;
-
- accel_profile = "flat";
- follow_mouse = 1;
- mouse_refocus = false;
- sensitivity = 0; # -1.0 to 1.0, 0 means no modification.
-
- numlock_by_default = 1;
- touchpad = {
- natural_scroll = true;
- };
+ layout = "dwindle";
- };
-
- general = {
- # See https://wiki.hyprland.org/Configuring/Variables/ for more
- gaps_in = 8;
- gaps_out = 16;
- border_size = 4;
-
- "col.active_border" = "$green";
- "col.inactive_border" = "$red";
-
- layout = "dwindle";
-
- # Please see https://wiki.hyprland.org/Configuring/Tearing/ before you turn this on
- allow_tearing = false;
- };
-
- decoration = {
- rounding = 12;
-
- shadow = {
- enabled = true;
- range = 16;
- render_power = 4;
- ignore_window = true;
- color = "$green";
- color_inactive = "$red";
- };
-
- blur = {
- enabled = true;
- size = 1;
- passes = 3;
- new_optimizations = 1;
- noise = 0.04;
- };
- };
-
- animations = {
- enabled = "yes";
- bezier = "myBezier, 0.05, 0.9, 0.1, 1.05";
- animation = [
- "windows, 1, 7, myBezier"
- "windowsOut, 1, 7, default, popin 80%"
- "border, 1, 10, default"
- "borderangle, 1, 8, default"
- "fade, 1, 7, default"
- "workspaces, 1, 6, default"
- ];
- };
-
- layerrule = [
- "blur,gtk-layer-shell"
- "ignorezero,gtk-layer-shell"
- "blur,notifications"
- "ignorezero,notifications"
- "blur,rofi"
- "ignorezero,rofi"
- ];
-
-
- dwindle = {
- # See https://wiki.hyprland.org/Configuring/Dwindle-Layout/ for more
- pseudotile = "yes"; # master switch for pseudotiling. Enabling is bound to mainMod + P in the keybinds section below
- preserve_split = "yes"; # you probably want this
- };
-
- gestures = {
- # See https://wiki.hyprland.org/Configuring/Variables/ for more
- workspace_swipe = "off";
- };
-
- misc = {
- # See https://wiki.hyprland.org/Configuring/Variables/ for more
- force_default_wallpaper = 0; # Set to 0 or 1 to disable the anime mascot wallpapers
- };
-
- # Example per-device config
- # See https://wiki.hyprland.org/Configuring/Keywords/#per-device-input-configs for more
- device = {
- name = "epic-mouse-v1";
- sensitivity = -0.5;
- };
-
- windowrulev2 = "suppressevent maximize, class:.*";
-
- windowrule = [
- "opacity 0.0 override, class:^(xwaylandvideobridge)$"
- "noanim, class:^(xwaylandvideobridge)$"
- "noinitialfocus, class:^(xwaylandvideobridge)$"
- "maxsize 1 1, class:^(xwaylandvideobridge)$"
- "noblur, class:^(xwaylandvideobridge)$"
- "nofocus, class:^(xwaylandvideobridge)$"
- ];
-
- exec-once = [
- "waybar &"
- "hyprpaper &"
- ];
-
- # Keybindings
- bind = [
-
- "${super}, Q, exec, ${terminal}"
- "${super}, C, killactive, "
- "${super}, M, exit, "
- "${super}, E, exec, ${fileManager}"
- "${super}, V, togglefloating, "
- "${super}, R, exec, ${menu}"
- "${super}, S, exec, ${power}"
- "${super}, F, exec, ${filebrowser}"
- "${super}, P, pseudo, " # dwindle
- "${super}, J, togglesplit, "# dwindle
- "${super}, O, exec, obsidian"
- "${super}, I, exec, firefox"
- "${super}, G, exec, thunderbird"
-
- # Move focus with mainMod + arrow keys
- "${super}, left, movefocus, l"
- "${super}, right, movefocus, r"
- "${super}, up, movefocus, u"
- "${super}, down, movefocus, d"
-
- # Switch workspaces with mainMod + [0-9]
- "${super}, 1, workspace, 1"
- "${super}, 2, workspace, 2"
- "${super}, 3, workspace, 3"
- "${super}, 4, workspace, 4"
- "${super}, 5, workspace, 5"
- "${super}, 6, workspace, 6"
- "${super}, 7, workspace, 7"
- "${super}, 8, workspace, 8"
- "${super}, 9, workspace, 9"
- "${super}, 0, workspace, 10"
-
- # Move active window to a workspace with mainMod + SHIFT + [0-9]
- "${super} SHIFT, 1, movetoworkspace, 1"
- "${super} SHIFT, 2, movetoworkspace, 2"
- "${super} SHIFT, 3, movetoworkspace, 3"
- "${super} SHIFT, 4, movetoworkspace, 4"
- "${super} SHIFT, 5, movetoworkspace, 5"
- "${super} SHIFT, 6, movetoworkspace, 6"
- "${super} SHIFT, 7, movetoworkspace, 7"
- "${super} SHIFT, 8, movetoworkspace, 8"
- "${super} SHIFT, 9, movetoworkspace, 9"
- "${super} SHIFT, 0, movetoworkspace, 10"
-
- # Example special workspace (scratchpad)
- #"${super}, S, togglespecialworkspace, magic"
- "${super} SHIFT, S, movetoworkspace, special:magic"
-
- # Scroll through existing workspaces with mainMod + scroll
- "${super}, mouse_down, workspace, e+1"
- "${super}, mouse_up, workspace, e-1"
-
- # Screenshot
- ''${super}, Z, exec, grim -g "$(slurp)" $HOME/Pictures/Screenshots/$(date +'%s_grim.png')''
- ''${super}, U, exec, grim $HOME/Pictures/Screenshots/$(date +'%s_grim.png')''
- ];
-
- bindl = [
- #", XF86AudioMute, exec, amixer set Master toggle
- ", XF86AudioMute, exec, wpctl set-mute @DEFAULT_AUDIO_SINK@ toggle"
- ", XF86AudioPlay, exec, playerctl play-pause" # the stupid key is called play , but it toggles
- ", XF86AudioNext, exec, playerctl next"
- ", XF86AudioPrev, exec, playerctl previous"
- ];
-
- bindle = [
- # Multi Media Control
- ", XF86AudioRaiseVolume, exec, vol --up"
- ", XF86AudioLowerVolume, exec, vol --down"
- ", XF86MonBrightnessUp, exec, bri --up"
- ", XF86MonBrightnessDown, exec, bri --down"
- ", XF86Search, exec, ${menu}"
-
- ];
-
- bindm = [
- "${super}, mouse:272, movewindow"
- "${super}, mouse:273, resizewindow"
- ];
+ # Please see https://wiki.hyprland.org/Configuring/Tearing/ before you turn this on
+ allow_tearing = false;
};
-
- # NOTE: this executable is used by greetd to start a wayland session when system boot up
- # with such a vendor-no-locking script, we can switch to another wayland compositor without modifying greetd's config in NixOS module
- home.file.".wayland-session" = {
- source = "${package}/bin/Hyprland";
- executable = true;
+
+ decoration = {
+ rounding = 12;
+
+ shadow = {
+ enabled = true;
+ range = 16;
+ render_power = 4;
+ ignore_window = true;
+ color = "$green";
+ color_inactive = "$red";
+ };
+
+ blur = {
+ enabled = true;
+ size = 1;
+ passes = 3;
+ new_optimizations = 1;
+ noise = 0.04;
+ };
};
+
+ animations = {
+ enabled = "yes";
+ bezier = "myBezier, 0.05, 0.9, 0.1, 1.05";
+ animation = [
+ "windows, 1, 7, myBezier"
+ "windowsOut, 1, 7, default, popin 80%"
+ "border, 1, 10, default"
+ "borderangle, 1, 8, default"
+ "fade, 1, 7, default"
+ "workspaces, 1, 6, default"
+ ];
+ };
+
+ layerrule = [
+ "blur,gtk-layer-shell"
+ "ignorezero,gtk-layer-shell"
+ "blur,notifications"
+ "ignorezero,notifications"
+ "blur,rofi"
+ "ignorezero,rofi"
+ ];
+
+ dwindle = {
+ # See https://wiki.hyprland.org/Configuring/Dwindle-Layout/ for more
+ pseudotile = "yes"; # master switch for pseudotiling. Enabling is bound to mainMod + P in the keybinds section below
+ preserve_split = "yes"; # you probably want this
+ };
+
+ gestures = {
+ # See https://wiki.hyprland.org/Configuring/Variables/ for more
+ workspace_swipe = "off";
+ };
+
+ misc = {
+ # See https://wiki.hyprland.org/Configuring/Variables/ for more
+ force_default_wallpaper = 0; # Set to 0 or 1 to disable the anime mascot wallpapers
+ };
+
+ # Example per-device config
+ # See https://wiki.hyprland.org/Configuring/Keywords/#per-device-input-configs for more
+ device = {
+ name = "epic-mouse-v1";
+ sensitivity = -0.5;
+ };
+
+ windowrulev2 = "suppressevent maximize, class:.*";
+
+ windowrule = [
+ "opacity 0.0 override, class:^(xwaylandvideobridge)$"
+ "noanim, class:^(xwaylandvideobridge)$"
+ "noinitialfocus, class:^(xwaylandvideobridge)$"
+ "maxsize 1 1, class:^(xwaylandvideobridge)$"
+ "noblur, class:^(xwaylandvideobridge)$"
+ "nofocus, class:^(xwaylandvideobridge)$"
+ ];
+
+ exec-once = [
+ "waybar &"
+ "hyprpaper &"
+ ];
+
+ # Keybindings
+ bind = [
+
+ "${super}, Q, exec, ${terminal}"
+ "${super}, C, killactive, "
+ "${super}, M, exit, "
+ "${super}, E, exec, ${fileManager}"
+ "${super}, V, togglefloating, "
+ "${super}, R, exec, ${menu}"
+ "${super}, S, exec, ${power}"
+ "${super}, F, exec, ${filebrowser}"
+ "${super}, P, pseudo, " # dwindle
+ "${super}, J, togglesplit, " # dwindle
+ "${super}, O, exec, obsidian"
+ "${super}, I, exec, firefox"
+ "${super}, G, exec, thunderbird"
+
+ # Move focus with mainMod + arrow keys
+ "${super}, left, movefocus, l"
+ "${super}, right, movefocus, r"
+ "${super}, up, movefocus, u"
+ "${super}, down, movefocus, d"
+
+ # Switch workspaces with mainMod + [0-9]
+ "${super}, 1, workspace, 1"
+ "${super}, 2, workspace, 2"
+ "${super}, 3, workspace, 3"
+ "${super}, 4, workspace, 4"
+ "${super}, 5, workspace, 5"
+ "${super}, 6, workspace, 6"
+ "${super}, 7, workspace, 7"
+ "${super}, 8, workspace, 8"
+ "${super}, 9, workspace, 9"
+ "${super}, 0, workspace, 10"
+
+ # Move active window to a workspace with mainMod + SHIFT + [0-9]
+ "${super} SHIFT, 1, movetoworkspace, 1"
+ "${super} SHIFT, 2, movetoworkspace, 2"
+ "${super} SHIFT, 3, movetoworkspace, 3"
+ "${super} SHIFT, 4, movetoworkspace, 4"
+ "${super} SHIFT, 5, movetoworkspace, 5"
+ "${super} SHIFT, 6, movetoworkspace, 6"
+ "${super} SHIFT, 7, movetoworkspace, 7"
+ "${super} SHIFT, 8, movetoworkspace, 8"
+ "${super} SHIFT, 9, movetoworkspace, 9"
+ "${super} SHIFT, 0, movetoworkspace, 10"
+
+ # Example special workspace (scratchpad)
+ #"${super}, S, togglespecialworkspace, magic"
+ "${super} SHIFT, S, movetoworkspace, special:magic"
+
+ # Scroll through existing workspaces with mainMod + scroll
+ "${super}, mouse_down, workspace, e+1"
+ "${super}, mouse_up, workspace, e-1"
+
+ # Screenshot
+ ''${super}, Z, exec, grim -g "$(slurp)" $HOME/Pictures/Screenshots/$(date +'%s_grim.png')''
+ ''${super}, U, exec, grim $HOME/Pictures/Screenshots/$(date +'%s_grim.png')''
+ ];
+
+ bindl = [
+ #", XF86AudioMute, exec, amixer set Master toggle
+ ", XF86AudioMute, exec, wpctl set-mute @DEFAULT_AUDIO_SINK@ toggle"
+ ", XF86AudioPlay, exec, playerctl play-pause" # the stupid key is called play , but it toggles
+ ", XF86AudioNext, exec, playerctl next"
+ ", XF86AudioPrev, exec, playerctl previous"
+ ];
+
+ bindle = [
+ # Multi Media Control
+ ", XF86AudioRaiseVolume, exec, vol --up"
+ ", XF86AudioLowerVolume, exec, vol --down"
+ ", XF86MonBrightnessUp, exec, bri --up"
+ ", XF86MonBrightnessDown, exec, bri --down"
+ ", XF86Search, exec, ${menu}"
+
+ ];
+
+ bindm = [
+ "${super}, mouse:272, movewindow"
+ "${super}, mouse:273, resizewindow"
+ ];
+ };
+
+ # NOTE: this executable is used by greetd to start a wayland session when system boot up
+ # with such a vendor-no-locking script, we can switch to another wayland compositor without modifying greetd's config in NixOS module
+ home.file.".wayland-session" = {
+ source = "${package}/bin/Hyprland";
+ executable = true;
+ };
}
diff --git a/home/hyprland/hyprlock.nix b/home/hyprland/hyprlock.nix
index a2cab71..d8bc005 100644
--- a/home/hyprland/hyprlock.nix
+++ b/home/hyprland/hyprlock.nix
@@ -1,96 +1,96 @@
{ pkgs, catppuccin, ... }:
{
- # Hyprland and related packages
- home.packages = with pkgs; [
- hyprlock
- ];
+ # Hyprland and related packages
+ home.packages = with pkgs; [
+ hyprlock
+ ];
- catppuccin.hyprlock.enable = false;
+ catppuccin.hyprlock.enable = false;
- # Hyprlock configuration
- programs.hyprlock = {
- enable = true;
- settings = {
-
- source = "$HOME/.config/hypr/mocha.conf";
+ # Hyprlock configuration
+ programs.hyprlock = {
+ enable = true;
+ settings = {
- "$accent" = "$mauve";
- "$accentAlpha" = "$mauveAlpha";
- "$font" = "JetBrainsMono Nerd Font";
+ source = "$HOME/.config/hypr/mocha.conf";
- general = {
- disable_loading_bar = true;
- hide_cursor = true;
- };
+ "$accent" = "$mauve";
+ "$accentAlpha" = "$mauveAlpha";
+ "$font" = "JetBrainsMono Nerd Font";
- background = [
- {
- path="~/Pictures/Wallpapers/lucy_with_cat.png";
- blur_passes = 0;
- blur_size = 0;
- }
- ];
+ general = {
+ disable_loading_bar = true;
+ hide_cursor = true;
+ };
- label = [
- # TIME
- {
- monitor = "";
- text = "$TIME";
- color = "$text";
- font_size = 90;
- font_family = "$font";
- position = "-30, 0";
- halign = "right";
- valign = "top";
- }
+ background = [
+ {
+ path = "~/Pictures/Wallpapers/lucy_with_cat.png";
+ blur_passes = 0;
+ blur_size = 0;
+ }
+ ];
- # DATE
- {
- monitor = "";
- text = ''cmd[update:43200000] date +"%A, %d %B %Y"'';
- color = "$text";
- font_size = 25;
- font_family = "$font";
- position = "-30, -150";
- halign = "right";
- valign = "top";
- }
- ];
+ label = [
+ # TIME
+ {
+ monitor = "";
+ text = "$TIME";
+ color = "$text";
+ font_size = 90;
+ font_family = "$font";
+ position = "-30, 0";
+ halign = "right";
+ valign = "top";
+ }
- # INPUT FIELD
- input-field = {
- monitor = "";
- size = "300, 60";
- outline_thickness = 4;
- dots_size = 0.2;
- dots_spacing = 0.2;
- dots_center = "true";
- outer_color = "$red";
- inner_color = "$surface0";
- font_color = "$text";
- fade_on_empty = false;
- placeholder_text = '' Logged in as $USER'';
- hide_input = false;
- check_color = "$accent";
- fail_color = "$red";
- fail_text = "$FAIL ($ATTEMPTS)";
- capslock_color = "$yellow";
- position = "0, -150";
- halign = "center";
- valign = "center";
- };
+ # DATE
+ {
+ monitor = "";
+ text = ''cmd[update:43200000] date +"%A, %d %B %Y"'';
+ color = "$text";
+ font_size = 25;
+ font_family = "$font";
+ position = "-30, -150";
+ halign = "right";
+ valign = "top";
+ }
+ ];
- image = {
- monitor = "";
- path = "~/.config/hypr/avatar.png";
- size = 300;
- border_color = "$teal";
- position = "0, 75";
- halign = "center";
- valign = "center";
- };
- };
+ # INPUT FIELD
+ input-field = {
+ monitor = "";
+ size = "300, 60";
+ outline_thickness = 4;
+ dots_size = 0.2;
+ dots_spacing = 0.2;
+ dots_center = "true";
+ outer_color = "$red";
+ inner_color = "$surface0";
+ font_color = "$text";
+ fade_on_empty = false;
+ placeholder_text = '' Logged in as $USER'';
+ hide_input = false;
+ check_color = "$accent";
+ fail_color = "$red";
+ fail_text = "$FAIL ($ATTEMPTS)";
+ capslock_color = "$yellow";
+ position = "0, -150";
+ halign = "center";
+ valign = "center";
+ };
+
+ image = {
+ monitor = "";
+ path = "~/.config/hypr/avatar.png";
+ size = 300;
+ border_color = "$teal";
+ position = "0, 75";
+ halign = "center";
+ valign = "center";
+ };
};
+ };
}
diff --git a/home/hyprland/hyprpaper.nix b/home/hyprland/hyprpaper.nix
index 8ab0654..273069c 100644
--- a/home/hyprland/hyprpaper.nix
+++ b/home/hyprland/hyprpaper.nix
@@ -1,24 +1,22 @@
{ pkgs, ... }:
{
- home.packages = with pkgs; [
- hyprpaper
- ];
+ home.packages = with pkgs; [
+ hyprpaper
+ ];
- home.file = {
- "Pictures/Wallpapers" = {
- source = ../../wallpapers;
- recursive = true;
- };
+ home.file = {
+ "Pictures/Wallpapers" = {
+ source = ../../wallpapers;
+ recursive = true;
};
+ };
+
+ # Hyprpaper configuration
+ services.hyprpaper.enable = true;
+ services.hyprpaper.settings = {
+ preload = "Pictures/Wallpapers/tokio.png";
+ wallpaper = ", Pictures/Wallpapers/tokio.png";
+ };
- # Hyprpaper configuration
- services.hyprpaper.enable = true;
- services.hyprpaper.settings = {
- preload = "Pictures/Wallpapers/tokio.png";
- wallpaper = ", Pictures/Wallpapers/tokio.png";
- };
-
}
-
-
diff --git a/home/hyprland/kitty.nix b/home/hyprland/kitty.nix
index 3fe0e12..43db8c6 100644
--- a/home/hyprland/kitty.nix
+++ b/home/hyprland/kitty.nix
@@ -1,22 +1,23 @@
-{ pkgs, lib, ... }:
+{ lib, ... }:
{
- programs.kitty = lib.mkForce {
- enable = true;
- settings = {
- themeFile = "Catppuccin-Mocha";
- confirm_os_window_close = 0;
- dynamic_background_opacity = true;
- enable_audio_bell = false;
- mouse_hide_wait = "-1.0";
- window_padding_width = 10;
- background_opacity = "0.5";
- background_blur = 5;
- tab_bar_min_tabs = 1;
- tab_bar_edge = "bottom";
- tab_bar_style = "powerline";
- tab_powerline_style = "slanted";
- tab_title_template = "{title}{' :{}:'.format(num_windows) if num_windows > 1 else ''}";
- symbol_map = let
+ programs.kitty = lib.mkForce {
+ enable = true;
+ settings = {
+ themeFile = "Catppuccin-Mocha";
+ confirm_os_window_close = 0;
+ dynamic_background_opacity = true;
+ enable_audio_bell = false;
+ mouse_hide_wait = "-1.0";
+ window_padding_width = 10;
+ background_opacity = "0.8";
+ background_blur = 5;
+ tab_bar_min_tabs = 1;
+ tab_bar_edge = "bottom";
+ tab_bar_style = "powerline";
+ tab_powerline_style = "slanted";
+ tab_title_template = "{title}{' :{}:'.format(num_windows) if num_windows > 1 else ''}";
+ symbol_map =
+ let
mappings = [
"U+23FB-U+23FE"
"U+2B58"
@@ -38,7 +39,7 @@
"U+E5FA-U+E62B"
];
in
- (builtins.concatStringsSep "," mappings) + " Symbols Nerd Font";
- };
+ (builtins.concatStringsSep "," mappings) + " Symbols Nerd Font";
};
+ };
}
diff --git a/home/hyprland/mako.nix b/home/hyprland/mako.nix
index 9393e7d..1883468 100644
--- a/home/hyprland/mako.nix
+++ b/home/hyprland/mako.nix
@@ -1,17 +1,16 @@
{ pkgs, ... }:
{
- services.mako = {
- enable = true;
- font = "FiraCodeNerdFontPropo 12";
- borderSize = 4;
- borderRadius = 8;
- defaultTimeout = 5000;
+ services.mako = {
+ enable = true;
+ font = "FiraCodeNerdFontPropo 12";
+ borderSize = 4;
+ borderRadius = 8;
+ defaultTimeout = 5000;
- extraConfig = ''
-[app-name=Spotify]
-border-color=#a6e3a1
- '';
+ extraConfig = ''
+ [app-name=Spotify]
+ border-color=#a6e3a1
+ '';
-
- };
+ };
}
diff --git a/home/hyprland/rofi/configs/background.png b/home/hyprland/rofi/configs/background.png
new file mode 100644
index 0000000..fcf0626
Binary files /dev/null and b/home/hyprland/rofi/configs/background.png differ
diff --git a/home/hyprland/rofi/configs/custom.rasi b/home/hyprland/rofi/configs/custom.rasi
new file mode 100644
index 0000000..d8c7b09
--- /dev/null
+++ b/home/hyprland/rofi/configs/custom.rasi
@@ -0,0 +1,222 @@
+* {
+ rosewater: #f5e0dc;
+ flamingo: #f2cdcd;
+ pink: #f5c2e7;
+ mauve: #cba6f7;
+ red: #f38ba8;
+ maroon: #eba0ac;
+ peach: #fab387;
+ yellow: #f9e2af;
+ green: #a6e3a1;
+ teal: #94e2d5;
+ sky: #89dceb;
+ sapphire: #74c7ec;
+ blue: #89b4fa;
+ lavender: #b4befe;
+ text: #cdd6f4;
+ subtext1: #bac2de;
+ subtext0: #a6adc8;
+ overlay2: #9399b2;
+ overlay1: #7f849c;
+ overlay0: #6c7086;
+ surface2: #585b70;
+ surface1: #45475a;
+ surface0: #313244;
+ base: #1e1e2e;
+ mantle: #181825;
+ crust: #11111b;
+}
+
+configuration {
+ show-icons: true;
+ modi: "window,drun,filebrowser";
+ display-drun: "Apps";
+ display-filebrowser: "Files";
+ display-run: "RUN";
+ display-window: "Active";
+ drun-display-format: "{name}";
+ window-format: "{w} · {c} · {t}";
+}
+
+/* Main Window */
+window {
+ /* properties for window widget */
+ transparency: "real";
+ location: center;
+ anchor: center;
+ fullscreen: false;
+ width: 50%;
+ height: 90%;
+ x-offset: 0px;
+ y-offset: 0px;
+
+ /* properties for all widgets */
+ enabled: true;
+ border-radius: 12px;
+ cursor: "default";
+ background-color: @base;
+}
+
+/* Main Box */
+
+mainbox {
+ enabled: true;
+ spacing: 0px;
+ background-color: transparent;
+ orientation: horizontal;
+ children: [ "imagebox", "listbox" ];
+}
+
+imagebox {
+ padding: 20px;
+ background-color: transparent;
+ background-image: url("~/.config/rofi/background.png", height);
+ orientation: vertical;
+ children: [ "inputbar", "dummy", "mode-switcher" ];
+}
+
+listbox {
+ spacing: 20px;
+ padding: 20px;
+ background-color: transparent;
+ orientation: vertical;
+ children: [ "message", "listview" ];
+}
+
+dummy {
+ background-color: transparent;
+}
+
+/* Input */
+inputbar {
+ enabled: true;
+ spacing: 10px;
+ padding: 15px;
+ border-radius: 10px;
+ background-color: @crust;
+ text-color: @text;
+ children: [ "textbox-prompt-colon", "entry" ];
+}
+textbox-prompt-colon {
+ enabled: true;
+ expand: false;
+ str: "";
+ background-color: inherit;
+ text-color: inherit;
+}
+entry {
+ enabled: true;
+ background-color: inherit;
+ text-color: inherit;
+ cursor: text;
+ placeholder: "Search";
+ placeholder-color: inherit;
+}
+
+/* Mode Switcher */
+mode-switcher{
+ enabled: true;
+ spacing: 20px;
+ background-color: transparent;
+ text-color: @text;
+}
+button {
+ padding: 15px;
+ border-radius: 10px;
+ background-color: @base;
+ text-color: inherit;
+ cursor: pointer;
+}
+button selected {
+ background-color: @base;
+ text-color: @pink;
+}
+
+/* Listview */
+listview {
+ enabled: true;
+ columns: 1;
+ lines: 8;
+ cycle: true;
+ dynamic: true;
+ scrollbar: false;
+ layout: vertical;
+ reverse: false;
+ fixed-height: true;
+ fixed-columns: true;
+
+ spacing: 10px;
+ background-color: transparent;
+ text-color: @text;
+ cursor: "default";
+}
+
+/* Elements */
+element {
+ enabled: true;
+ spacing: 15px;
+ padding: 8px;
+ border-radius: 10px;
+ background-color: transparent;
+ text-color: @mauve;
+ cursor: pointer;
+}
+
+element normal.normal {
+ background-color: inherit;
+ text-color: inherit;
+}
+element normal.urgent {
+ background-color: inherit;
+ text-color: @red;
+}
+element normal.active {
+ background-color: inherit;
+ text-color: @blue;
+}
+
+element selected.normal {
+ background-color: @crust;
+ text-color: @pink;
+}
+element selected.urgent {
+ background-color: @crust;
+ text-color: @maroon;
+}
+element selected.active {
+ background-color: @crust;
+ text-color: @sky;
+}
+element-icon {
+ background-color: transparent;
+ text-color: inherit;
+ size: 32px;
+ cursor: inherit;
+}
+element-text {
+ background-color: transparent;
+ text-color: inherit;
+ cursor: inherit;
+ vertical-align: 0.5;
+ horizontal-align: 0.0;
+}
+
+/* Message */
+message {
+ background-color: transparent;
+}
+textbox {
+ padding: 15px;
+ border-radius: 10px;
+ background-color: @overlay0;
+ text-color: @peach;
+ vertical-align: 0.5;
+ horizontal-align: 0.0;
+}
+
+error-message {
+ padding: 15px;
+ border-radius: 20px;
+ background-color: @surface0;
+ text-color: @red;
+}
diff --git a/home/hyprland/rofi/default.nix b/home/hyprland/rofi/default.nix
index 874f590..0c80584 100644
--- a/home/hyprland/rofi/default.nix
+++ b/home/hyprland/rofi/default.nix
@@ -1,21 +1,28 @@
{
pkgs,
- config,
...
-}: {
- home.packages = with pkgs; [
- rofi-power-menu
- ];
+}:
+{
- programs.rofi = {
- enable = true;
- cycle = false;
- package = pkgs.rofi-wayland;
- };
+ home.packages = with pkgs; [
+ rofi-power-menu
+ rofi-calc
+ ];
- home.file.".config/rofi" = {
- source = ./configs;
- # copy the scripts directory recursively
- recursive = true;
- };
+ programs.rofi = {
+ enable = true;
+ cycle = false;
+ package = pkgs.rofi-wayland;
+ font = "FiraCode Nerd Font Mono 12";
+
+ location = "center";
+ terminal = "${pkgs.kitty}/bin/kitty";
+
+ };
+
+ home.file.".config/rofi" = {
+ source = ./configs;
+ # copy the scripts directory recursively
+ recursive = true;
+ };
}
diff --git a/home/hyprland/waybar/default.nix b/home/hyprland/waybar/default.nix
index 9c1ccb5..4e14d6e 100644
--- a/home/hyprland/waybar/default.nix
+++ b/home/hyprland/waybar/default.nix
@@ -2,45 +2,48 @@
pkgs,
config,
...
-}: {
- programs.waybar = {
- enable = true;
- package = pkgs.waybar;
- /*settings = {
- mainBar = {
- layer = "top";
- position = "top";
- height = 30;
- output = [
- "eDP-1"
- "DP-1"
- "HDMI-A-1"
- "Virtual-1"
- ];
+}:
+{
+ programs.waybar = {
+ enable = true;
+ package = pkgs.waybar;
+ /*
+ settings = {
+ mainBar = {
+ layer = "top";
+ position = "top";
+ height = 30;
+ output = [
+ "eDP-1"
+ "DP-1"
+ "HDMI-A-1"
+ "Virtual-1"
+ ];
- modules-left = [ "sway/workspaces" "sway/mode" "wlr/taskbar" ];
- modules-center = [ "sway/window" "custom/hello-from-waybar" ];
- modules-right = [ "mpd" "custom/mymodule#with-css-id" "temperature" ];
+ modules-left = [ "sway/workspaces" "sway/mode" "wlr/taskbar" ];
+ modules-center = [ "sway/window" "custom/hello-from-waybar" ];
+ modules-right = [ "mpd" "custom/mymodule#with-css-id" "temperature" ];
- "sway/workspaces" = {
- disable-scroll = true;
- all-outputs = true;
- };
- "custom/hello-from-waybar" = {
- format = "hello {}";
- max-length = 40;
- interval = "once";
- exec = pkgs.writeShellScript "hello-from-waybar" ''
- echo "from within waybar $USER"
- '';
- };
- };
- };*/
- };
+ "sway/workspaces" = {
+ disable-scroll = true;
+ all-outputs = true;
+ };
+ "custom/hello-from-waybar" = {
+ format = "hello {}";
+ max-length = 40;
+ interval = "once";
+ exec = pkgs.writeShellScript "hello-from-waybar" ''
+ echo "from within waybar $USER"
+ '';
+ };
+ };
+ };
+ */
+ };
- home.file.".config/waybar" = {
- source = ./configs;
- # copy the scripts directory recursively
- recursive = true;
- };
+ home.file.".config/waybar" = {
+ source = ./configs;
+ # copy the scripts directory recursively
+ recursive = true;
+ };
}
diff --git a/home/hyprland/waybar/double-monitor.nix b/home/hyprland/waybar/double-monitor.nix
index 23ac537..fd9e6f0 100644
--- a/home/hyprland/waybar/double-monitor.nix
+++ b/home/hyprland/waybar/double-monitor.nix
@@ -2,171 +2,200 @@
pkgs,
config,
...
-} : {
- programs.waybar = {
- enable = true;
- package = pkgs.waybar;
- settings = {
- mainBar = {
- layer = "top";
- position = "top";
- height = 30;
- output = [ "DP-1" ];
+}:
+{
+ programs.waybar = {
+ enable = true;
+ package = pkgs.waybar;
+ settings = {
+ mainBar = {
+ layer = "top";
+ position = "top";
+ height = 30;
+ output = [ "DP-1" ];
- modules-left = [
- "hyprland/workspaces"
- "mpris"
- ];
+ modules-left = [
+ "hyprland/workspaces"
+ "mpris"
+ ];
- modules-center = [];
-
- modules-right = [
- "network"
- "memory"
- "cpu"
- "clock"
- ];
+ modules-center = [ ];
- # Widgets
- "sway/workspaces" = {
- disable-scroll = true;
- all-outputs = true;
- };
-
- mpris = {
- format = "{player_icon} {dynamic}";
- format-paused = "{status_icon} {dynamic}";
- max-length = 100;
-
- player-icons = {
- default = "⏸";
- mpv = "🎵";
- };
+ modules-right = [
+ "network"
+ "memory"
+ "cpu"
+ "clock"
+ ];
- status-icons = {
- paused = "▶";
- };
- };
-
- "hyprland/workspaces" = {
- format = "{icon}";
- format-icons = {
- default = "";
- active = "";
- };
- };
-
- network = {
- tooltip = true;
- format-wifi = "{icon} ";
- format-icons = ["" "" ""];
- rotate = 0;
- format-ethernet = " ";
- tooltip-format = "Network: {essid}\nSignal strength: {signaldBm}dBm ({signalStrength}%)\nFrequency: {frequency}MHz\nInterface: {ifname}\nIP: {ipaddr}/{cidr}\nGateway: {gwaddr}\nNetmask: {netmask}";
- format-linked = " {ifname} (No IP)";
- format-disconnected = " ";
- tooltip-format-disconnected = "Disconnected";
- on-click = "/usr/local/bin/ags -t ControlPanel";
- interval = 2;
- };
-
- memory = {
- interval = 1;
- rotate = 270;
- format = "{icon}";
- format-icons = ["" "" "" "" "" "" "" "" ""];
- max-length = 10;
- };
-
- cpu = {
- interval = 1;
- format = "{icon}";
- rotate = 270;
- format-icons = ["" "" "" "" "" "" "" "" ""];
- };
-
- clock = {
- format = "{:%I:%M %p}";
- rotate = 0;
- on-click = "/usr/local/bin/ags -t ActivityCenter";
- tooltip-format = "{calendar}";
-
- calendar = {
- mode = "month";
- mode-mon-col = 3;
- on-scroll = 1;
- on-click-right = "mode";
- format = {
- months = "{}";
- weekdays = "{}";
- today = "{}";
- };
- };
-
- actions = {
- on-click-right = "mode";
- on-click-forward = "tz_up";
- on-click-backward = "tz_down";
- on-scroll-up = "shift_up";
- on-scroll-down = "shift_down";
- };
- };
-
- };
-
- secondBar = {
- layer = "top";
- position = "top";
- height = 30;
- output = [
- "HDMI-A-2"
- ];
-
- modules-left = [
- "hyprland/workspaces"
- ];
-
- modules-center = [
- ];
-
- modules-right = [
- "network"
- ];
-
- "hyprland/workspaces" = {
- format = "{icon}";
- format-icons = {
- default = "";
- active = "";
- };
- };
-
- "custom/weather" = {
- exec = "~/.config/waybar/weather.py waybar";
- restart-interval = 900;
- return-type = "json";
- };
-
- network = {
- tooltip = true;
- format-wifi = "{icon} ";
- format-icons = ["" "" ""];
- rotate = 0;
- format-ethernet = "{bandwidthTotalBits} {bandwidthUpBits} {bandwidthDownBits} ";
- tooltip-format = "Network: {essid}\nSignal strength: {signaldBm}dBm ({signalStrength}%)\nFrequency: {frequency}MHz\nInterface: {ifname}\nIP: {ipaddr}/{cidr}\nGateway: {gwaddr}\nNetmask: {netmask}";
- format-linked = " {ifname} (No IP)";
- format-disconnected = " ";
- tooltip-format-disconnected = "Disconnected";
- on-click = "/usr/local/bin/ags -t ControlPanel";
- interval = 2;
- };
- };
+ # Widgets
+ "sway/workspaces" = {
+ disable-scroll = true;
+ all-outputs = true;
};
- };
- home.file.".config/waybar" = {
- source = ./configs;
- # copy the scripts directory recursively
- recursive = true;
+ mpris = {
+ format = "{player_icon} {dynamic}";
+ format-paused = "{status_icon} {dynamic}";
+ max-length = 100;
+
+ player-icons = {
+ default = "⏸";
+ mpv = "🎵";
+ };
+
+ status-icons = {
+ paused = "▶";
+ };
+ };
+
+ "hyprland/workspaces" = {
+ format = "{icon}";
+ format-icons = {
+ default = "";
+ active = "";
+ };
+ };
+
+ network = {
+ tooltip = true;
+ format-wifi = "{icon} ";
+ format-icons = [
+ ""
+ ""
+ ""
+ ];
+ rotate = 0;
+ format-ethernet = " ";
+ tooltip-format = "Network: {essid}\nSignal strength: {signaldBm}dBm ({signalStrength}%)\nFrequency: {frequency}MHz\nInterface: {ifname}\nIP: {ipaddr}/{cidr}\nGateway: {gwaddr}\nNetmask: {netmask}";
+ format-linked = " {ifname} (No IP)";
+ format-disconnected = " ";
+ tooltip-format-disconnected = "Disconnected";
+ on-click = "/usr/local/bin/ags -t ControlPanel";
+ interval = 2;
+ };
+
+ memory = {
+ interval = 1;
+ rotate = 270;
+ format = "{icon}";
+ format-icons = [
+ ""
+ ""
+ ""
+ ""
+ ""
+ ""
+ ""
+ ""
+ ""
+ ];
+ max-length = 10;
+ };
+
+ cpu = {
+ interval = 1;
+ format = "{icon}";
+ rotate = 270;
+ format-icons = [
+ ""
+ ""
+ ""
+ ""
+ ""
+ ""
+ ""
+ ""
+ ""
+ ];
+ };
+
+ clock = {
+ format = "{:%I:%M %p}";
+ rotate = 0;
+ on-click = "/usr/local/bin/ags -t ActivityCenter";
+ tooltip-format = "{calendar}";
+
+ calendar = {
+ mode = "month";
+ mode-mon-col = 3;
+ on-scroll = 1;
+ on-click-right = "mode";
+ format = {
+ months = "{}";
+ weekdays = "{}";
+ today = "{}";
+ };
+ };
+
+ actions = {
+ on-click-right = "mode";
+ on-click-forward = "tz_up";
+ on-click-backward = "tz_down";
+ on-scroll-up = "shift_up";
+ on-scroll-down = "shift_down";
+ };
+ };
+
+ };
+
+ secondBar = {
+ layer = "top";
+ position = "top";
+ height = 30;
+ output = [
+ "HDMI-A-2"
+ ];
+
+ modules-left = [
+ "hyprland/workspaces"
+ ];
+
+ modules-center = [
+ ];
+
+ modules-right = [
+ "network"
+ ];
+
+ "hyprland/workspaces" = {
+ format = "{icon}";
+ format-icons = {
+ default = "";
+ active = "";
+ };
+ };
+
+ "custom/weather" = {
+ exec = "~/.config/waybar/weather.py waybar";
+ restart-interval = 900;
+ return-type = "json";
+ };
+
+ network = {
+ tooltip = true;
+ format-wifi = "{icon} ";
+ format-icons = [
+ ""
+ ""
+ ""
+ ];
+ rotate = 0;
+ format-ethernet = "{bandwidthTotalBits} {bandwidthUpBits} {bandwidthDownBits} ";
+ tooltip-format = "Network: {essid}\nSignal strength: {signaldBm}dBm ({signalStrength}%)\nFrequency: {frequency}MHz\nInterface: {ifname}\nIP: {ipaddr}/{cidr}\nGateway: {gwaddr}\nNetmask: {netmask}";
+ format-linked = " {ifname} (No IP)";
+ format-disconnected = " ";
+ tooltip-format-disconnected = "Disconnected";
+ on-click = "/usr/local/bin/ags -t ControlPanel";
+ interval = 2;
+ };
+ };
};
+ };
+
+ home.file.".config/waybar" = {
+ source = ./configs;
+ # copy the scripts directory recursively
+ recursive = true;
+ };
}
diff --git a/home/hyprland/waybar/single-monitor.nix b/home/hyprland/waybar/single-monitor.nix
index aeee9fb..8babc4d 100644
--- a/home/hyprland/waybar/single-monitor.nix
+++ b/home/hyprland/waybar/single-monitor.nix
@@ -2,137 +2,162 @@
pkgs,
config,
...
-} : {
- programs.waybar = {
- enable = true;
- package = pkgs.waybar;
- settings = {
- mainBar = {
- layer = "top";
- position = "top";
- height = 30;
- output = [
- "eDP-1"
- "DP-1"
- "HDMI-A-1"
- "Virtual-1"
- ];
+}:
+{
+ programs.waybar = {
+ enable = true;
+ package = pkgs.waybar;
+ settings = {
+ mainBar = {
+ layer = "top";
+ position = "top";
+ height = 30;
+ output = [
+ "eDP-1"
+ "DP-1"
+ "HDMI-A-1"
+ "Virtual-1"
+ ];
- modules-left = [
- "hyprland/workspaces"
- "mpris"
- ];
+ modules-left = [
+ "hyprland/workspaces"
+ "mpris"
+ ];
- modules-center = [
- "custom/weather"
- ];
-
- modules-right = [
- "network"
- "memory"
- "cpu"
- "clock"
- ];
+ modules-center = [
+ "custom/weather"
+ ];
- # Widgets
- "sway/workspaces" = {
- disable-scroll = true;
- all-outputs = true;
- };
-
- mpris = {
- format = "{player_icon} {dynamic}";
- format-paused = "{status_icon} {dynamic}";
- max-length = 100;
-
- player-icons = {
- default = "⏸";
- mpv = "🎵";
- };
+ modules-right = [
+ "network"
+ "memory"
+ "cpu"
+ "clock"
+ ];
- status-icons = {
- paused = "▶";
- };
- };
-
- "hyprland/workspaces" = {
- format = "{icon}";
- format-icons = {
- default = "";
- active = "";
- };
- };
-
- network = {
- tooltip = true;
- format-wifi = "{icon} ";
- format-icons = ["" "" ""];
- rotate = 0;
- format-ethernet = " ";
- tooltip-format = "Network = {essid}\nSignal strength: {signaldBm}dBm ({signalStrength}%)\nFrequency: {frequency}MHz\nInterface: {ifname}\nIP: {ipaddr}/{cidr}\nGateway: {gwaddr}\nNetmask: {netmask}";
- format-linked = " {ifname} (No IP)";
- format-disconnected = " ";
- tooltip-format-disconnected = "Disconnected";
- on-click = "/usr/local/bin/ags -t ControlPanel";
- interval = 2;
- };
-
- memory = {
- interval = 1;
- rotate = 270;
- format = "{icon}";
- format-icons = ["" "" "" "" "" "" "" "" ""];
- max-length = 10;
- };
-
- cpu = {
- interval = 1;
- format = "{icon}";
- rotate = 270;
- format-icons = ["" "" "" "" "" "" "" "" ""];
- };
-
- clock = {
- format = "{:%I:%M %p}";
- rotate = 0;
- on-click = "/usr/local/bin/ags -t ActivityCenter";
- tooltip-format = "{calendar}";
-
- calendar = {
- mode = "month";
- mode-mon-col = 3;
- on-scroll = 1;
- on-click-right = "mode";
- format = {
- months = "{}";
- weekdays = "{}";
- today = "{}";
- };
- };
-
- actions = {
- on-click-right = "mode";
- on-click-forward = "tz_up";
- on-click-backward = "tz_down";
- on-scroll-up = "shift_up";
- on-scroll-down = "shift_down";
- };
- };
-
- # Custom Widgets
- "custom/weather" = {
- exec = "python3 ~/.config/waybar/weather.py waybar";
- restart-interval = 900;
- return-type = "json";
- };
-
- };
+ # Widgets
+ "sway/workspaces" = {
+ disable-scroll = true;
+ all-outputs = true;
};
- };
- home.file.".config/waybar" = {
- source = ./configs;
- # copy the scripts directory recursively
- recursive = true;
+ mpris = {
+ format = "{player_icon} {dynamic}";
+ format-paused = "{status_icon} {dynamic}";
+ max-length = 100;
+
+ player-icons = {
+ default = "⏸";
+ mpv = "🎵";
+ };
+
+ status-icons = {
+ paused = "▶";
+ };
+ };
+
+ "hyprland/workspaces" = {
+ format = "{icon}";
+ format-icons = {
+ default = "";
+ active = "";
+ };
+ };
+
+ network = {
+ tooltip = true;
+ format-wifi = "{icon} ";
+ format-icons = [
+ ""
+ ""
+ ""
+ ];
+ rotate = 0;
+ format-ethernet = " ";
+ tooltip-format = "Network = {essid}\nSignal strength: {signaldBm}dBm ({signalStrength}%)\nFrequency: {frequency}MHz\nInterface: {ifname}\nIP: {ipaddr}/{cidr}\nGateway: {gwaddr}\nNetmask: {netmask}";
+ format-linked = " {ifname} (No IP)";
+ format-disconnected = " ";
+ tooltip-format-disconnected = "Disconnected";
+ on-click = "/usr/local/bin/ags -t ControlPanel";
+ interval = 2;
+ };
+
+ memory = {
+ interval = 1;
+ rotate = 270;
+ format = "{icon}";
+ format-icons = [
+ ""
+ ""
+ ""
+ ""
+ ""
+ ""
+ ""
+ ""
+ ""
+ ];
+ max-length = 10;
+ };
+
+ cpu = {
+ interval = 1;
+ format = "{icon}";
+ rotate = 270;
+ format-icons = [
+ ""
+ ""
+ ""
+ ""
+ ""
+ ""
+ ""
+ ""
+ ""
+ ];
+ };
+
+ clock = {
+ format = "{:%I:%M %p}";
+ rotate = 0;
+ on-click = "/usr/local/bin/ags -t ActivityCenter";
+ tooltip-format = "{calendar}";
+
+ calendar = {
+ mode = "month";
+ mode-mon-col = 3;
+ on-scroll = 1;
+ on-click-right = "mode";
+ format = {
+ months = "{}";
+ weekdays = "{}";
+ today = "{}";
+ };
+ };
+
+ actions = {
+ on-click-right = "mode";
+ on-click-forward = "tz_up";
+ on-click-backward = "tz_down";
+ on-scroll-up = "shift_up";
+ on-scroll-down = "shift_down";
+ };
+ };
+
+ # Custom Widgets
+ "custom/weather" = {
+ exec = "python3 ~/.config/waybar/weather.py waybar";
+ restart-interval = 900;
+ return-type = "json";
+ };
+
+ };
};
+ };
+
+ home.file.".config/waybar" = {
+ source = ./configs;
+ # copy the scripts directory recursively
+ recursive = true;
+ };
}
diff --git a/home/niri/default.nix b/home/niri/default.nix
index 25f8aa3..0650dc4 100644
--- a/home/niri/default.nix
+++ b/home/niri/default.nix
@@ -1,5 +1,5 @@
{ pkgs, ... }:
{
- programs.niri.enable = true;
+ programs.niri.enable = true;
}
diff --git a/home/programs/common.nix b/home/programs/common.nix
index 8888273..4c105c0 100644
--- a/home/programs/common.nix
+++ b/home/programs/common.nix
@@ -3,7 +3,8 @@
pkgs,
catppuccin-bat,
...
-}: {
+}:
+{
home.packages = with pkgs; [
];
diff --git a/home/programs/dev/compilers.nix b/home/programs/dev/compilers.nix
index d740e57..cc9ed50 100644
--- a/home/programs/dev/compilers.nix
+++ b/home/programs/dev/compilers.nix
@@ -1,24 +1,24 @@
{ pkgs, ... }:
{
- home.packages = with pkgs; [
- # C / C++
- clang
- #gcc
- lua
-
- # Rust
- cargo
- rustc
+ home.packages = with pkgs; [
+ # C / C++
+ clang
+ #gcc
+ lua
- # Zig
- zig
-
- #python
- python314
- ];
+ # Rust
+ cargo
+ rustc
- programs.go = {
- enable = true;
- packages = {};
- };
+ # Zig
+ zig
+
+ #python
+ python314
+ ];
+
+ programs.go = {
+ enable = true;
+ packages = { };
+ };
}
diff --git a/home/programs/dev/default.nix b/home/programs/dev/default.nix
index 9f5d9b4..09f1695 100644
--- a/home/programs/dev/default.nix
+++ b/home/programs/dev/default.nix
@@ -1,11 +1,11 @@
{
- imports = [
- ./git.nix
- ./neovim
- ./fstl.nix
- ./openscad.nix
- ./sqllite_browser.nix
- ./compilers.nix
- ./beekeeper-studio.nix
- ];
+ imports = [
+ ./git.nix
+ ./neovim
+ ./fstl.nix
+ ./openscad.nix
+ ./sqllite_browser.nix
+ ./compilers.nix
+ ./beekeeper-studio.nix
+ ];
}
diff --git a/home/programs/dev/git.nix b/home/programs/dev/git.nix
index efa546b..b92e1aa 100644
--- a/home/programs/dev/git.nix
+++ b/home/programs/dev/git.nix
@@ -1,8 +1,9 @@
{
pkgs,
...
-}: {
- home.packages = [pkgs.gh];
+}:
+{
+ home.packages = [ pkgs.gh ];
programs.git = {
enable = true;
diff --git a/home/programs/dev/neovim/config.lua b/home/programs/dev/neovim/config.lua
new file mode 100644
index 0000000..d01d1d2
--- /dev/null
+++ b/home/programs/dev/neovim/config.lua
@@ -0,0 +1,268 @@
+-- Basics
+vim.g.mapleader = " "
+
+-- Yank to system clipboard
+vim.keymap.set("n", "y", '"+y', { desc = "Yank to clipboard" })
+vim.keymap.set("v", "y", '"+y', { desc = "Yank to clipboard" })
+vim.keymap.set("n", "Y", '"+Y', { desc = "Yank line to clipboard" })
+
+-- Also make delete operations use system clipboard
+vim.keymap.set("n", "d", '"+d', { desc = "Delete to clipboard" })
+vim.keymap.set("v", "d", '"+d', { desc = "Delete to clipboard" })
+vim.keymap.set("n", "D", '"+D', { desc = "Delete line to clipboard" })
+
+-- Paste from system clipboard
+vim.keymap.set("n", "p", '"+p', { desc = "Paste from clipboard" })
+vim.keymap.set("v", "p", '"+p', { desc = "Paste from clipboard" })
+
+-- Treesitter
+require("nvim-treesitter.configs").setup({
+ ensure_installed = { "lua", "nix", "python", "javascript", "rust", "rasi" },
+ sync_install = false,
+ auto_install = true,
+ highlight = {
+ enable = true,
+ additional_vim_regex_highlighting = false,
+ },
+
+ parser_install_dir = vim.fn.stdpath("data") .. "/treesitter",
+})
+vim.opt.runtimepath:append(vim.fn.stdpath("data") .. "/treesitter")
+
+-- Linting
+require("lint").linters_by_ft = {}
+vim.api.nvim_create_autocmd({ "BufWritePost" }, {
+ callback = function()
+ require("lint").try_lint()
+ end,
+})
+
+-- Mason Setup
+require("mason").setup({
+ ui = {
+ icons = {
+ package_installed = "✓",
+ package_pending = "➜",
+ package_uninstalled = "✗",
+ },
+ },
+})
+
+require("mason-lspconfig").setup({
+ ensure_installed = {
+ "lua_ls",
+ "nil_ls",
+ "rust_analyzer",
+ "pylsp",
+ "stylelint-lsp",
+ },
+ automatic_installation = true,
+})
+
+-- LSP Config
+local cmp = require("cmp")
+cmp.setup({
+ snippet = {
+ expand = function(args)
+ require("luasnip").lsp_expand(args.body)
+ end,
+ },
+ mapping = cmp.mapping.preset.insert({
+ [""] = cmp.mapping.scroll_docs(-4),
+ [""] = cmp.mapping.scroll_docs(4),
+ [""] = cmp.mapping.complete(),
+ [""] = cmp.mapping.abort(),
+ [""] = cmp.mapping.confirm({ select = true }),
+ }),
+ sources = cmp.config.sources({
+ { name = "nvim_lsp" },
+ { name = "luasnip" },
+ }, {
+ { name = "buffer" },
+ { name = "path" },
+ }),
+})
+
+local lspconfig = require("lspconfig")
+local capabilities = require("cmp_nvim_lsp").default_capabilities()
+vim.keymap.set("n", "gd", vim.lsp.buf.definition, {})
+vim.keymap.set("n", "K", vim.lsp.buf.hover, {})
+vim.keymap.set("n", "rn", vim.lsp.buf.rename, {})
+vim.keymap.set("n", "ca", vim.lsp.buf.code_action, {})
+
+-- Setup language servers
+lspconfig.lua_ls.setup({
+ capabilities = capabilities,
+ settings = {
+ Lua = {
+ runtime = { version = "LuaJIT" },
+ diagnostics = { globals = { "vim" } },
+ workspace = { library = vim.api.nvim_get_runtime_file("", true) },
+ telemetry = { enable = false },
+ },
+ },
+})
+
+lspconfig.nil_ls.setup({ capabilities = capabilities })
+lspconfig.rust_analyzer.setup({ capabilities = capabilities })
+lspconfig.pylsp.setup({ capabilities = capabilities })
+lspconfig.stylelint_lsp.setup({
+ cmd = { "stylelint-lsp", "--stdio" },
+ filetypes = { "css", "scss", "rasi" },
+ capabilities = vim.lsp.protocol.make_client_capabilities(),
+})
+
+-- Conform
+require("conform").setup({
+ formatters_by_ft = {
+ lua = { "stylua" },
+ nix = { "nixfmt" },
+ python = { "black" },
+ rust = { "rustfmt" },
+ rasi = { "prettierd" },
+ },
+ format_on_save = {
+ timeout_ms = 500,
+ lsp_fallback = true,
+ },
+})
+
+-- Yazi
+require("yazi").setup({
+ open_for_directories = true,
+})
+
+vim.keymap.set("n", "fy", function()
+ require("yazi").yazi(nil, vim.loop.cwd())
+end, { desc = "Open Yazi file manager" })
+
+vim.keymap.set("n", "fd", function()
+ require("yazi").yazi(nil, vim.fn.expand("%:p:h"))
+end, { desc = "Open Yazi in current file directory" })
+
+-- Telescope
+require("telescope").setup()
+
+local telescope = require("telescope.builtin")
+vim.keymap.set("n", "ff", telescope.find_files, { desc = "Telescope find files" })
+vim.keymap.set("n", "fg", telescope.live_grep, { desc = "Telescope live grep" })
+vim.keymap.set("n", "fb", telescope.buffers, { desc = "Telescope buffers" })
+vim.keymap.set("n", "fh", telescope.help_tags, { desc = "Telescope help tags" })
+
+-- Styling
+require("catppuccin").setup({
+ flavour = "mocha",
+ transparent_background = true,
+ term_colors = true,
+ integration = {
+ treesitter = true,
+ mason = true,
+ lsp_trouble = true,
+ which_key = true,
+ cmp = true,
+ gitsigns = true,
+ telescope = true,
+ nvimtree = true,
+ dashboard = true,
+ notify = true,
+ indent_blankline = true,
+ toggleterm = true, -- Important for transparent terminals
+ },
+})
+
+vim.cmd.colorscheme("catppuccin")
+vim.opt.number = true
+vim.opt.cursorline = true
+vim.opt.showmode = false
+vim.opt.syntax = "enable"
+vim.opt.hlsearch = true
+vim.opt.incsearch = true
+vim.opt.tabstop = 4
+vim.opt.termguicolors = true
+
+local colors = require("catppuccin.palettes").get_palette("mocha")
+vim.api.nvim_set_hl(0, "LineNr", { fg = colors.text, bg = "NONE" })
+vim.api.nvim_set_hl(0, "CursorLineNr", { fg = colors.pink, bg = "NONE", bold = true })
+
+-- ToggleTerm setup
+require("toggleterm").setup({
+ size = 20,
+ open_mapping = [[]],
+ direction = "float",
+ float_opts = {
+ border = "single",
+ width = 200,
+ height = 40,
+ },
+})
+
+vim.keymap.set("n", "h", function()
+ require("toggleterm").toggle(1, 10, vim.loop.cwd(), "horizontal")
+end, { desc = "Toggle terminal (horizontal)" })
+
+vim.keymap.set("n", "v", function()
+ require("toggleterm").toggle(2, 60, vim.loop.cwd(), "vertical")
+end, { desc = "Toggle terminal (vertical)" })
+
+vim.keymap.set("n", "ft", function()
+ require("toggleterm").toggle(3, 20, vim.loop.cwd(), "float")
+end, { desc = "Toggle terminal (float)" })
+
+vim.keymap.set("t", "", "ToggleTerm", { desc = "Toggle terminal" })
+vim.keymap.set("t", "", "v", { desc = "Exit terminal and enter visual mode" })
+
+-- Statusline
+require("lualine").setup({
+ options = {
+ theme = "catppuccin",
+ component_separators = { left = "|", right = "|" },
+ section_separators = { left = "", right = "" },
+ },
+})
+
+-- Dashboard
+local alpha = require("alpha")
+local dashboard = require("alpha.themes.dashboard")
+
+dashboard.section.header.val = {
+ "⣿⣿⣿⣿⣿⣿⣿⣿⣿⢿⣯⣿⠿⣟⣷⣯⣛⢿⣿⣿⣾⣟⣿⣿⣿⣿⣿⣿⣿⣿⣿",
+ "⣿⣿⣿⣿⣿⣿⣿⡿⣵⣿⡿⣴⣽⡟⣳⢿⢽⣽⣕⣽⢿⡿⣿⣟⣿⣿⣿⣿⣿⣿⣿",
+ "⣿⣿⣿⣷⣿⣿⢟⣫⣿⢟⢟⣾⣾⣿⣿⣞⢳⣻⢞⣎⠿⢞⣊⣿⣞⣿⣿⣿⣿⣿⢽",
+ "⣿⣿⣿⣿⣿⣏⢯⣿⣏⣏⠔⢇⣿⢢⢆⢀⢆⣧⣼⢻⢰⡧⢻⣝⣏⡸⣧⣾⣿⣿⣿",
+ "⣿⣿⣿⣿⡟⣻⣿⣿⡾⡿⡼⢸⡝⣝⡳⢢⣧⢳⣳⢷⡇⣗⢺⡺⣿⡧⣿⣿⣿⢿⢿",
+ "⣿⡿⣿⣼⡼⣿⣿⡗⡧⣧⠁⡝⣧⣳⠅⡾⠈⣎⢮⣧⣿⣿⣗⣷⣻⢷⣏⣼⢏⣺⣿",
+ "⣿⣿⣿⣻⣿⣿⣿⢧⣿⢹⠉⢷⢿⣧⣲⡏⡀⡈⢆⠳⣿⡿⢿⣿⣱⢿⢫⣷⣝⣿⣿",
+ "⣿⣿⣿⡯⡟⣿⣿⢽⣡⠟⢿⣮⠁⠙⠛⠈⡴⢿⣿⡷⣬⣽⢽⠧⣷⡏⣿⡇⣧⣽⣿",
+ "⣿⠟⢻⡧⡇⣿⡇⣇⣆⢄⡜⢃⡀⡀⡀⡀⡀⢎⣁⠁⣸⣗⣸⣿⣧⣼⡿⢹⢿⢾⣿",
+ "⣿⣷⣾⣿⢻⣿⢧⢻⣽⡀⡀⡀⡀⢄⡀⡀⡀⡀⡀⢀⣷⡸⡟⣿⣶⣻⣧⡛⡱⢝⣿",
+ "⣿⣿⣿⣿⢸⡿⢚⡜⣿⣇⡀⡀⡀⡀⡀⡀⡀⡀⠚⢁⢣⣜⡿⣿⡇⢼⣿⠨⣸⣿⣿",
+ "⣿⣄⣿⣗⢾⢻⣧⢿⣾⣿⣦⡀⡀⠑⠚⠉⡀⡀⣤⣿⢨⣿⠗⣻⢣⣿⢹⢈⣽⣿⣿",
+ "⣿⣿⣿⣿⢎⡄⢿⣞⡇⣿⠹⣿⣶⣀⡀⣀⡴⡩⢸⢏⣿⣿⣶⢻⣾⢏⡞⠡⢽⣇⣾",
+ "⣿⣿⣿⣮⣼⢬⣦⢿⣳⣌⠧⡉⠈⣇⣛⣁⣈⣼⣿⡸⠫⠛⠐⠛⠕⣙⣻⣬⣼⣿⣿",
+ "⢟⢿⣿⣿⣿⡢⣃⣪⣭⣡⣤⣶⠟⡿⠿⠿⠿⠛⢁⣿⣿⢩⠉⡀⠈⠓⡝⣿⣿⣿⣿",
+ "⣾⣿⣿⣿⣿⠞⢔⡣⡴⣾⣿⠓⣤⢧⡼⣉⠠⢤⣿⣿⠇⠃⡀⡀⡀⡀⡸⢿⣾⣿⣿",
+ "⣿⣿⣿⡿⣺⡸⢗⢠⣇⣿⣿⠊⠃⡀⠉⡀⢠⣿⣿⠟⡸⡀⡀⡀⡀⡀⣃⣬⠽⠿⣿",
+ "⣿⣿⣿⣿⡇⡏⢸⣿⠟⣽⡇⡀⡀⡀⡀⣴⣟⢭⣾⣿⡇⠎⣠⠒⠉⠈⢀⡀⢨⡋⣿",
+ "⠛⠛⠛⠋⠃⠓⠚⠛⠘⠛⠃⡀⠊⡀⠛⠛⠛⠂⠛⠛⠓⠁⠚⡀⠂⠒⠒⠐⠒⠋⠛",
+}
+
+dashboard.section.buttons.val = {
+ dashboard.button("e", "[+] New file", ":ene startinsert "),
+ dashboard.button("f", "[?] Find file", ":Telescope find_files "),
+ dashboard.button("r", "[~] Recent files", ":Telescope oldfiles "),
+ dashboard.button("y", "[Y] Yazi", ":Yazi"),
+ dashboard.button("m", "[M] Mason", ":Mason"),
+ dashboard.button("q", "[X] Quit", ":qa"),
+}
+
+dashboard.section.footer.val = "Circuits hum in anticipation of your will."
+
+vim.api.nvim_create_autocmd("VimEnter", {
+ callback = function()
+ if vim.fn.argc() == 0 then
+ require("alpha").start()
+ end
+ end,
+})
+
+alpha.setup(dashboard.config)
diff --git a/home/programs/dev/neovim/configs/init.lua b/home/programs/dev/neovim/configs/init.lua
deleted file mode 100644
index 0fda20c..0000000
--- a/home/programs/dev/neovim/configs/init.lua
+++ /dev/null
@@ -1,37 +0,0 @@
-vim.g.base46_cache = vim.fn.stdpath "data" .. "/base46/"
-vim.g.mapleader = " "
-
--- bootstrap lazy and all plugins
-local lazypath = vim.fn.stdpath "data" .. "/lazy/lazy.nvim"
-
-if not vim.uv.fs_stat(lazypath) then
- local repo = "https://github.com/folke/lazy.nvim.git"
- vim.fn.system { "git", "clone", "--filter=blob:none", repo, "--branch=stable", lazypath }
-end
-
-vim.opt.rtp:prepend(lazypath)
-
-local lazy_config = require "configs.lazy"
-
--- load plugins
-require("lazy").setup({
- {
- "NvChad/NvChad",
- lazy = false,
- branch = "v2.5",
- import = "nvchad.plugins",
- },
-
- { import = "plugins" },
-}, lazy_config)
-
--- load theme
-dofile(vim.g.base46_cache .. "defaults")
-dofile(vim.g.base46_cache .. "statusline")
-
-require "options"
-require "nvchad.autocmds"
-
-vim.schedule(function()
- require "mappings"
-end)
diff --git a/home/programs/dev/neovim/configs/lazy-lock.json b/home/programs/dev/neovim/configs/lazy-lock.json
deleted file mode 100644
index 6a483ed..0000000
--- a/home/programs/dev/neovim/configs/lazy-lock.json
+++ /dev/null
@@ -1,34 +0,0 @@
-{
- "LuaSnip": { "branch": "master", "commit": "c9b9a22904c97d0eb69ccb9bab76037838326817" },
- "NvChad": { "branch": "v2.5", "commit": "6f25b2739684389ca69ea8229386c098c566c408" },
- "base46": { "branch": "v3.0", "commit": "59566882e09a8a77dbdb33b678a93680c36ae089" },
- "cmp-buffer": { "branch": "main", "commit": "3022dbc9166796b644a841a02de8dd1cc1d311fa" },
- "cmp-nvim-lsp": { "branch": "main", "commit": "99290b3ec1322070bcfb9e846450a46f6efa50f0" },
- "cmp-nvim-lua": { "branch": "main", "commit": "f12408bdb54c39c23e67cab726264c10db33ada8" },
- "cmp-path": { "branch": "main", "commit": "91ff86cd9c29299a64f968ebb45846c485725f23" },
- "cmp_luasnip": { "branch": "master", "commit": "98d9cb5c2c38532bd9bdb481067b20fea8f32e90" },
- "conform.nvim": { "branch": "master", "commit": "db8a4a9edb217067b1d7a2e0362c74bfe9cc944d" },
- "friendly-snippets": { "branch": "main", "commit": "efff286dd74c22f731cdec26a70b46e5b203c619" },
- "fzf.vim": { "branch": "master", "commit": "245eaf8e50fe440729056ce8d4e7e2bb5b1ff9c9" },
- "gitsigns.nvim": { "branch": "main", "commit": "4c40357994f386e72be92a46f41fc1664c84c87d" },
- "indent-blankline.nvim": { "branch": "master", "commit": "e10626f7fcd51ccd56d7ffc00883ba7e0aa28f78" },
- "lazy.nvim": { "branch": "main", "commit": "6c3bda4aca61a13a9c63f1c1d1b16b9d3be90d7a" },
- "mason-conform.nvim": { "branch": "main", "commit": "1983f353b29d8716751665c18d57e1ac0473a59a" },
- "mason-lspconfig.nvim": { "branch": "main", "commit": "1a31f824b9cd5bc6f342fc29e9a53b60d74af245" },
- "mason.nvim": { "branch": "main", "commit": "fc98833b6da5de5a9c5b1446ac541577059555be" },
- "menu": { "branch": "main", "commit": "7769b17c2a131108c02b10e9f844e504aa605cc2" },
- "minty": { "branch": "main", "commit": "aafc9e8e0afe6bf57580858a2849578d8d8db9e0" },
- "nvim-autopairs": { "branch": "master", "commit": "68f0e5c3dab23261a945272032ee6700af86227a" },
- "nvim-cmp": { "branch": "main", "commit": "c27370703e798666486e3064b64d59eaf4bdc6d5" },
- "nvim-lint": { "branch": "master", "commit": "6e9dd545a1af204c4022a8fcd99727ea41ffdcc8" },
- "nvim-lspconfig": { "branch": "master", "commit": "8a1529e46eef5efc86c34c8d9bdd313abc2ecba0" },
- "nvim-tree.lua": { "branch": "master", "commit": "c09ff35de503a41fa62465c6b4ae72d96e7a7ce4" },
- "nvim-treesitter": { "branch": "master", "commit": "1a314a58d6d7695d226b56f6b61b1596993d5ac7" },
- "nvim-web-devicons": { "branch": "master", "commit": "ab4cfee554e501f497bce0856788d43cf2eb93d7" },
- "openscad.nvim": { "branch": "main", "commit": "58baf76fd2f9e2fe2ca83ea120d56084edb8871e" },
- "plenary.nvim": { "branch": "master", "commit": "857c5ac632080dba10aae49dba902ce3abf91b35" },
- "telescope.nvim": { "branch": "master", "commit": "814f102cd1da3dc78c7d2f20f2ef3ed3cdf0e6e4" },
- "ui": { "branch": "v3.0", "commit": "57d403c219353b1f8e4cd635d058fbfcd9d647ea" },
- "volt": { "branch": "main", "commit": "21a2351697abfed26d4469b88d3ab124d55a1b3f" },
- "which-key.nvim": { "branch": "main", "commit": "370ec46f710e058c9c1646273e6b225acf47cbed" }
-}
diff --git a/home/programs/dev/neovim/configs/lua/chadrc.lua b/home/programs/dev/neovim/configs/lua/chadrc.lua
deleted file mode 100644
index a7aa89e..0000000
--- a/home/programs/dev/neovim/configs/lua/chadrc.lua
+++ /dev/null
@@ -1,24 +0,0 @@
--- This file needs to have same structure as nvconfig.lua
--- https://github.com/NvChad/ui/blob/v3.0/lua/nvconfig.lua
--- Please read that file to know all available options :(
-
----@type ChadrcConfig
-local M = {}
-
-M.base46 = {
- theme = "radium",
-
- -- hl_override = {
- -- Comment = { italic = true },
- -- ["@comment"] = { italic = true },
- -- },
-}
-
--- M.nvdash = { load_on_startup = true }
--- M.ui = {
--- tabufline = {
--- lazyload = false
--- }
---}
-
-return M
diff --git a/home/programs/dev/neovim/configs/lua/configs/conform.lua b/home/programs/dev/neovim/configs/lua/configs/conform.lua
deleted file mode 100644
index 5b50b37..0000000
--- a/home/programs/dev/neovim/configs/lua/configs/conform.lua
+++ /dev/null
@@ -1,15 +0,0 @@
-local options = {
- formatters_by_ft = {
- lua = { "stylua" },
- -- css = { "prettier" },
- -- html = { "prettier" },
- },
-
- format_on_save = {
- -- These options will be passed to conform.format()
- timeout_ms = 500,
- lsp_fallback = true,
- },
-}
-
-return options
diff --git a/home/programs/dev/neovim/configs/lua/configs/lazy.lua b/home/programs/dev/neovim/configs/lua/configs/lazy.lua
deleted file mode 100644
index cd170bd..0000000
--- a/home/programs/dev/neovim/configs/lua/configs/lazy.lua
+++ /dev/null
@@ -1,47 +0,0 @@
-return {
- defaults = { lazy = true },
- install = { colorscheme = { "nvchad" } },
-
- ui = {
- icons = {
- ft = "",
- lazy = " ",
- loaded = "",
- not_loaded = "",
- },
- },
-
- performance = {
- rtp = {
- disabled_plugins = {
- "2html_plugin",
- "tohtml",
- "getscript",
- "getscriptPlugin",
- "gzip",
- "logipat",
- "netrw",
- "netrwPlugin",
- "netrwSettings",
- "netrwFileHandlers",
- "matchit",
- "tar",
- "tarPlugin",
- "rrhelper",
- "spellfile_plugin",
- "vimball",
- "vimballPlugin",
- "zip",
- "zipPlugin",
- "tutor",
- "rplugin",
- "syntax",
- "synmenu",
- "optwin",
- "compiler",
- "bugreport",
- "ftplugin",
- },
- },
- },
-}
diff --git a/home/programs/dev/neovim/configs/lua/configs/lint.lua b/home/programs/dev/neovim/configs/lua/configs/lint.lua
deleted file mode 100644
index 51f32aa..0000000
--- a/home/programs/dev/neovim/configs/lua/configs/lint.lua
+++ /dev/null
@@ -1,21 +0,0 @@
-local lint = require("lint")
-
-lint.linters_by_ft = {
- lua = { "luacheck" },
-}
-
-lint.linters.luacheck.args = {
- "--globals",
- "vim",
- "--formatter",
- "plain",
- "--codes",
- "--ranges",
- "-",
-}
-
-vim.api.nvim_create_autocmd({ "BufEnter", "BufWritePost", "InsertLeave" }, {
- callback = function()
- lint.try_lint()
- end,
-})
diff --git a/home/programs/dev/neovim/configs/lua/configs/lspconfig.lua b/home/programs/dev/neovim/configs/lua/configs/lspconfig.lua
deleted file mode 100644
index 8f814e5..0000000
--- a/home/programs/dev/neovim/configs/lua/configs/lspconfig.lua
+++ /dev/null
@@ -1,57 +0,0 @@
--- load defaults i.e lua_lsp
-local on_attach = require("nvchad.configs.lspconfig").on_attach
-local on_init = require("nvchad.configs.lspconfig").on_init
-local capabilities = require("nvchad.configs.lspconfig").capabilities
-
-local lspconfig = require("lspconfig")
-
--- List of all servers configured
-lspconfig.servers = {
- "lua_ls",
- "templ",
- "jedi_language_server",
- -- "gopls",
-}
-
--- List of servers configured with default config
-local default_servers = {
- "templ",
- -- "gopls",
- "jedi_language_server",
-}
-
--- lsps with default config
-for _, lsp in ipairs(default_servers) do
- lspconfig[lsp].setup({
- on_attach = on_attach,
- on_init = on_init,
- capabilities = capabilities,
- })
-end
-
--- Lua LSP
-lspconfig.lua_ls.setup({
- on_attach = on_attach,
- on_init = on_init,
- capabilities = capabilities,
-
- settings = {
- Lua = {
- diagnostics = {
- enable = false, -- Disable all diagnostics from lua_ls
- -- globals = { "vim" }
- },
- workspace = {
- library = {
- vim.fn.expand("$VIMRUNTIME/lua"),
- vim.fn.expand("$VIMRUNTIME/lua/vim/lsp"),
- vim.fn.stdpath("data") .. "/lazy/ui/nvchad_types",
- vim.fn.stdpath("data") .. "/lazy/lazy.nvim/lua/lazy",
- --"${3rd}/love2d/library",
- },
- maxPreload = 100000,
- preloadFileSize = 10000,
- },
- },
- },
-})
diff --git a/home/programs/dev/neovim/configs/lua/configs/mason-conform.lua b/home/programs/dev/neovim/configs/lua/configs/mason-conform.lua
deleted file mode 100644
index 4fa05a7..0000000
--- a/home/programs/dev/neovim/configs/lua/configs/mason-conform.lua
+++ /dev/null
@@ -1,4 +0,0 @@
-require("mason-conform").setup({
- -- List of formatters to ignore during install
- ignore_install = {},
-})
diff --git a/home/programs/dev/neovim/configs/lua/configs/mason-lint.lua b/home/programs/dev/neovim/configs/lua/configs/mason-lint.lua
deleted file mode 100644
index 2f5a603..0000000
--- a/home/programs/dev/neovim/configs/lua/configs/mason-lint.lua
+++ /dev/null
@@ -1,26 +0,0 @@
-local lint = package.loaded["lint"]
-
-local ignore_install = {}
-
-local function table_contains(table, value)
- for _, v in ipairs(table) do
- if v == value then
- return true
- end
- end
- return false
-end
-
-local all_linters = {}
-for _, v in pairs(lint.linters_by_ft) do
- for _, linter in ipairs(v) do
- if not table_contains(ignore_install, linter) then
- table.insert(all_linters, linter)
- end
- end
-end
-
-require("mason-nvim-lint").setup({
- ensure_installed = all_linters,
- automatic_installation = false,
-})
diff --git a/home/programs/dev/neovim/configs/lua/configs/mason-lspconfig.lua b/home/programs/dev/neovim/configs/lua/configs/mason-lspconfig.lua
deleted file mode 100644
index cce6dd7..0000000
--- a/home/programs/dev/neovim/configs/lua/configs/mason-lspconfig.lua
+++ /dev/null
@@ -1,24 +0,0 @@
-local lspconfig = package.loaded["lspconfig"]
-
-local ignore_install = {}
-
-local function table_contains(table, value)
- for _, v in ipairs(table) do
- if v == value then
- return true
- end
- end
- return false
-end
-
-local all_servers = {}
-for _, s in ipairs(lspconfig.servers) do
- if not table_contains(ignore_install, s) then
- table.insert(all_servers, s)
- end
-end
-
-require("mason-lspconfig").setup({
- ensure_installed = all_servers,
- automatic_installation = false,
-})
diff --git a/home/programs/dev/neovim/configs/lua/configs/treesitter.lua b/home/programs/dev/neovim/configs/lua/configs/treesitter.lua
deleted file mode 100644
index d2a09cb..0000000
--- a/home/programs/dev/neovim/configs/lua/configs/treesitter.lua
+++ /dev/null
@@ -1,26 +0,0 @@
-local options = {
- ensure_installed = {
- "bash",
- "fish",
- "lua",
- "luadoc",
- "markdown",
- "printf",
- "toml",
- "vim",
- "vimdoc",
- "yaml",
- -- Languages
- "python",
- "templ",
- },
-
- highlight = {
- enable = true,
- use_languagetree = true,
- },
-
- indent = { enable = true },
-}
-
-require("nvim-treesitter.configs").setup(options)
diff --git a/home/programs/dev/neovim/configs/lua/mappings.lua b/home/programs/dev/neovim/configs/lua/mappings.lua
deleted file mode 100644
index 783b78f..0000000
--- a/home/programs/dev/neovim/configs/lua/mappings.lua
+++ /dev/null
@@ -1,10 +0,0 @@
-require "nvchad.mappings"
-
--- add yours here
-
-local map = vim.keymap.set
-
-map("n", ";", ":", { desc = "CMD enter command mode" })
-map("i", "jk", "")
-
--- map({ "n", "i", "v" }, "", " w ")
diff --git a/home/programs/dev/neovim/configs/lua/options.lua b/home/programs/dev/neovim/configs/lua/options.lua
deleted file mode 100644
index 95205d5..0000000
--- a/home/programs/dev/neovim/configs/lua/options.lua
+++ /dev/null
@@ -1,7 +0,0 @@
-require("nvchad.options")
-
--- add yours here!
-local o = vim.o
-o.shiftwidth = 4
-o.tabstop = 4
-o.softtabstop = 4
diff --git a/home/programs/dev/neovim/configs/lua/plugins/init.lua b/home/programs/dev/neovim/configs/lua/plugins/init.lua
deleted file mode 100644
index a5430cb..0000000
--- a/home/programs/dev/neovim/configs/lua/plugins/init.lua
+++ /dev/null
@@ -1,70 +0,0 @@
-return {
-
- {
- "nvim-treesitter/nvim-treesitter",
- event = { "BufReadPre", "BufNewFile" },
- config = function()
- require("configs.treesitter")
- end,
- },
-
- {
- "mfussenegger/nvim-lint",
- event = { "BufReadPre", "BufNewFile" },
- config = function()
- require("configs.lint")
- end,
- },
-
- -- {
- -- "rshkarin/mason-nvim-lint",
- -- event = "VeryLazy",
- -- config = function()
- -- require("config.mason-lint")
- -- end,
- -- },
-
- {
- "stevearc/conform.nvim",
- event = "BufWritePre", -- uncomment for format on save
- opts = require("configs.conform"),
- },
-
- {
- "zapling/mason-conform.nvim",
- event = "VeryLazy",
- dependencies = { "conform.nvim" },
- config = function()
- require("configs.mason-conform")
- end,
- },
-
- {
- "neovim/nvim-lspconfig",
- event = { "BufReadPre", "BufNewFile" },
- config = function()
- require("nvchad.configs.lspconfig").defaults()
- require("configs.lspconfig")
- end,
- },
-
- {
- "williamboman/mason-lspconfig.nvim",
- event = "VeryLazy",
- dependencies = { "nvim-lspconfig" },
- config = function()
- require("configs.mason-lspconfig")
- end,
- },
-
- {
- "salkin-mada/openscad.nvim",
- config = function()
- vim.g.openscad_load_snippets = true
- vim.g.openscad_default_mappings = true
- vim.g.openscad_auto_open = true
- require("openscad")
- end,
- dependencies = { "L3MON4D3/LuaSnip", "junegunn/fzf.vim" },
- },
-}
diff --git a/home/programs/dev/neovim/default.nix b/home/programs/dev/neovim/default.nix
index ca16b17..b8f9442 100644
--- a/home/programs/dev/neovim/default.nix
+++ b/home/programs/dev/neovim/default.nix
@@ -1,17 +1,72 @@
-{ pkgs, ... }: {
- programs.neovim = {
- enable = true;
- viAlias = true;
- vimAlias = true;
- defaultEditor = true;
- /*plugins = with pkgs.vimPlugins; [
- nvim-tree-lua
- nvim-treesitter.withAllGrammars
- ];*/
- };
+{ pkgs, ... }:
+{
+ programs.neovim = {
+ enable = true;
+ viAlias = true;
+ vimAlias = true;
+ defaultEditor = true;
+ #extraPackages = with pkgs; [ ];
- home.file.".config/nvim" = {
- source = ./configs;
- recursive = true;
- };
+ plugins = with pkgs.vimPlugins; [
+ nvim-treesitter
+ nvim-lint
+ catppuccin-nvim
+ mason-nvim
+ mason-lspconfig-nvim
+ nvim-lspconfig
+ nvim-cmp
+ cmp-nvim-lsp
+ cmp-buffer
+ cmp-path
+ cmp-cmdline
+ luasnip
+ lualine-nvim
+ yazi-nvim
+ alpha-nvim
+ cheatsheet-nvim
+ toggleterm-nvim
+ avante-nvim # AI Stuff
+
+ # Add conform.nvim as a custom plugin
+ (pkgs.vimUtils.buildVimPlugin {
+ name = "conform-nvim";
+ src = pkgs.fetchFromGitHub {
+ owner = "stevearc";
+ repo = "conform.nvim";
+ rev = "stable";
+ sha256 = "sha256-pUF9F5QoDzCZuVRcJEF91M8Qjkh/xosMkf9tRavkmJs=";
+ };
+ })
+
+ # Add telescope.vim as a custom plugin
+ (pkgs.vimUtils.buildVimPlugin {
+ name = "telescope-nvim";
+ src = pkgs.fetchFromGitHub {
+ owner = "nvim-telescope";
+ repo = "telescope.nvim";
+ rev = "0.1.8";
+ sha256 = "sha256-e1ulhc4IIvUgpjKQrSqPY4WpXuez6wlxL6Min9U0o5Q=";
+ };
+ })
+
+ ];
+
+ extraLuaConfig = builtins.readFile (./. + "/config.lua");
+ };
+
+ home.packages = with pkgs; [
+ nixfmt-rfc-style
+ stylua
+ black
+ nodePackages.prettier
+ rustfmt
+ nodejs
+ prettierd
+ stylelint-lsp
+ # Mason Binarys
+ lua-language-server
+ nil
+ rust-analyzer
+ python3Packages.python-lsp-server
+ ];
}
diff --git a/home/programs/games/airshipper.nix b/home/programs/games/airshipper.nix
index c898fea..fc304af 100644
--- a/home/programs/games/airshipper.nix
+++ b/home/programs/games/airshipper.nix
@@ -1,6 +1,6 @@
{ pkgs, ... }:
{
- home.packages = with pkgs; [
- airshipper
- ];
+ home.packages = with pkgs; [
+ airshipper
+ ];
}
diff --git a/home/programs/games/itch.nix b/home/programs/games/itch.nix
index 0c84cf5..cd06d8d 100644
--- a/home/programs/games/itch.nix
+++ b/home/programs/games/itch.nix
@@ -2,8 +2,9 @@
pkgs,
config,
...
-}: {
- home.packages = with pkgs; [
- itch
- ];
+}:
+{
+ home.packages = with pkgs; [
+ itch
+ ];
}
diff --git a/home/programs/games/lutris.nix b/home/programs/games/lutris.nix
index fa6f52d..c6588c5 100644
--- a/home/programs/games/lutris.nix
+++ b/home/programs/games/lutris.nix
@@ -2,8 +2,9 @@
pkgs,
config,
...
-}: {
- home.packages = with pkgs; [
- lutris
- ];
+}:
+{
+ home.packages = with pkgs; [
+ lutris
+ ];
}
diff --git a/home/programs/games/opensource.nix b/home/programs/games/opensource.nix
index ae55354..485a154 100644
--- a/home/programs/games/opensource.nix
+++ b/home/programs/games/opensource.nix
@@ -2,12 +2,13 @@
pkgs,
config,
...
-}: {
- home.packages = with pkgs; [
- xonotic
-# armagetron
-# freeciv
-# mindustry
-# openra
- ];
+}:
+{
+ home.packages = with pkgs; [
+ xonotic
+ # armagetron
+ # freeciv
+ # mindustry
+ # openra
+ ];
}
diff --git a/home/programs/games/steam.nix b/home/programs/games/steam.nix
index 0ee14a9..ed35e3d 100644
--- a/home/programs/games/steam.nix
+++ b/home/programs/games/steam.nix
@@ -2,14 +2,17 @@
pkgs,
config,
...
-}: {
- /*home.packages = with pkgs; [
+}:
+{
+ /*
+ home.packages = with pkgs; [
steam
- ];*/
- programs.steam = {
- enable = true;
- remotePlay.openFirewall = true;
- dedicatedServer.openFirewall = true;
- localNetworkGameTransfers.openFirewall = true;
- };
+ ];
+ */
+ programs.steam = {
+ enable = true;
+ remotePlay.openFirewall = true;
+ dedicatedServer.openFirewall = true;
+ localNetworkGameTransfers.openFirewall = true;
+ };
}
diff --git a/home/programs/media/audacity.nix b/home/programs/media/audacity.nix
index b38175d..4bb7244 100644
--- a/home/programs/media/audacity.nix
+++ b/home/programs/media/audacity.nix
@@ -1,7 +1,7 @@
{ pkgs, ... }:
{
- home.packages = with pkgs; [
- audacity
- yt-dlp
- ];
+ home.packages = with pkgs; [
+ audacity
+ yt-dlp
+ ];
}
diff --git a/home/programs/media/audio.nix b/home/programs/media/audio.nix
index 92bb457..9799c6a 100644
--- a/home/programs/media/audio.nix
+++ b/home/programs/media/audio.nix
@@ -4,14 +4,14 @@
...
}:
{
- home.packages = with pkgs; [
- # audio control
- pavucontrol
- playerctl
- pulsemixer
- ];
+ home.packages = with pkgs; [
+ # audio control
+ pavucontrol
+ playerctl
+ pulsemixer
+ ];
- services = {
- playerctld.enable = true;
- };
+ services = {
+ playerctld.enable = true;
+ };
}
diff --git a/home/programs/media/image.nix b/home/programs/media/image.nix
index 2408639..aae75e8 100644
--- a/home/programs/media/image.nix
+++ b/home/programs/media/image.nix
@@ -4,9 +4,9 @@
...
}:
{
- home.packages = with pkgs; [
- # images
- imv
- ];
+ home.packages = with pkgs; [
+ # images
+ imv
+ ];
}
diff --git a/home/programs/media/media.nix b/home/programs/media/media.nix
index cddae40..9ceb7c1 100644
--- a/home/programs/media/media.nix
+++ b/home/programs/media/media.nix
@@ -5,10 +5,10 @@
}:
# media - control and enjoy audio/video
{
- imports = [
- ./audio.nix
- ./image.nix
- ./webcam.nix
- ];
+ imports = [
+ ./audio.nix
+ ./image.nix
+ ./webcam.nix
+ ];
}
diff --git a/home/programs/media/obs.nix b/home/programs/media/obs.nix
index e4bc22b..63c991f 100644
--- a/home/programs/media/obs.nix
+++ b/home/programs/media/obs.nix
@@ -1,14 +1,14 @@
{ pkgs, ... }:
{
- programs.obs-studio = {
- enable = true;
- #enableVirtualCamera = true;
- plugins = with pkgs.obs-studio-plugins; [
- wlrobs
- obs-vkcapture
- obs-backgroundremoval
- obs-pipewire-audio-capture
- ];
- };
+ programs.obs-studio = {
+ enable = true;
+ #enableVirtualCamera = true;
+ plugins = with pkgs.obs-studio-plugins; [
+ wlrobs
+ obs-vkcapture
+ obs-backgroundremoval
+ obs-pipewire-audio-capture
+ ];
+ };
}
diff --git a/home/programs/media/spicetify.nix b/home/programs/media/spicetify.nix
index 26a77c1..6c6db79 100644
--- a/home/programs/media/spicetify.nix
+++ b/home/programs/media/spicetify.nix
@@ -1,15 +1,39 @@
-{ pkgs, inputs } :
+{ pkgs, inputs, ... }:
{
- imports = [
- inputs.spicetify-nix.homeManagerModules.default
- ];
+ imports = [
+ inputs.spicetify-nix.homeManagerModules.default
+ ];
- programs.spicetify =
- let
- spicePkgs = inputs.spicetify-nix.legacyPackages.${pkgs.system};
- in
+ programs.spicetify =
+ let
+ spicePkgs = inputs.spicetify-nix.legacyPackages.${pkgs.system};
+ in
{
- enable = true;
- theme = spicePkgs.themes.catppuccin;
- }
+ enable = true;
+ spotifyPackage = pkgs.spotify;
+ theme = spicePkgs.themes.catppuccin;
+ colorScheme = "mocha";
+
+ enabledExtensions = with spicePkgs.extensions; [
+ bookmark
+ fullAppDisplay
+ keyboardShortcut
+ popupLyrics
+ shuffle
+ autoVolume
+ betterGenres
+ adblock
+ wikify
+ songStats
+ ];
+
+ enabledCustomApps = with spicePkgs.apps; [
+ lyricsPlus
+ newReleases
+ marketplace
+ ];
+
+ #enabledSnippets = with spicePkgs.snippets; [ ];
+
+ };
}
diff --git a/home/programs/media/webcam.nix b/home/programs/media/webcam.nix
index c6a5730..6aaf617 100644
--- a/home/programs/media/webcam.nix
+++ b/home/programs/media/webcam.nix
@@ -1,14 +1,14 @@
{ pkgs, ... }:
{
- home.packages = with pkgs; [
- ffmpeg_6-full
- gphoto2
- v4l-utils
- ];
+ home.packages = with pkgs; [
+ ffmpeg_6-full
+ gphoto2
+ v4l-utils
+ ];
- programs.mpv = {
- enable = true;
- defaultProfiles = ["gpu-hq"];
- scripts = [pkgs.mpvScripts.mpris];
- };
+ programs.mpv = {
+ enable = true;
+ defaultProfiles = [ "gpu-hq" ];
+ scripts = [ pkgs.mpvScripts.mpris ];
+ };
}
diff --git a/home/programs/productivity/geary.nix b/home/programs/productivity/geary.nix
index 53e9af5..b7602e0 100644
--- a/home/programs/productivity/geary.nix
+++ b/home/programs/productivity/geary.nix
@@ -1,4 +1,4 @@
{ pkgs, ... }:
{
- home.programs.geary.enable = true;
+ home.programs.geary.enable = true;
}
diff --git a/home/programs/productivity/logseq.nix b/home/programs/productivity/logseq.nix
index e3de9b6..907e87a 100644
--- a/home/programs/productivity/logseq.nix
+++ b/home/programs/productivity/logseq.nix
@@ -1,13 +1,13 @@
{ pkgs, ... }:
-let
- logseq-patch = pkgs.logseq.override {
- electron_27 = pkgs.electron_34;
- };
+let
+ logseq-patch = pkgs.logseq.override {
+ electron_27 = pkgs.electron_34;
+ };
in
{
- home.packages = with pkgs; [
- logseq-patch
- logseq
- ];
+ home.packages = with pkgs; [
+ logseq-patch
+ logseq
+ ];
}
diff --git a/home/programs/productivity/notesnook.nix b/home/programs/productivity/notesnook.nix
index d9d9714..34b2aca 100644
--- a/home/programs/productivity/notesnook.nix
+++ b/home/programs/productivity/notesnook.nix
@@ -1,4 +1,4 @@
{ pkgs, ... }:
{
- home.packages = with pkgs; [ notesnook ];
+ home.packages = with pkgs; [ notesnook ];
}
diff --git a/home/programs/productivity/okular.nix b/home/programs/productivity/okular.nix
index 828ed46..8945e82 100644
--- a/home/programs/productivity/okular.nix
+++ b/home/programs/productivity/okular.nix
@@ -1,4 +1,4 @@
{ pkgs, ... }:
{
- home.packages = [ pkgs.libsForQt5.okular ];
+ home.packages = [ pkgs.libsForQt5.okular ];
}
diff --git a/home/programs/productivity/onlyoffice.nix b/home/programs/productivity/onlyoffice.nix
index ad1f783..05ae3c0 100644
--- a/home/programs/productivity/onlyoffice.nix
+++ b/home/programs/productivity/onlyoffice.nix
@@ -1,8 +1,8 @@
{ pkgs, ... }:
{
- # Install OnlyOffice Desktop Editors
- home.packages = with pkgs; [
- onlyoffice-desktopeditors
- ];
+ # Install OnlyOffice Desktop Editors
+ home.packages = with pkgs; [
+ onlyoffice-desktopeditors
+ ];
}
diff --git a/home/programs/productivity/trilium.nix b/home/programs/productivity/trilium.nix
index 2e22eb5..3af8504 100644
--- a/home/programs/productivity/trilium.nix
+++ b/home/programs/productivity/trilium.nix
@@ -1,4 +1,4 @@
{ pkgs, ... }:
{
- home.packages = [ pkgs.trilium-desktop ];
+ home.packages = [ pkgs.trilium-desktop ];
}
diff --git a/home/programs/social/nixcord.nix b/home/programs/social/nixcord.nix
new file mode 100644
index 0000000..678d32e
--- /dev/null
+++ b/home/programs/social/nixcord.nix
@@ -0,0 +1,50 @@
+{ pkgs, ... }:
+
+# home.nix
+{
+ # ...
+ programs.nixcord = {
+ enable = true; # Enable Nixcord (It also installs Discord)
+ vesktop.enable = true; # Vesktop
+ dorion.enable = true; # Dorion
+ quickCss = "some CSS"; # quickCSS file
+ config = {
+ useQuickCss = true; # use out quickCSS
+ themeLinks = [
+ # or use an online theme
+ "https://raw.githubusercontent.com/link/to/some/theme.css"
+ ];
+ frameless = true; # Set some Vencord options
+ plugins = {
+ hideAttachments.enable = true; # Enable a Vencord plugin
+ ignoreActivities = {
+ # Enable a plugin and set some options
+ enable = true;
+ ignorePlaying = true;
+ ignoreWatching = true;
+ ignoredActivities = [ "someActivity" ];
+ };
+ };
+ };
+ dorion = {
+ theme = "dark";
+ zoom = "1.1";
+ blur = "acrylic"; # "none", "blur", or "acrylic"
+ sysTray = true;
+ openOnStartup = true;
+ autoClearCache = true;
+ disableHardwareAccel = false;
+ rpcServer = true;
+ rpcProcessScanner = true;
+ pushToTalk = true;
+ pushToTalkKeys = [ "RControl" ];
+ desktopNotifications = true;
+ unreadBadge = true;
+ };
+ extraConfig = {
+ # Some extra JSON config here
+ # ...
+ };
+ };
+ # ...
+}
diff --git a/home/programs/social/teamspeak.nix b/home/programs/social/teamspeak.nix
index c6ce517..5b04f8c 100644
--- a/home/programs/social/teamspeak.nix
+++ b/home/programs/social/teamspeak.nix
@@ -1,8 +1,9 @@
{ pkgs, ... }:
{
- # Install Element Desktop
+ # Install Teamspeak Desktop
home.packages = with pkgs; [
teamspeak3
+ # teamspeak6-client
];
}
diff --git a/home/programs/social/zapzap.nix b/home/programs/social/zapzap.nix
index 4450917..e537b56 100644
--- a/home/programs/social/zapzap.nix
+++ b/home/programs/social/zapzap.nix
@@ -3,6 +3,6 @@
{
# Install Element Desktop
home.packages = with pkgs; [
- zapzap
+ zapzap
];
}
diff --git a/home/programs/web/chromium.nix b/home/programs/web/chromium.nix
index 923c64d..7164b26 100644
--- a/home/programs/web/chromium.nix
+++ b/home/programs/web/chromium.nix
@@ -2,12 +2,13 @@
pkgs,
config,
...
-}: {
- programs.chromium = {
- enable = true;
- commandLineArgs = ["--enable-features=TouchpadOverscrollHistoryNavigation"];
- extensions = [
- # {id = "";} // extension id, query from chrome web store
- ];
- };
+}:
+{
+ programs.chromium = {
+ enable = true;
+ commandLineArgs = [ "--enable-features=TouchpadOverscrollHistoryNavigation" ];
+ extensions = [
+ # {id = "";} // extension id, query from chrome web store
+ ];
+ };
}
diff --git a/home/programs/web/firefox.nix b/home/programs/web/firefox.nix
index 3c9fb62..4441d37 100644
--- a/home/programs/web/firefox.nix
+++ b/home/programs/web/firefox.nix
@@ -3,9 +3,10 @@
config,
username,
...
-}: {
- programs.firefox = {
- enable = true;
- profiles.${username} = {};
- };
+}:
+{
+ programs.firefox = {
+ enable = false;
+ profiles.${username} = { };
+ };
}
diff --git a/home/programs/web/floorp.nix b/home/programs/web/floorp.nix
index b1367a7..f7999e7 100644
--- a/home/programs/web/floorp.nix
+++ b/home/programs/web/floorp.nix
@@ -3,9 +3,11 @@
config,
username,
...
-}: {
- programs.floorp = {
- enable = true;
- profiles.${username} = {};
- };
+}:
+{
+ programs.floorp = {
+ enable = true;
+ profiles.${username} = { };
+ };
+
}
diff --git a/home/themes/dark/default.nix b/home/themes/dark/default.nix
index 5445b97..12ca330 100644
--- a/home/themes/dark/default.nix
+++ b/home/themes/dark/default.nix
@@ -1,9 +1,9 @@
{ pkgs, ... }:
{
- imports = [
- ./qt.nix
-# ./gtk.nix
- ];
+ imports = [
+ ./qt.nix
+ # ./gtk.nix
+ ];
}
diff --git a/home/themes/dark/gtk.nix b/home/themes/dark/gtk.nix
index bd99042..a0127f1 100644
--- a/home/themes/dark/gtk.nix
+++ b/home/themes/dark/gtk.nix
@@ -1,22 +1,22 @@
{ pkgs, ... }:
{
- gtk = {
- enable = true;
+ gtk = {
+ enable = true;
- theme = {
- package = pkgs.flat-remix-gtk;
- name = "Flat-Remix-GTK-Grey-Darkest";
- };
-
- iconTheme = {
- package = pkgs.adwaita-icon-theme;
- name = "Adwaita";
- };
-
- font = {
- name = "Sans";
- size = 12;
- };
+ theme = {
+ package = pkgs.flat-remix-gtk;
+ name = "Flat-Remix-GTK-Grey-Darkest";
};
+
+ iconTheme = {
+ package = pkgs.adwaita-icon-theme;
+ name = "Adwaita";
+ };
+
+ font = {
+ name = "Sans";
+ size = 12;
+ };
+ };
}
diff --git a/home/themes/dark/qt.nix b/home/themes/dark/qt.nix
index 5c0a582..27a7112 100644
--- a/home/themes/dark/qt.nix
+++ b/home/themes/dark/qt.nix
@@ -1,19 +1,19 @@
{ pkgs, ... }:
{
-
- home.packages = with pkgs.libsForQt5; [
- qt5ct
- qtstyleplugin-kvantum
- ];
- qt = {
- enable = true;
- platformTheme.name = "qtct";
- style.name = "kvantum";
- };
+ home.packages = with pkgs.libsForQt5; [
+ qt5ct
+ qtstyleplugin-kvantum
+ ];
- xdg.configFile = {
- "Kvantum/ArcDark".source = "${pkgs.arc-kde-theme}/share/Kvantum/ArcDark";
- "Kvantum/kvantum.kvconfig".text = "[General]\ntheme=ArcDark";
- };
+ qt = {
+ enable = true;
+ platformTheme.name = "qtct";
+ style.name = "kvantum";
+ };
+
+ xdg.configFile = {
+ "Kvantum/ArcDark".source = "${pkgs.arc-kde-theme}/share/Kvantum/ArcDark";
+ "Kvantum/kvantum.kvconfig".text = "[General]\ntheme=ArcDark";
+ };
}
diff --git a/home/xdg.nix b/home/xdg.nix
index 8c6a082..dab8b1e 100644
--- a/home/xdg.nix
+++ b/home/xdg.nix
@@ -1,5 +1,6 @@
-{pkgs, config, ...}: let
- browser = ["firefox.desktop"];
+{ pkgs, config, ... }:
+let
+ browser = [ "floorp.desktop" ];
# XDG MIME types
associations = {
@@ -11,22 +12,23 @@
"application/xhtml+xml" = browser;
"text/html" = browser;
"x-scheme-handler/about" = browser;
- "x-scheme-handler/chrome" = ["chromium-browser.desktop"];
+ "x-scheme-handler/chrome" = [ "chromium-browser.desktop" ];
"x-scheme-handler/ftp" = browser;
"x-scheme-handler/http" = browser;
"x-scheme-handler/https" = browser;
"x-scheme-handler/unknown" = browser;
- "audio/*" = ["mpv.desktop"];
- "video/*" = ["mpv.dekstop"];
- "image/*" = ["imv.desktop"];
+ "audio/*" = [ "mpv.desktop" ];
+ "video/*" = [ "mpv.dekstop" ];
+ "image/*" = [ "kitty-icat.desktop" ];
"application/json" = browser;
- "application/pdf" = ["org.pwmt.zathura.desktop.desktop"];
- "x-scheme-handler/discord" = ["discordcanary.desktop"];
- "x-scheme-handler/spotify" = ["spotify.desktop"];
- "x-scheme-handler/tg" = ["telegramdesktop.desktop"];
+ "application/pdf" = [ "okular.desktop" ];
+ "x-scheme-handler/discord" = [ "discordcanary.desktop" ];
+ "x-scheme-handler/spotify" = [ "spotify.desktop" ];
+ "x-scheme-handler/tg" = [ "telegramdesktop.desktop" ];
};
-in {
+in
+{
xdg = {
enable = true;
cacheHome = config.home.homeDirectory + "/.local/cache";
@@ -36,6 +38,20 @@ in {
defaultApplications = associations;
};
+ desktopEntries = {
+ kitty-icat = {
+ name = "Kitty Icat";
+ exec = "kitty +kitten icat %F";
+ terminal = true;
+ type = "Application";
+ mimeType = [ "image/*" ];
+ categories = [
+ "Viewer"
+ "Graphics"
+ ];
+ };
+ };
+
userDirs = {
enable = true;
createDirectories = true;
@@ -45,16 +61,20 @@ in {
};
portal = {
- enable = true;
- xdgOpenUsePortal = true;
- config = {
- common.default = [ "gtk" ];
- hyprland.default = [ "gtk" "hyprland" ];
- };
- extraPortals = [
- pkgs.xdg-desktop-portal-gtk
- pkgs.xdg-desktop-portal-hyprland
- ];
+ enable = true;
+ xdgOpenUsePortal = true;
+ config = {
+ common.default = [ "gtk" ];
+ hyprland.default = [
+ "gtk"
+ "hyprland"
+ ];
+ };
+
+ extraPortals = [
+ pkgs.xdg-desktop-portal-gtk
+ pkgs.xdg-desktop-portal-hyprland
+ ];
};
};
}
diff --git a/hosts/hp15-n028sg/default.nix b/hosts/hp15-n028sg/default.nix
index a3eb877..cfab2c5 100644
--- a/hosts/hp15-n028sg/default.nix
+++ b/hosts/hp15-n028sg/default.nix
@@ -5,74 +5,72 @@
{ config, pkgs, ... }:
{
- imports = [
- ../../modules/system.nix
- ../../modules/nix-settings.nix
- ../../modules/vpn.nix
- ../../modules/fonts.nix
- ../../modules/firewall.nix
- ../../modules/localisation.nix
- ../../modules/openssh.nix
- ../../modules/pipewire.nix
- ../../modules/podman.nix
- ../../modules/services.nix
- ../../modules/regreet/regreet.nix
- ../../modules/plymouth.nix
- ../../modules/file_managers/spacefm.nix
- ../../modules/python.nix
-# Include the results of the hardware scan.
- ./hardware-configuration.nix
+ imports = [
+ ../../modules/system.nix
+ ../../modules/nix-settings.nix
+ ../../modules/vpn.nix
+ ../../modules/fonts.nix
+ ../../modules/firewall.nix
+ ../../modules/localisation.nix
+ ../../modules/openssh.nix
+ ../../modules/pipewire.nix
+ ../../modules/podman.nix
+ ../../modules/services.nix
+ ../../modules/regreet/regreet.nix
+ ../../modules/plymouth.nix
+ ../../modules/file_managers/spacefm.nix
+ ../../modules/python.nix
+ # Include the results of the hardware scan.
+ ./hardware-configuration.nix
+ ];
+
+ programs.geary.enable = true;
+
+ boot.loader = {
+ systemd-boot.enable = true;
+ efi.canTouchEfiVariables = true;
+ };
+
+ networking = {
+ hostName = "nix-hp";
+ #networkmanager.enable = true;
+
+ wireless = {
+ enable = true;
+ networks = {
+ LANFRED.pskRaw = "36e2b41b51328800a9582be1a05f13f796f943569610ccdb61304803b86ce3da";
+ #free.wifi = {};
+ };
+ };
+
+ nameservers = [
+ "1.1.1.1"
+ "1.0.0.1"
+ "8.8.8.8"
+ "8.8.4.4"
];
+ };
- programs.geary.enable = true;
-
- boot.loader = {
- systemd-boot.enable = true;
- efi.canTouchEfiVariables = true;
+ nixpkgs.config.nvidia.acceptLicense = true;
+ hardware.graphics.enable = true;
+ services.xserver.videoDrivers = [ "nvidia" ];
+ hardware.nvidia = {
+ package = config.boot.kernelPackages.nvidiaPackages.legacy_470;
+ modesetting.enable = true;
+ open = false;
+ powerManagement = {
+ enable = false;
+ finegrained = false;
};
+ nvidiaSettings = true;
- networking = {
- hostName = "nix-hp";
- #networkmanager.enable = true;
-
- wireless = {
- enable = true;
- networks = {
- LANFRED.pskRaw = "36e2b41b51328800a9582be1a05f13f796f943569610ccdb61304803b86ce3da";
- #free.wifi = {};
- };
- };
-
- nameservers = [
- "1.1.1.1"
- "1.0.0.1"
- "8.8.8.8"
- "8.8.4.4"
- ];
+ prime = {
+ intelBusId = "PCI:0:2:0";
+ nvidiaBusId = "PCI:10:0:0";
+ sync.enable = true;
};
-
- nixpkgs.config.nvidia.acceptLicense = true;
- hardware.graphics.enable = true;
- services.xserver.videoDrivers = [ "nvidia" ];
- hardware.nvidia = {
- package = config.boot.kernelPackages.nvidiaPackages.legacy_470;
- modesetting.enable = true;
- open = false;
- powerManagement = {
- enable = false;
- finegrained = false;
- };
- nvidiaSettings = true;
+ };
- prime = {
- intelBusId = "PCI:0:2:0";
- nvidiaBusId = "PCI:10:0:0";
- sync.enable = true;
- };
- };
-
- system.stateVersion = "25.11"; # Did you read the comment?
+ system.stateVersion = "25.11"; # Did you read the comment?
}
-
-
diff --git a/hosts/hp15-n028sg/hardware-configuration.nix b/hosts/hp15-n028sg/hardware-configuration.nix
index e6e219b..e8d5fa6 100644
--- a/hosts/hp15-n028sg/hardware-configuration.nix
+++ b/hosts/hp15-n028sg/hardware-configuration.nix
@@ -1,28 +1,44 @@
# Do not modify this file! It was generated by ‘nixos-generate-config’
# and may be overwritten by future invocations. Please make changes
# to /etc/nixos/configuration.nix instead.
-{ config, lib, pkgs, modulesPath, ... }:
+{
+ config,
+ lib,
+ pkgs,
+ modulesPath,
+ ...
+}:
{
- imports =
- [ (modulesPath + "/installer/scan/not-detected.nix")
- ];
+ imports = [
+ (modulesPath + "/installer/scan/not-detected.nix")
+ ];
- boot.initrd.availableKernelModules = [ "xhci_pci" "ehci_pci" "ahci" "usb_storage" "sd_mod" "sr_mod" ];
+ boot.initrd.availableKernelModules = [
+ "xhci_pci"
+ "ehci_pci"
+ "ahci"
+ "usb_storage"
+ "sd_mod"
+ "sr_mod"
+ ];
boot.initrd.kernelModules = [ ];
boot.kernelModules = [ "kvm-intel" ];
boot.extraModulePackages = [ ];
- fileSystems."/" =
- { device = "/dev/disk/by-label/NIXROOT";
- fsType = "ext4";
- };
+ fileSystems."/" = {
+ device = "/dev/disk/by-label/NIXROOT";
+ fsType = "ext4";
+ };
- fileSystems."/boot" =
- { device = "/dev/disk/by-label/NIXBOOT";
- fsType = "vfat";
- options = [ "fmask=0022" "dmask=0022" ];
- };
+ fileSystems."/boot" = {
+ device = "/dev/disk/by-label/NIXBOOT";
+ fsType = "vfat";
+ options = [
+ "fmask=0022"
+ "dmask=0022"
+ ];
+ };
swapDevices = [ ];
diff --git a/hosts/m920q/configuration.nix b/hosts/m920q/configuration.nix
index 7583a3d..32d2798 100644
--- a/hosts/m920q/configuration.nix
+++ b/hosts/m920q/configuration.nix
@@ -2,13 +2,18 @@
# your system. Help is available in the configuration.nix(5) man page, on
# https://search.nixos.org/options and in the NixOS manual (`nixos-help`).
-{ config, lib, pkgs, ... }:
+{
+ config,
+ lib,
+ pkgs,
+ ...
+}:
{
- imports =
- [ # Include the results of the hardware scan.
- ./hardware-configuration.nix
- ];
+ imports = [
+ # Include the results of the hardware scan.
+ ./hardware-configuration.nix
+ ];
# Use the systemd-boot EFI boot loader.
boot.loader.systemd-boot.enable = true;
@@ -17,7 +22,7 @@
# networking.hostName = "nixos"; # Define your hostname.
# Pick only one of the below networking options.
# networking.wireless.enable = true; # Enables wireless support via wpa_supplicant.
- networking.networkmanager.enable = true; # Easiest to use and most distros use this by default.
+ networking.networkmanager.enable = true; # Easiest to use and most distros use this by default.
# Set your time zone.
time.timeZone = "Europe/Berlin";
@@ -37,9 +42,6 @@
# Enable the X11 windowing system.
# services.xserver.enable = true;
-
-
-
# Configure keymap in X11
services.xserver.xkb.layout = "de";
# services.xserver.xkb.options = "eurosign:e,caps:escape";
@@ -60,17 +62,17 @@
# Define a user account. Don't forget to set a password with ‘passwd’.
users.users.phil = {
- initialPassword = "!P2h3i4lon";
- isNormalUser = true;
- extraGroups = [ "wheel" ]; # Enable ‘sudo’ for the user.
- packages = with pkgs; [
- tree
- neovim
- git
- wget
- curl
- ];
- };
+ initialPassword = "!P2h3i4lon";
+ isNormalUser = true;
+ extraGroups = [ "wheel" ]; # Enable ‘sudo’ for the user.
+ packages = with pkgs; [
+ tree
+ neovim
+ git
+ wget
+ curl
+ ];
+ };
# programs.firefox.enable = true;
@@ -125,4 +127,3 @@
system.stateVersion = "24.11"; # Did you read the comment?
}
-
diff --git a/hosts/m920q/default.nix b/hosts/m920q/default.nix
index b275a13..edb0857 100644
--- a/hosts/m920q/default.nix
+++ b/hosts/m920q/default.nix
@@ -2,31 +2,36 @@
# your system. Help is available in the configuration.nix(5) man page
# and in the NixOS manual (accessible by running ‘nixos-help’).
-{ config, pkgs, lib, ... }:
+{
+ config,
+ pkgs,
+ lib,
+ ...
+}:
{
- imports = [
- ../../modules/system.nix
- ../../modules/nix-settings.nix
- ../../modules/vpn.nix
- ../../modules/fonts.nix
- ../../modules/firewall.nix
- ../../modules/localisation.nix
- ../../modules/openssh.nix
- ../../modules/pipewire.nix
- #../../modules/podman.nix
- ../../modules/docker.nix
- ../../modules/services.nix
- ../../modules/regreet/regreet.nix
- ../../modules/plymouth.nix
- ../../modules/file_managers/spacefm.nix
- ../../modules/appimage.nix
- ../../modules/qemu.nix
- ../../modules/thunderbird.nix
- ../../modules/canon_eos_550d.nix
-# Include the results of the hardware scan.
- ./hardware-configuration.nix
- ];
+ imports = [
+ ../../modules/system.nix
+ ../../modules/nix-settings.nix
+ ../../modules/vpn.nix
+ ../../modules/fonts.nix
+ ../../modules/firewall.nix
+ ../../modules/localisation.nix
+ ../../modules/openssh.nix
+ ../../modules/pipewire.nix
+ #../../modules/podman.nix
+ ../../modules/docker.nix
+ ../../modules/services.nix
+ ../../modules/regreet/regreet.nix
+ ../../modules/plymouth.nix
+ ../../modules/file_managers/spacefm.nix
+ ../../modules/appimage.nix
+ ../../modules/qemu.nix
+ ../../modules/thunderbird.nix
+ ../../modules/canon_eos_550d.nix
+ # Include the results of the hardware scan.
+ ./hardware-configuration.nix
+ ];
# Bootloader.
boot.loader = {
@@ -35,27 +40,29 @@
};
networking = {
- hostName = "nix-desktop";
- networkmanager.enable = true;
- #useDHCP = lib.mkForce true;
- #dhcpcd.enable = true;
- interfaces = {
- eno1.ipv4.addresses = [{
- address = "192.168.2.40";
- prefixLength = 24;
- }];
- };
+ hostName = "nix-desktop";
+ networkmanager.enable = true;
+ #useDHCP = lib.mkForce true;
+ #dhcpcd.enable = true;
+ interfaces = {
+ eno1.ipv4.addresses = [
+ {
+ address = "192.168.2.40";
+ prefixLength = 24;
+ }
+ ];
+ };
- defaultGateway = {
- address = "192.168.2.1";
- interface = "eno1";
- };
+ defaultGateway = {
+ address = "192.168.2.1";
+ interface = "eno1";
+ };
- nameservers = [
- "192.168.2.2"
- "1.1.1.1"
- "8.8.8.8"
- ];
+ nameservers = [
+ "192.168.2.2"
+ "1.1.1.1"
+ "8.8.8.8"
+ ];
};
hardware.graphics.enable = true;
@@ -65,5 +72,3 @@
environment.systemPackages = [ pkgs.onlyoffice-bin ];
}
-
-
diff --git a/hosts/m920q/hardware-configuration.nix b/hosts/m920q/hardware-configuration.nix
index 406608c..0908a59 100644
--- a/hosts/m920q/hardware-configuration.nix
+++ b/hosts/m920q/hardware-configuration.nix
@@ -1,36 +1,55 @@
# Do not modify this file! It was generated by ‘nixos-generate-config’
# and may be overwritten by future invocations. Please make changes
# to /etc/nixos/configuration.nix instead.
-{ config, lib, pkgs, modulesPath, ... }:
+{
+ config,
+ lib,
+ pkgs,
+ modulesPath,
+ ...
+}:
{
- imports =
- [ (modulesPath + "/installer/scan/not-detected.nix")
- ];
+ imports = [
+ (modulesPath + "/installer/scan/not-detected.nix")
+ ];
- boot.initrd.availableKernelModules = [ "xhci_pci" "ahci" "nvme" "usbhid" "usb_storage" "sd_mod" ];
+ boot.initrd.availableKernelModules = [
+ "xhci_pci"
+ "ahci"
+ "nvme"
+ "usbhid"
+ "usb_storage"
+ "sd_mod"
+ ];
boot.initrd.kernelModules = [ ];
- boot.kernelModules = [ "kvm-intel" "v4l2loopback"];
+ boot.kernelModules = [
+ "kvm-intel"
+ "v4l2loopback"
+ ];
boot.extraModulePackages = [ config.boot.kernelPackages.v4l2loopback.out ];
boot.extraModprobeConfig = ''
options v4l2loopback exclusive_caps=1 card_label="Virtual Camera"
'';
- fileSystems."/" =
- { device = "/dev/disk/by-label/NIXROOT";
- fsType = "ext4";
- };
+ fileSystems."/" = {
+ device = "/dev/disk/by-label/NIXROOT";
+ fsType = "ext4";
+ };
- fileSystems."/boot" =
- { device = "/dev/disk/by-label/NIXBOOT";
- fsType = "vfat";
- options = [ "fmask=0022" "dmask=0022" ];
- };
+ fileSystems."/boot" = {
+ device = "/dev/disk/by-label/NIXBOOT";
+ fsType = "vfat";
+ options = [
+ "fmask=0022"
+ "dmask=0022"
+ ];
+ };
- fileSystems."/storage" =
- { device = "/dev/disk/by-label/STORAGE";
- fsType = "ext4";
- };
+ fileSystems."/storage" = {
+ device = "/dev/disk/by-label/STORAGE";
+ fsType = "ext4";
+ };
swapDevices = [ ];
diff --git a/hosts/qemu/default.nix b/hosts/qemu/default.nix
index 66e4257..2b0821f 100644
--- a/hosts/qemu/default.nix
+++ b/hosts/qemu/default.nix
@@ -5,40 +5,38 @@
{ config, pkgs, ... }:
{
- imports = [
- ../../modules/system.nix
- ../../modules/nix-settings.nix
- ../../modules/vpn.nix
- ../../modules/fonts.nix
- ../../modules/firewall.nix
- ../../modules/localisation.nix
- ../../modules/openssh.nix
- ../../modules/pipewire.nix
- ../../modules/podman.nix
- ../../modules/services.nix
- ../../modules/regreet/regreet.nix
- ../../modules/plymouth.nix
- ../../modules/file_managers/spacefm.nix
+ imports = [
+ ../../modules/system.nix
+ ../../modules/nix-settings.nix
+ ../../modules/vpn.nix
+ ../../modules/fonts.nix
+ ../../modules/firewall.nix
+ ../../modules/localisation.nix
+ ../../modules/openssh.nix
+ ../../modules/pipewire.nix
+ ../../modules/podman.nix
+ ../../modules/services.nix
+ ../../modules/regreet/regreet.nix
+ ../../modules/plymouth.nix
+ ../../modules/file_managers/spacefm.nix
-# Include the results of the hardware scan.
- ./hardware-configuration.nix
- ];
+ # Include the results of the hardware scan.
+ ./hardware-configuration.nix
+ ];
- programs.geary.enable = true;
+ programs.geary.enable = true;
- boot.loader = {
- grub = {
- enable = true;
- device = "/dev/sda";
- };
+ boot.loader = {
+ grub = {
+ enable = true;
+ device = "/dev/sda";
};
+ };
- networking.hostName = "nix-qemu"; # Define your hostname.
+ networking.hostName = "nix-qemu"; # Define your hostname.
- hardware.graphics.enable = true;
+ hardware.graphics.enable = true;
- system.stateVersion = "25.11"; # Did you read the comment?
+ system.stateVersion = "25.11"; # Did you read the comment?
}
-
-
diff --git a/hosts/qemu/hardware-configuration.nix b/hosts/qemu/hardware-configuration.nix
index 2222882..9c4507f 100644
--- a/hosts/qemu/hardware-configuration.nix
+++ b/hosts/qemu/hardware-configuration.nix
@@ -1,28 +1,42 @@
# Do not modify this file! It was generated by ‘nixos-generate-config’
# and may be overwritten by future invocations. Please make changes
# to /etc/nixos/configuration.nix instead.
-{ config, lib, pkgs, modulesPath, ... }:
+{
+ config,
+ lib,
+ pkgs,
+ modulesPath,
+ ...
+}:
{
- imports =
- [ (modulesPath + "/profiles/qemu-guest.nix")
- ];
+ imports = [
+ (modulesPath + "/profiles/qemu-guest.nix")
+ ];
- boot.initrd.availableKernelModules = [ "ata_piix" "floppy" "sd_mod" "sr_mod" ];
+ boot.initrd.availableKernelModules = [
+ "ata_piix"
+ "floppy"
+ "sd_mod"
+ "sr_mod"
+ ];
boot.initrd.kernelModules = [ ];
boot.kernelModules = [ "kvm-intel" ];
boot.extraModulePackages = [ ];
- fileSystems."/" =
- { device = "/dev/disk/by-label/NIXROOT";
- fsType = "ext4";
- };
+ fileSystems."/" = {
+ device = "/dev/disk/by-label/NIXROOT";
+ fsType = "ext4";
+ };
- fileSystems."/boot" =
- { device = "/dev/disk/by-label/NIXBOOT";
- fsType = "vfat";
- options = [ "fmask=0022" "dmask=0022" ];
- };
+ fileSystems."/boot" = {
+ device = "/dev/disk/by-label/NIXBOOT";
+ fsType = "vfat";
+ options = [
+ "fmask=0022"
+ "dmask=0022"
+ ];
+ };
swapDevices = [ ];
diff --git a/modules/appimage.nix b/modules/appimage.nix
index 2771a45..3741d36 100644
--- a/modules/appimage.nix
+++ b/modules/appimage.nix
@@ -1,7 +1,7 @@
{ pkgs, ... }:
{
- programs.appimage = {
- enable = true;
- binfmt = true;
- };
+ programs.appimage = {
+ enable = true;
+ binfmt = true;
+ };
}
diff --git a/modules/bluetooth.nix b/modules/bluetooth.nix
index 465cba6..622ef63 100644
--- a/modules/bluetooth.nix
+++ b/modules/bluetooth.nix
@@ -1,21 +1,21 @@
{ pkgs, ... }:
{
- hardware.bluetooth = {
- enable = true;
- powerOnBoot = true;
- settings = {
- General = {
- Enable = "Source,Sink,Media,Socket";
- Experimental = true;
- }
- };
- }
+ hardware.bluetooth = {
+ enable = true;
+ powerOnBoot = true;
+ settings = {
+ General = {
+ Enable = "Source,Sink,Media,Socket";
+ Experimental = true;
+ };
+ };
+ };
- services.blueman.enable = true; # Graphical Manager
+ services.blueman.enable = true; # Graphical Manager
- hardware.pulseaudio = {
- enable = true;
- package = pkgs.pulseaudioFull;
- extraModules = [ pkgs.pulseaudio-modules-bt ];
- }
+ hardware.pulseaudio = {
+ enable = true;
+ package = pkgs.pulseaudioFull;
+ extraModules = [ pkgs.pulseaudio-modules-bt ];
+ };
}
diff --git a/modules/canon_eos_550d.nix b/modules/canon_eos_550d.nix
index a304c73..4ecb5f4 100644
--- a/modules/canon_eos_550d.nix
+++ b/modules/canon_eos_550d.nix
@@ -1,25 +1,25 @@
{ pkgs, ... }:
{
- services.udev.extraRules = ''
- ACTION=="add", \
- SUBSYSTEM=="usb", \
- ATTR{idVendor}=="04a9", \
- ATTR{idProduct}=="31ea", \
- '';
-# RUN+="systemctl restart webcam"
+ services.udev.extraRules = ''
+ ACTION=="add", \
+ SUBSYSTEM=="usb", \
+ ATTR{idVendor}=="04a9", \
+ ATTR{idProduct}=="31ea", \
+ '';
+ # RUN+="systemctl restart webcam"
- systemd.services.webcam = {
- enable = true;
- script = ''
- ${pkgs.gphoto2}/bin/gphoto2 --stdout --capture-movie |
- ${pkgs.ffmpeg}/bin/ffmpeg \
- -i - \
- -vcodec rawvideo \
- -pix_fmt yuv420p \
- -f v4l2 \
- /dev/video0
- '';
- #wantedBy = [ "multi-user.target" ];
- };
+ systemd.services.webcam = {
+ enable = true;
+ script = ''
+ ${pkgs.gphoto2}/bin/gphoto2 --stdout --capture-movie |
+ ${pkgs.ffmpeg}/bin/ffmpeg \
+ -i - \
+ -vcodec rawvideo \
+ -pix_fmt yuv420p \
+ -f v4l2 \
+ /dev/video0
+ '';
+ #wantedBy = [ "multi-user.target" ];
+ };
}
diff --git a/modules/docker.nix b/modules/docker.nix
index ae142b7..20d7645 100644
--- a/modules/docker.nix
+++ b/modules/docker.nix
@@ -1,34 +1,36 @@
-{ pkgs, ...}:
+{ pkgs, ... }:
{
- environment.systemPackages = with pkgs; [
- # Virtualisation
- docker-compose # docker-compose alternative
- dive # docker layer viewer
- tailscale # Vpn
- ];
+ environment.systemPackages = with pkgs; [
# Virtualisation
- virtualisation = {
- containers.enable = true;
+ docker-compose # docker-compose alternative
+ dive # docker layer viewer
+ tailscale # Vpn
+ ];
+ # Virtualisation
+ virtualisation = {
+ containers.enable = true;
- docker = {
- enable = true;
- rootless = {
- enable = true;
- setSocketVariable = true;
- };
- };
-
- oci-containers = {
- backend = "docker";
- containers = {
- /*container-name = {
- image = "image";
- autoStart = true;
- ports = [ "127.0.0.1:1234:1234" ];
- };*/
- };
- };
+ docker = {
+ enable = true;
+ rootless = {
+ enable = true;
+ setSocketVariable = true;
+ };
};
+ oci-containers = {
+ backend = "docker";
+ containers = {
+ /*
+ container-name = {
+ image = "image";
+ autoStart = true;
+ ports = [ "127.0.0.1:1234:1234" ];
+ };
+ */
+ };
+ };
+ };
+
}
diff --git a/modules/file_managers/spacefm.nix b/modules/file_managers/spacefm.nix
index 6647c8f..a9430fd 100644
--- a/modules/file_managers/spacefm.nix
+++ b/modules/file_managers/spacefm.nix
@@ -1,4 +1,4 @@
{ pkgs, ... }:
{
- programs.spacefm.enable = true;
+ programs.spacefm.enable = true;
}
diff --git a/modules/file_managers/thunar.nix b/modules/file_managers/thunar.nix
index 6b16924..d8d3455 100644
--- a/modules/file_managers/thunar.nix
+++ b/modules/file_managers/thunar.nix
@@ -1,13 +1,13 @@
{ pkgs, ... }:
{
- programs.xfconf.enable = true;
- services.gvfs.enable = true;
- services.tumbler.enable = true;
- programs.thunar = {
- enable = true;
- plugins = with pkgs.xfce; [
- thunar-archive-plugin
- thunar-volman
- ];
- };
+ programs.xfconf.enable = true;
+ services.gvfs.enable = true;
+ services.tumbler.enable = true;
+ programs.thunar = {
+ enable = true;
+ plugins = with pkgs.xfce; [
+ thunar-archive-plugin
+ thunar-volman
+ ];
+ };
}
diff --git a/modules/firewall.nix b/modules/firewall.nix
index 38e1943..2f7efbb 100644
--- a/modules/firewall.nix
+++ b/modules/firewall.nix
@@ -1,7 +1,7 @@
{ pkgs, ... }:
{
- networking.firewall.allowedTCPPorts = [ 57621 ];
- networking.firewall.allowedUDPPorts = [ 5353 ];
- # Or disable the firewall altogether.
- networking.firewall.enable = false;
+ networking.firewall.allowedTCPPorts = [ 57621 ];
+ networking.firewall.allowedUDPPorts = [ 5353 ];
+ # Or disable the firewall altogether.
+ networking.firewall.enable = false;
}
diff --git a/modules/fonts.nix b/modules/fonts.nix
index d05ec64..b97f63e 100644
--- a/modules/fonts.nix
+++ b/modules/fonts.nix
@@ -1,30 +1,39 @@
{ pkgs, ... }:
{
- fonts = {
- packages = with pkgs; [
- # icon fonts
- material-icons
- material-black-colors
- material-design-icons
+ fonts = {
+ packages = with pkgs; [
+ # icon fonts
+ material-icons
+ material-black-colors
+ material-design-icons
- # normal fonts
- noto-fonts
- noto-fonts-emoji
+ # normal fonts
+ noto-fonts
+ noto-fonts-emoji
- nerdfonts
- ];
+ nerdfonts
+ ];
- # use fonts specified by user rather than default ones
- enableDefaultPackages = false;
+ # use fonts specified by user rather than default ones
+ enableDefaultPackages = false;
- # user defined fonts
- # the reason there's Noto Color Emoji everywhere is to override DejaVu's
- # B&W emojis that would sometimes show instead of some Color emojis
- fontconfig.defaultFonts = {
- serif = ["Noto Serif" "Noto Color Emoji"];
- sansSerif = ["Noto Sans" "Noto Color Emoji"];
- monospace = ["JetBrainsMono Nerd Font" "Noto Color Emoji"];
- emoji = ["Noto Color Emoji"];
- };
+ # user defined fonts
+ # the reason there's Noto Color Emoji everywhere is to override DejaVu's
+ # B&W emojis that would sometimes show instead of some Color emojis
+ fontconfig.defaultFonts = {
+ serif = [
+ "Noto Serif"
+ "Noto Color Emoji"
+ ];
+ sansSerif = [
+ "Noto Sans"
+ "Noto Color Emoji"
+ ];
+ monospace = [
+ "JetBrainsMono Nerd Font"
+ "Noto Color Emoji"
+ ];
+ emoji = [ "Noto Color Emoji" ];
};
+ };
}
diff --git a/modules/localisation.nix b/modules/localisation.nix
index 9c2a792..cfeab77 100644
--- a/modules/localisation.nix
+++ b/modules/localisation.nix
@@ -1,20 +1,20 @@
-{ pkgs, ... }:
+{ pkgs, ... }:
{
- # Set your time zone.
- time.timeZone = "Europe/Berlin";
+ # Set your time zone.
+ time.timeZone = "Europe/Berlin";
- # Select internationalisation properties.
- i18n.defaultLocale = "en_US.UTF-8";
+ # Select internationalisation properties.
+ i18n.defaultLocale = "en_US.UTF-8";
- i18n.extraLocaleSettings = {
- LC_ADDRESS = "de_DE.UTF-8";
- LC_IDENTIFICATION = "de_DE.UTF-8";
- LC_MEASUREMENT = "de_DE.UTF-8";
- LC_MONETARY = "de_DE.UTF-8";
- LC_NAME = "de_DE.UTF-8";
- LC_NUMERIC = "de_DE.UTF-8";
- LC_PAPER = "de_DE.UTF-8";
- LC_TELEPHONE = "de_DE.UTF-8";
- LC_TIME = "de_DE.UTF-8";
- };
+ i18n.extraLocaleSettings = {
+ LC_ADDRESS = "de_DE.UTF-8";
+ LC_IDENTIFICATION = "de_DE.UTF-8";
+ LC_MEASUREMENT = "de_DE.UTF-8";
+ LC_MONETARY = "de_DE.UTF-8";
+ LC_NAME = "de_DE.UTF-8";
+ LC_NUMERIC = "de_DE.UTF-8";
+ LC_PAPER = "de_DE.UTF-8";
+ LC_TELEPHONE = "de_DE.UTF-8";
+ LC_TIME = "de_DE.UTF-8";
+ };
}
diff --git a/modules/nix-settings.nix b/modules/nix-settings.nix
index e121f5e..9b977a8 100644
--- a/modules/nix-settings.nix
+++ b/modules/nix-settings.nix
@@ -1,42 +1,50 @@
-{ pkgs, username, lib, ... }:
{
- # given the users in this list the right to specify additional substituters via:
- # 1. `nixConfig.substituers` in `flake.nix`
- # 2. command line args `--options substituers http://xxx`
- nix.settings.trusted-users = [username];
+ pkgs,
+ username,
+ lib,
+ ...
+}:
+{
+ # given the users in this list the right to specify additional substituters via:
+ # 1. `nixConfig.substituers` in `flake.nix`
+ # 2. command line args `--options substituers http://xxx`
+ nix.settings.trusted-users = [ username ];
- # customise /etc/nix/nix.conf declaratively via `nix.settings`
- nix.settings = {
- # enable flakes globally
- experimental-features = ["nix-command" "flakes"];
- auto-optimise-store = true;
- substituters = [
- "https://cache.nixos.org"
- "https://hyprland.cachix.org"
- ];
-
- trusted-public-keys = [
- "cache.nixos.org-1:6NCHdD59X431o0gWypbMrAURkbJ16ZPMQFGspcDShjY="
- "hyprland.cachix.org-1:a7pgxzMz7+chwVL3/pzj6jIBMioiJM7ypFP8PwtkuGc="
- ];
- builders-use-substitutes = true;
- download-buffer-size = 524288000;
- };
-
- # do garbage collection weekly to keep disk usage low
- nix.gc = {
- automatic = lib.mkDefault true;
- dates = lib.mkDefault "1 h";
- options = lib.mkDefault "--delete-older-than +3";
- };
-
- # Allow unfree packages
- nixpkgs.config.allowUnfree = true;
- nixpkgs.config.allowBroken = true;
-
- nixpkgs.config.permittedInsecurePackages = [
- "dotnet-sdk-6.0.428"
- "dotnet-runtime-6.0.36"
+ # customise /etc/nix/nix.conf declaratively via `nix.settings`
+ nix.settings = {
+ # enable flakes globally
+ experimental-features = [
+ "nix-command"
+ "flakes"
+ ];
+ auto-optimise-store = true;
+ substituters = [
+ "https://cache.nixos.org"
+ "https://hyprland.cachix.org"
];
+ trusted-public-keys = [
+ "cache.nixos.org-1:6NCHdD59X431o0gWypbMrAURkbJ16ZPMQFGspcDShjY="
+ "hyprland.cachix.org-1:a7pgxzMz7+chwVL3/pzj6jIBMioiJM7ypFP8PwtkuGc="
+ ];
+ builders-use-substitutes = true;
+ download-buffer-size = 524288000;
+ };
+
+ # do garbage collection weekly to keep disk usage low
+ nix.gc = {
+ automatic = lib.mkDefault true;
+ dates = lib.mkDefault "1 h";
+ options = lib.mkDefault "--delete-older-than +3";
+ };
+
+ # Allow unfree packages
+ nixpkgs.config.allowUnfree = true;
+ nixpkgs.config.allowBroken = true;
+
+ nixpkgs.config.permittedInsecurePackages = [
+ "dotnet-sdk-6.0.428"
+ "dotnet-runtime-6.0.36"
+ ];
+
}
diff --git a/modules/openssh.nix b/modules/openssh.nix
index cf99d46..1db4b18 100644
--- a/modules/openssh.nix
+++ b/modules/openssh.nix
@@ -1,13 +1,13 @@
{ pkgs, ... }:
{
- # Enable the OpenSSH daemon.
- services.openssh = {
- enable = true;
- settings = {
- X11Forwarding = true;
- PermitRootLogin = "no"; # disable root login
- PasswordAuthentication = false; # disable password login
- };
- openFirewall = true;
+ # Enable the OpenSSH daemon.
+ services.openssh = {
+ enable = true;
+ settings = {
+ X11Forwarding = true;
+ PermitRootLogin = "no"; # disable root login
+ PasswordAuthentication = false; # disable password login
};
+ openFirewall = true;
+ };
}
diff --git a/modules/pipewire.nix b/modules/pipewire.nix
index 1a99d91..d8ad844 100644
--- a/modules/pipewire.nix
+++ b/modules/pipewire.nix
@@ -1,20 +1,20 @@
{ pkgs, ... }:
{
- # Enable sound with pipewire.
- #sound.enable = true;
- hardware.pulseaudio.enable = false;
- environment.systemPackages = with pkgs; [ pamixer ];
- services.pipewire = {
- enable = true;
- #alsa.enable = true;
- #alsa.support32Bit = true;
- #pulse.enable = true;
- # If you want to use JACK applications, uncomment this
- #jack.enable = true;
+ # Enable sound with pipewire.
+ #sound.enable = true;
+ hardware.pulseaudio.enable = false;
+ environment.systemPackages = with pkgs; [ pamixer ];
+ services.pipewire = {
+ enable = true;
+ #alsa.enable = true;
+ #alsa.support32Bit = true;
+ #pulse.enable = true;
+ # If you want to use JACK applications, uncomment this
+ #jack.enable = true;
- # use the example session manager (no others are packaged yet so this is enabled by default,
- # no need to redefine it in your config for now)
- #media-session.enable = true;
- };
+ # use the example session manager (no others are packaged yet so this is enabled by default,
+ # no need to redefine it in your config for now)
+ #media-session.enable = true;
+ };
}
diff --git a/modules/plymouth.nix b/modules/plymouth.nix
index 82e5d4b..2807662 100644
--- a/modules/plymouth.nix
+++ b/modules/plymouth.nix
@@ -1,4 +1,5 @@
-{ pkgs, ... }: {
+{ pkgs, ... }:
+{
boot = {
plymouth = {
diff --git a/modules/podman.nix b/modules/podman.nix
index b419298..9f08658 100644
--- a/modules/podman.nix
+++ b/modules/podman.nix
@@ -1,34 +1,36 @@
-{ pkgs, ...}:
+{ pkgs, ... }:
{
- environment.systemPackages = with pkgs; [
- # Virtualisation
- podman-compose # docker-compose alternative
- dive # docker layer viewer
- podman-tui # status of containers in terminal
- podman-desktop # Desktop client
- tailscale # Vpn
- ];
+ environment.systemPackages = with pkgs; [
# Virtualisation
- virtualisation = {
- containers.enable = true;
+ podman-compose # docker-compose alternative
+ dive # docker layer viewer
+ podman-tui # status of containers in terminal
+ podman-desktop # Desktop client
+ tailscale # Vpn
+ ];
+ # Virtualisation
+ virtualisation = {
+ containers.enable = true;
- podman = {
- enable = true;
- dockerCompat = true;
- defaultNetwork.settings.dns_enabled = true;
- };
-
- oci-containers = {
- backend = "podman";
- containers = {
- /*container-name = {
- image = "image";
- autoStart = true;
- ports = [ "127.0.0.1:1234:1234" ];
- };*/
- };
- };
+ podman = {
+ enable = true;
+ dockerCompat = true;
+ defaultNetwork.settings.dns_enabled = true;
};
+ oci-containers = {
+ backend = "podman";
+ containers = {
+ /*
+ container-name = {
+ image = "image";
+ autoStart = true;
+ ports = [ "127.0.0.1:1234:1234" ];
+ };
+ */
+ };
+ };
+ };
+
}
diff --git a/modules/qemu.nix b/modules/qemu.nix
index 7044260..3231ebe 100644
--- a/modules/qemu.nix
+++ b/modules/qemu.nix
@@ -1,12 +1,12 @@
{ pkgs, ... }:
{
- environment.systemPackages = with pkgs; [
- qemu
- quickemu
- ];
- systemd.tmpfiles.rules = [ "L+ /var/lib/qemu/firmware - - - - ${pkgs.qemu}/share/qemu/firmware" ];
- boot.binfmt.emulatedSystems = [
- "aarch64-linux"
- "riscv64-linux"
- ];
+ environment.systemPackages = with pkgs; [
+ qemu
+ quickemu
+ ];
+ systemd.tmpfiles.rules = [ "L+ /var/lib/qemu/firmware - - - - ${pkgs.qemu}/share/qemu/firmware" ];
+ boot.binfmt.emulatedSystems = [
+ "aarch64-linux"
+ "riscv64-linux"
+ ];
}
diff --git a/modules/regreet/regreet.nix b/modules/regreet/regreet.nix
index f0161cf..0a21ad3 100644
--- a/modules/regreet/regreet.nix
+++ b/modules/regreet/regreet.nix
@@ -1,61 +1,82 @@
-{ pkgs, username, lib, ... }: {
- /*services.greetd = {
- enable = true;
- settings = {
- default_session = {
- user = username;
- command = "$HOME/.wayland-session";
- };
- };
- };*/
-
- services.displayManager = {
- sessionPackages = [ pkgs.hyprland ];
- };
-
- environment.etc= {
- "greetd/background.png".source = ../../wallpapers/lucy_with_cat.png;
- "greetd/environments".text = ''
- hyprland
- fish
- '';
- };
-
- programs.regreet = {
- enable = true;
- cageArgs = ["-s" "-m" "last" ];
- settings = {
- background = {
- path = "/etc/greetd/background.png";
- fit = "Fill";
- };
-
- env.SESSION_DIRS = "$HOME/.wayland-session";
-
- GTK = {
- application_prefer_dark_theme = true;
- cursor_theme_name = "Adwaita";
- font_name = lib.mkForce "FiraCodeNerdFontPropo 12";
- icon_theme_name = lib.mkForce "materialdesignicons";
- theme_name = "Adwaita";
- };
-
- commands = {
- reboot = ["systemctl" "reboot"];
- poweroff = ["systemctl" "poweroff"];
- x11_prefix = [ "startx" "/usr/bin/env" ];
- };
-
- appearance = {
- greeting_msg = "Hey there, Master!";
- };
-
- widget.clock = {
- format = "%A %d.%m.%Y %T";
- resolution = "500ms";
- timezone = "Europe/Berlin";
- label_width = 150;
- };
+{
+ pkgs,
+ username,
+ lib,
+ ...
+}:
+{
+ /*
+ services.greetd = {
+ enable = true;
+ settings = {
+ default_session = {
+ user = username;
+ command = "$HOME/.wayland-session";
+ };
+ };
};
+ */
+
+ services.displayManager = {
+ sessionPackages = [ pkgs.hyprland ];
+ };
+
+ environment.etc = {
+ "greetd/background.png".source = ../../wallpapers/lucy_with_cat.png;
+ "greetd/environments".text = ''
+ hyprland
+ fish
+ '';
+ };
+
+ programs.regreet = {
+ enable = true;
+ cageArgs = [
+ "-s"
+ "-m"
+ "last"
+ ];
+ settings = {
+ background = {
+ path = "/etc/greetd/background.png";
+ fit = "Fill";
+ };
+
+ env.SESSION_DIRS = "$HOME/.wayland-session";
+
+ GTK = {
+ application_prefer_dark_theme = true;
+ cursor_theme_name = "Adwaita";
+ font_name = lib.mkForce "FiraCodeNerdFontPropo 12";
+ icon_theme_name = lib.mkForce "materialdesignicons";
+ theme_name = "Adwaita";
+ };
+
+ commands = {
+ reboot = [
+ "systemctl"
+ "reboot"
+ ];
+ poweroff = [
+ "systemctl"
+ "poweroff"
+ ];
+ x11_prefix = [
+ "startx"
+ "/usr/bin/env"
+ ];
+ };
+
+ appearance = {
+ greeting_msg = "Hey there, Master!";
+ };
+
+ widget.clock = {
+ format = "%A %d.%m.%Y %T";
+ resolution = "500ms";
+ timezone = "Europe/Berlin";
+ label_width = 150;
+ };
};
+ };
}
diff --git a/modules/services.nix b/modules/services.nix
index 3afe5c1..1862395 100644
--- a/modules/services.nix
+++ b/modules/services.nix
@@ -1,18 +1,18 @@
{ pkgs, ... }:
{
- services = {
- dbus.packages = [pkgs.gcr];
-
-# flatpak.enable = true;
-# xdg.portals.enable = true;
- geoclue2.enable = true;
- xserver.enable = true;
+ services = {
+ dbus.packages = [ pkgs.gcr ];
- udev.packages = with pkgs; [pkgs.gnome-settings-daemon];
+ # flatpak.enable = true;
+ # xdg.portals.enable = true;
+ geoclue2.enable = true;
+ xserver.enable = true;
- # Enable CUPS to print documents.
- printing.enable = true;
+ udev.packages = with pkgs; [ pkgs.gnome-settings-daemon ];
- power-profiles-daemon.enable = true;
- };
+ # Enable CUPS to print documents.
+ printing.enable = true;
+
+ power-profiles-daemon.enable = true;
+ };
}
diff --git a/modules/system.nix b/modules/system.nix
index bdaa461..867e718 100644
--- a/modules/system.nix
+++ b/modules/system.nix
@@ -3,85 +3,97 @@
lib,
username,
...
-}:
+}:
{
-# ============================= User related =============================
+ # ============================= User related =============================
-# Define a user account. Don't forget to set a password with ‘passwd’.
- users.users.${username} = {
- isNormalUser = true;
- description = username;
- extraGroups = ["networkmanager" "wheel" "podman"];
- };
-
- programs.steam.enable = true;
- programs.dconf.enable = true;
-
-# List packages installed in system profile. To search, run:
-# $ nix search wget
- environment.systemPackages = with pkgs; [
- # Bare minimum
- neovim # Do not forget to add an editor to edit configuration.nix! The Nano editor is also installed by default.
- wget
- git
-
- # System tools
- sysstat
- lm_sensors # for `sensors` command
- ethtool
- pciutils # lspci
- usbutils # lsusb
- lshw
- nvme-cli
- smartmontools
- bluez
-
- # Graphics
- libGL
- glxinfo
-
- # Rizz
- fastfetch
- cpufetch
- hyfetch
- ramfetch
- neofetch
- ghfetch
- libnotify
-
- # Terminal
- yazi # file manager
- jq # JSON Parser
- yq-go # YAML Parser
- glow # Markdown Reader
- btop # system monitor
- iotop # iomonitor
- iftop # network monitor
- iperf3 # network tester
- nmap # network discovery
- eza # ls replacement
- curl
- dnsutils
- ldns
- file
- which
- tree
- gnused
- gnutar
- gawk
- zstd
- gnupg
- fzf
-
- # Archives
- zip
- unzip
- p7zip
- xz
-
- postman
+ # Define a user account. Don't forget to set a password with ‘passwd’.
+ users.users.${username} = {
+ isNormalUser = true;
+ description = username;
+ extraGroups = [
+ "networkmanager"
+ "wheel"
+ "podman"
];
+ };
- security.polkit.enable = true;
- security.rtkit.enable = true;
+ programs.steam.enable = true;
+ programs.dconf.enable = true;
+
+ # List packages installed in system profile. To search, run:
+ # $ nix search wget
+ environment.systemPackages = with pkgs; [
+ # Bare minimum
+ neovim # Do not forget to add an editor to edit configuration.nix! The Nano editor is also installed by default.
+ wget
+ git
+
+ # System tools
+ sysstat
+ lm_sensors # for `sensors` command
+ ethtool
+ pciutils # lspci
+ usbutils # lsusb
+ lshw
+ nvme-cli
+ smartmontools
+ bluez
+
+ # Graphics
+ libGL
+ glxinfo
+
+ # Rizz
+ fastfetch
+ cpufetch
+ hyfetch
+ ramfetch
+ neofetch
+ ghfetch
+ libnotify
+
+ # Terminal
+ yazi # file manager
+ jq # JSON Parser
+ yq-go # YAML Parser
+ glow # Markdown Reader
+ btop # system monitor
+ iotop # iomonitor
+ iftop # network monitor
+ iperf3 # network tester
+ nmap # network discovery
+ eza # ls replacement
+ curl
+ dnsutils
+ ldns
+ file
+ which
+ tree
+ gnused
+ gnutar
+ gawk
+ zstd
+ gnupg
+ fzf
+
+ # nix related
+ nix-index
+ nix-tree
+ nix-health
+
+ # Archives
+ zip
+ unzip
+ p7zip
+ xz
+
+ postman
+ #teamspeak6-client
+ ];
+
+ security.polkit.enable = true;
+ security.rtkit.enable = true;
+
+ programs.ssh.startAgent = true;
}
diff --git a/modules/thunderbird.nix b/modules/thunderbird.nix
index 878ee15..57f52a7 100644
--- a/modules/thunderbird.nix
+++ b/modules/thunderbird.nix
@@ -1,4 +1,4 @@
-{ pkgs, ...}:
+{ pkgs, ... }:
{
- programs.thunderbird.enable = true;
+ programs.thunderbird.enable = true;
}
diff --git a/modules/vpn.nix b/modules/vpn.nix
index 79e96dd..deeef3c 100644
--- a/modules/vpn.nix
+++ b/modules/vpn.nix
@@ -1,8 +1,8 @@
{ pkgs, ... }:
{
- services.tailscale = {
- enable = true;
- openFirewall = true;
- };
+ services.tailscale = {
+ enable = true;
+ openFirewall = true;
+ };
}
diff --git a/users/phil/home.nix b/users/phil/home.nix
index 9f989cf..2ea3d1f 100644
--- a/users/phil/home.nix
+++ b/users/phil/home.nix
@@ -1,4 +1,5 @@
-{pkgs, catppuccin, ...}: {
+{ pkgs, catppuccin, ... }:
+{
##################################################################################################################
#
# All Phil's Home Manager Configuration
@@ -10,24 +11,26 @@
../../home/xdg.nix # Bindings
../../home/hyprland # Window Manager
-# ../../home/themes/dark
+ # ../../home/themes/dark
../../home/hyprland/waybar/double-monitor.nix
../../home/programs/dev # Dev Tools
-
+
../../home/programs/media/media.nix
../../home/programs/media/audacity.nix
../../home/programs/media/obs.nix
-# ../../home/programs/media/spicetify.nix
+ ../../home/programs/media/spicetify.nix
../../home/programs/productivity/blender.nix
../../home/programs/productivity/slicer.nix
../../home/programs/productivity/okular.nix
../../home/programs/productivity/obsidian.nix
- ../../home/programs/social/element.nix
- ../../home/programs/social/webcord.nix
+ ../../home/programs/social/element.nix
+ # ../../home/programs/social/webcord.nix
+ # ../../home/programs/social/nixcord.nix
../../home/programs/social/zapzap.nix
+ ../../home/programs/social/teamspeak.nix
../../home/programs/web/firefox.nix
../../home/programs/web/chromium.nix
@@ -35,7 +38,7 @@
# Games
../../home/programs/games/itch.nix
-# ../../home/programs/games/steam.nix
+ # ../../home/programs/games/steam.nix
../../home/programs/games/lutris.nix
../../home/programs/games/opensource.nix
../../home/programs/games/airshipper.nix
@@ -44,12 +47,15 @@
];
catppuccin = {
- enable = true;
- flavor = "mocha";
+ enable = true;
+ flavor = "mocha";
};
programs.git = {
userName = "DerGrumpf";
userEmail = "p.keier@beyerstedt-it.de";
};
+
+ home.file.".config/hypr/hyprland.conf".enable = false;
+
}
diff --git a/users/phil/nixos.nix b/users/phil/nixos.nix
index 5508bce..1e5b2b7 100644
--- a/users/phil/nixos.nix
+++ b/users/phil/nixos.nix
@@ -1,4 +1,4 @@
-{ pkgs, ... } :
+{ pkgs, ... }:
{
##################################################################################################################
@@ -7,16 +7,16 @@
#
##################################################################################################################
- users.users.phil = {
- # authorizedKeys
- openssh.authorizedKeys.keys = [
- "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABgQCaLHfxVylghDMYR8t4QMUpeRRqXasNABQKBEy9MmhbUXCcWiPbPMSZH8FMHON34rm2OrXP1kY/8jQxqBJDA+SqpFR2AZ4Khk9iVMaq5GHxxpn2amZUjoBa+fB29WaiE1npV5JVJV3O0ylw6GtiCnpneE6fGx2MO1vOY/7zKrUX/OK7WfwkDpeEzZgV/j/md917HrzUVeZwdeTq3WCRO8Gew6R8Xs6FRjSiGuH0dq14D4Ow5Zf1cI1jx+JfD/5vGasw8HXPu1NdxsOE+6D7/22IKqGr+S74/lAoyyD5qqk0s05lw8UY/PXBLJaNLZu9Fwx0BqTHpJEvftpmvd9wUxgR3msx9VXtKNSrqivIbDgeU+3oGzzkrGZODl7FCp4XKGmbrX85Z6lKwEGgv5jez4MLZcmT86bxB7m1wIbqSbVtfhS+GI7yPTA/kLzzFa14Im/+LTj95pb8qs2ALMwTMP1j2f9A6D3RriOFihL+68qn+YbK58KuV1R0f+CQRmlfVbk= phil@web.cyperpunk.de"
- ];
- shell = pkgs.fish;
- };
+ users.users.phil = {
+ # authorizedKeys
+ openssh.authorizedKeys.keys = [
+ "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABgQCaLHfxVylghDMYR8t4QMUpeRRqXasNABQKBEy9MmhbUXCcWiPbPMSZH8FMHON34rm2OrXP1kY/8jQxqBJDA+SqpFR2AZ4Khk9iVMaq5GHxxpn2amZUjoBa+fB29WaiE1npV5JVJV3O0ylw6GtiCnpneE6fGx2MO1vOY/7zKrUX/OK7WfwkDpeEzZgV/j/md917HrzUVeZwdeTq3WCRO8Gew6R8Xs6FRjSiGuH0dq14D4Ow5Zf1cI1jx+JfD/5vGasw8HXPu1NdxsOE+6D7/22IKqGr+S74/lAoyyD5qqk0s05lw8UY/PXBLJaNLZu9Fwx0BqTHpJEvftpmvd9wUxgR3msx9VXtKNSrqivIbDgeU+3oGzzkrGZODl7FCp4XKGmbrX85Z6lKwEGgv5jez4MLZcmT86bxB7m1wIbqSbVtfhS+GI7yPTA/kLzzFa14Im/+LTj95pb8qs2ALMwTMP1j2f9A6D3RriOFihL+68qn+YbK58KuV1R0f+CQRmlfVbk= phil@web.cyperpunk.de"
+ ];
+ shell = pkgs.fish;
+ };
- # Fix underlying System POSIX bugs
- programs.bash = {
+ # Fix underlying System POSIX bugs
+ programs.bash = {
interactiveShellInit = ''
if [[ $(${pkgs.procps}/bin/ps --no-header --pid=$PPID --format=comm) != "fish" && -z ''${BASH_EXECUTION_STRING} ]]
then
@@ -24,16 +24,16 @@
exec ${pkgs.fish}/bin/fish $LOGIN_OPTION
fi
'';
- };
+ };
- programs.fish = {
- enable = true;
- interactiveShellInit = ''
- fish_config prompt choose disco
- function fish_greeting
- fastfetch
- end
- '';
- };
+ programs.fish = {
+ enable = true;
+ interactiveShellInit = ''
+ fish_config prompt choose disco
+ function fish_greeting
+ fastfetch
+ end
+ '';
+ };
}
diff --git a/wl-copy b/wl-copy
new file mode 100644
index 0000000..2893822
--- /dev/null
+++ b/wl-copy
@@ -0,0 +1,156 @@
+{
+ description = "NixOS configuration of DerGrumpf";
+
+ # the nixConfig here only affects the flake itself, not the system configuration!
+ nixConfig = {
+ extra-substituters = [
+ "https://nix-community.cachix.org"
+ ];
+ extra-trusted-public-keys = [
+ "nix-community.cachix.org-1:mB9FSh9qf2dCimDSUo8Zy7bkq5CX+/rkCWyvRCYg3Fs="
+ ];
+ };
+
+ inputs = {
+ nixpkgs.url = "github:nixos/nixpkgs/nixos-24.11";
+ hyprland.url = "github:hyprwm/Hyprland";
+ spicetify-nix.url = "github:Gerg-L/spicetify-nix";
+ nixcord.url = "github:kaylorben/nixcord";
+
+ /*
+ nixvim = {
+ url = "github:nix-community/nixvim/nixos-24.11";
+ inputs.nixpkgs.follows = "nixpkgs";
+ };
+ */
+
+ catppuccin.url = "github:catppuccin/nix";
+
+ home-manager.url = "github:nix-community/home-manager/release-24.11";
+ home-manager.inputs.nixpkgs.follows = "nixpkgs";
+
+ hyprland-plugins = {
+ url = "github:hyprwm/hyprland-plugins";
+ inputs.hyprland.follows = "hyprland";
+ };
+ };
+
+ outputs =
+ inputs@{
+ self,
+ nixpkgs,
+ home-manager,
+ catppuccin,
+ ...
+ }:
+ {
+ packages.x86_64-linux.default = self.nixosConfigurations.iso.config.system.build.isoImage;
+ nixosConfigurations = {
+ iso = nixpkgs.lib.nixosSystem {
+ system = "x86_64-linux";
+ modules = [
+ (
+ { pkgs, modulesPath, ... }:
+ {
+ imports = [ (modulesPath + "/installer/cd-dvd/installation-cd-minimal.nix") ];
+ environment.systemPackages = with pkgs; [
+ neovim
+ git
+ wget
+ curl
+ ];
+ nix.settings.experimental-features = [
+ "nix-command"
+ "flakes"
+ ];
+ }
+ )
+ ];
+ };
+
+ m920q =
+ let
+ username = "phil";
+ specialArgs = {
+ inherit username;
+ inherit inputs;
+ };
+ in
+ nixpkgs.lib.nixosSystem {
+ inherit specialArgs;
+ system = "x86_64-linux";
+
+ modules = [
+ ./hosts/m920q
+ ./users/${username}/nixos.nix
+
+ home-manager.nixosModules.home-manager
+ {
+ home-manager.useGlobalPkgs = true;
+ home-manager.useUserPackages = true;
+
+ home-manager.backupFileExtension = "backup";
+ home-manager.extraSpecialArgs = inputs // specialArgs;
+ home-manager.users.${username} = import ./users/${username}/home.nix;
+ home-manager.sharedModules = [
+ inputs.nixcord.homeModules.nixcord
+ ];
+
+ nix.settings.experimental-features = [
+ "nix-command"
+ "flakes"
+ ];
+ }
+ ];
+ };
+
+ qemu =
+ let
+ username = "phil";
+ specialArgs = { inherit username; };
+ in
+ nixpkgs.lib.nixosSystem {
+ inherit specialArgs;
+ system = "x86_64-linux";
+
+ modules = [
+ ./hosts/qemu
+ ./users/${username}/nixos.nix
+
+ home-manager.nixosModules.home-manager
+ {
+ home-manager.useGlobalPkgs = true;
+ home-manager.useUserPackages = true;
+
+ home-manager.extraSpecialArgs = inputs // specialArgs;
+ home-manager.users.${username} = import ./users/${username}/home.nix;
+ }
+ ];
+ };
+
+ hp15-n028sg =
+ let
+ username = "phil";
+ specialArgs = { inherit username; };
+ in
+ nixpkgs.lib.nixosSystem {
+ inherit specialArgs;
+ system = "x86_64-linux";
+
+ modules = [
+ ./hosts/hp15-n028sg
+ ./users/${username}/nixos.nix
+
+ home-manager.nixosModules.home-manager
+ {
+ home-manager.useGlobalPkgs = true;
+ home-manager.useUserPackages = true;
+
+ home-manager.extraSpecialArgs = inputs // specialArgs;
+ home-manager.users.${username} = import ./users/${username}/home.nix;
+ }
+ ];
+ };
+ };
+ };
+}