(desktop) Gen 494: reformatted several files using alejandra

This commit is contained in:
pagedMov
2024-10-15 20:16:32 -04:00
parent 1441353258
commit bd1add14bb
98 changed files with 6440 additions and 3256 deletions

4
flake.lock generated
View File

@@ -870,7 +870,7 @@
},
"locked": {
"lastModified": 1,
"narHash": "sha256-wk+pdZUCu13qvhHBrycwrvGnRUaf6dbLchr3yF96C1c=",
"narHash": "sha256-+aYqfRtAoaA4wqPfy4j2biNTVj2TtEmmHXDKOzNoU6g=",
"path": "./pkgs/nixvim",
"type": "path"
},
@@ -1016,7 +1016,7 @@
},
"locked": {
"lastModified": 1,
"narHash": "sha256-S3crmqg/CDKf+QTwnZUR6udyjsvqS0P0y56wGuJmOno=",
"narHash": "sha256-G8k9Ue2ZggJXD17cDXQubY+b4utp2YLnSpQWe06mR4E=",
"path": "./pkgs/toilet",
"type": "path"
},

144
flake.nix
View File

@@ -1,77 +1,83 @@
{
description = "pagedMov's NixOS configuration";
description = "pagedMov's NixOS configuration";
inputs = {
nixpkgs.url = "github:nixos/nixpkgs/nixos-unstable";
nur.url = "github:nix-community/NUR";
home-manager = {
url = "github:nix-community/home-manager";
inputs.nixpkgs.follows = "nixpkgs";
};
inputs = {
nixpkgs.url = "github:nixos/nixpkgs/nixos-unstable";
nur.url = "github:nix-community/NUR";
home-manager = {
url = "github:nix-community/home-manager";
inputs.nixpkgs.follows = "nixpkgs";
};
hypr-contrib.url = "github:hyprwm/contrib";
hyprpicker.url = "github:hyprwm/hyprpicker";
hyprland = {
type = "git";
url = "https://github.com/hyprwm/Hyprland";
submodules = true;
};
hypr-contrib.url = "github:hyprwm/contrib";
hyprpicker.url = "github:hyprwm/hyprpicker";
hyprland = {
type = "git";
url = "https://github.com/hyprwm/Hyprland";
submodules = true;
};
catppuccin-bat = {
url = "github:catppuccin/bat";
flake = false;
};
catppuccin-cava = {
url = "github:catppuccin/cava";
flake = false;
};
catppuccin-starship = {
url = "github:catppuccin/starship";
flake = false;
};
catppuccin-yazi = {
url = "github:catppuccin/yazi";
flake = false;
};
spicetify-nix = {
url = "github:gerg-l/spicetify-nix";
inputs.nixpkgs.follows = "nixpkgs";
};
catppuccin-bat = {
url = "github:catppuccin/bat";
flake = false;
};
catppuccin-cava = {
url = "github:catppuccin/cava";
flake = false;
};
catppuccin-starship = {
url = "github:catppuccin/starship";
flake = false;
};
catppuccin-yazi = {
url = "github:catppuccin/yazi";
flake = false;
};
spicetify-nix = {
url = "github:gerg-l/spicetify-nix";
inputs.nixpkgs.follows = "nixpkgs";
};
#glasshouse-desktop dots
nvim.url = "path:./pkgs/nixvim";
toilet.url = "path:./pkgs/toilet";
};
#glasshouse-desktop dots
nvim.url = "path:./pkgs/nixvim";
toilet.url = "path:./pkgs/toilet";
};
outputs = { nixpkgs, nur, home-manager, self, nvim, toilet, ... }@inputs:
let
system = "x86_64-linux";
username = "pagedmov";
in
{
nixosConfigurations = {
desktop = nixpkgs.lib.nixosSystem {
specialArgs = {
host = "desktop";
inherit self inputs username;
};
inherit system;
modules = [
./hosts/desktop
nur.nixosModules.nur
];
};
outputs = {
nixpkgs,
nur,
home-manager,
self,
nvim,
toilet,
...
} @ inputs: let
system = "x86_64-linux";
username = "pagedmov";
in {
nixosConfigurations = {
desktop = nixpkgs.lib.nixosSystem {
specialArgs = {
host = "desktop";
inherit self inputs username;
};
inherit system;
modules = [
./hosts/desktop
nur.nixosModules.nur
];
};
laptop = nixpkgs.lib.nixosSystem {
specialArgs = {
host = "laptop";
inherit self inputs username;
};
modules = [
./hosts/laptop
nur.nixosModules.nur
];
};
};
};
laptop = nixpkgs.lib.nixosSystem {
specialArgs = {
host = "laptop";
inherit self inputs username;
};
modules = [
./hosts/laptop
nur.nixosModules.nur
];
};
};
};
}

View File

@@ -1,12 +1,16 @@
{ host, inputs, username, nur, pkgs, self, ... }:
{
imports = [
./../../modules/sys
./hardware.nix
./settings.nix
./steam.nix
];
host,
inputs,
username,
nur,
pkgs,
self,
...
}: {
imports = [
./../../modules/sys
./hardware.nix
./settings.nix
./steam.nix
];
}

View File

@@ -1,58 +1,62 @@
# 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, modulesPath, username, ... }:
{
imports = [ (modulesPath + "/installer/scan/not-detected.nix") ];
config,
lib,
modulesPath,
username,
...
}: {
imports = [(modulesPath + "/installer/scan/not-detected.nix")];
boot.initrd.availableKernelModules = [ "nvme" "xhci_pci" "ahci" "usbhid" "usb_storage" "uas" "sd_mod" ];
boot.initrd.kernelModules = [ ];
boot.kernelModules = [ "kvm-amd" ];
boot.extraModulePackages = [ ];
boot.initrd.availableKernelModules = ["nvme" "xhci_pci" "ahci" "usbhid" "usb_storage" "uas" "sd_mod"];
boot.initrd.kernelModules = [];
boot.kernelModules = ["kvm-amd"];
boot.extraModulePackages = [];
fileSystems."/" =
{ device = "/dev/disk/by-uuid/a687e4e2-8665-43f1-9d62-3e3f21423579";
fsType = "ext4";
};
fileSystems."/" = {
device = "/dev/disk/by-uuid/a687e4e2-8665-43f1-9d62-3e3f21423579";
fsType = "ext4";
};
fileSystems."/boot" =
{ device = "/dev/disk/by-uuid/6EAD-2C48";
fsType = "vfat";
options = [ "fmask=0022" "dmask=0022" ];
};
fileSystems."/boot" = {
device = "/dev/disk/by-uuid/6EAD-2C48";
fsType = "vfat";
options = ["fmask=0022" "dmask=0022"];
};
fileSystems."/home" =
{ device = "/dev/nvme0n1p5";
fsType = "ext4";
};
fileSystems."/home" = {
device = "/dev/nvme0n1p5";
fsType = "ext4";
};
fileSystems."/home/${username}/steamlib" =
{ device = "/dev/nvme0n1p1";
fsType = "ext4";
};
fileSystems."/home/${username}/steamlib" = {
device = "/dev/nvme0n1p1";
fsType = "ext4";
};
swapDevices = [ ];
swapDevices = [];
# Enables DHCP on each ethernet and wireless interface. In case of scripted networking
# (the default) this is the recommended approach. When using systemd-networkd it's
# still possible to use this option, but it's recommended to use it in conjunction
# with explicit per-interface declarations with `networking.interfaces.<interface>.useDHCP`.
networking.useDHCP = lib.mkDefault true;
# networking.interfaces.enp14s0.useDHCP = lib.mkDefault true;
# networking.interfaces.wlp15s0.useDHCP = lib.mkDefault true;
# Enables DHCP on each ethernet and wireless interface. In case of scripted networking
# (the default) this is the recommended approach. When using systemd-networkd it's
# still possible to use this option, but it's recommended to use it in conjunction
# with explicit per-interface declarations with `networking.interfaces.<interface>.useDHCP`.
networking.useDHCP = lib.mkDefault true;
# networking.interfaces.enp14s0.useDHCP = lib.mkDefault true;
# networking.interfaces.wlp15s0.useDHCP = lib.mkDefault true;
nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux";
hardware = {
cpu.amd.updateMicrocode = lib.mkDefault config.hardware.enableRedistributableFirmware;
keyboard.uhk.enable = true;
amdgpu.amdvlk = {
enable = false;
support32Bit.enable = true;
};
bluetooth = {
enable = true;
powerOnBoot = true;
};
};
nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux";
hardware = {
cpu.amd.updateMicrocode = lib.mkDefault config.hardware.enableRedistributableFirmware;
keyboard.uhk.enable = true;
amdgpu.amdvlk = {
enable = false;
support32Bit.enable = true;
};
bluetooth = {
enable = true;
powerOnBoot = true;
};
};
}

View File

@@ -1,32 +1,30 @@
{ pkgs, ... }:
{pkgs, ...}: {
system.stateVersion = "24.05";
nixpkgs.config.allowUnfree = true;
nix = {
settings = {
auto-optimise-store = true;
experimental-features = ["nix-command" "flakes"];
substituters = ["https://nix-gaming.cachix.org"];
};
gc = {
automatic = true;
dates = "weekly";
options = "--delete-older-than 7d";
};
};
{
system.stateVersion = "24.05";
nixpkgs.config.allowUnfree = true;
nix = {
settings = {
auto-optimise-store = true;
experimental-features = [ "nix-command" "flakes" ];
substituters = [ "https://nix-gaming.cachix.org" ];
};
gc = {
automatic = true;
dates = "weekly";
options = "--delete-older-than 7d";
};
};
environment = {
variables = {
XCURSOR_SIZE = "24";
PATH = "${pkgs.clang-tools}/bin:$PATH";
};
shells = with pkgs; [
zsh
bash
];
};
environment = {
variables = {
XCURSOR_SIZE = "24";
PATH = "${pkgs.clang-tools}/bin:$PATH";
};
shells = with pkgs; [
zsh
bash
];
};
time.timeZone = "America/New_York";
i18n.defaultLocale = "en_US.UTF-8";
time.timeZone = "America/New_York";
i18n.defaultLocale = "en_US.UTF-8";
}

View File

@@ -1,8 +1,6 @@
{ ... }:
{
programs.steam = {
enable = true;
remotePlay.openFirewall = true;
};
{...}: {
programs.steam = {
enable = true;
remotePlay.openFirewall = true;
};
}

View File

@@ -1,13 +1,15 @@
{ config, pkgs, ... }:
{
boot = {
kernelModules = ["acpi_call"];
extraModulePackages = with config.boot.kernelPackages;
[
acpi_call
cpupower
]
++ [pkgs.cpupower-gui];
};
config,
pkgs,
...
}: {
boot = {
kernelModules = ["acpi_call"];
extraModulePackages = with config.boot.kernelPackages;
[
acpi_call
cpupower
]
++ [pkgs.cpupower-gui];
};
}

View File

@@ -1,12 +1,18 @@
{ host, inputs, pkgs, config, self, username, ... }:
{
imports = [
./../../modules/sys
./hardware.nix
./boot.nix
./services.nix
./environment.nix
./settings.nix
];
host,
inputs,
pkgs,
config,
self,
username,
...
}: {
imports = [
./../../modules/sys
./hardware.nix
./boot.nix
./services.nix
./environment.nix
./settings.nix
];
}

View File

@@ -1,20 +1,18 @@
{ pkgs, ... }:
{
environment = {
variables = {
XCURSOR_SIZE = "24";
PATH = "${pkgs.clang-tools}/bin:$PATH";
};
shells = with pkgs; [
zsh
bash
];
systemPackages = with pkgs; [
acpi
brightnessctl
cpupower-gui
powertop
];
};
{pkgs, ...}: {
environment = {
variables = {
XCURSOR_SIZE = "24";
PATH = "${pkgs.clang-tools}/bin:$PATH";
};
shells = with pkgs; [
zsh
bash
];
systemPackages = with pkgs; [
acpi
brightnessctl
cpupower-gui
powertop
];
};
}

View File

@@ -1,30 +1,34 @@
# 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, ... }:
{
imports =
[ (modulesPath + "/installer/scan/not-detected.nix")
];
config,
lib,
pkgs,
modulesPath,
...
}: {
imports = [
(modulesPath + "/installer/scan/not-detected.nix")
];
boot.initrd.availableKernelModules = [ "xhci_pci" "ehci_pci" "ahci" "sd_mod" "rtsx_pci_sdmmc" ];
boot.initrd.kernelModules = [ ];
boot.kernelModules = [ "kvm-intel" ];
boot.extraModulePackages = [ ];
boot.initrd.availableKernelModules = ["xhci_pci" "ehci_pci" "ahci" "sd_mod" "rtsx_pci_sdmmc"];
boot.initrd.kernelModules = [];
boot.kernelModules = ["kvm-intel"];
boot.extraModulePackages = [];
fileSystems."/" =
{ device = "/dev/disk/by-uuid/334f742b-460f-43f8-b819-33086adfa9fb";
fsType = "ext4";
};
fileSystems."/" = {
device = "/dev/disk/by-uuid/334f742b-460f-43f8-b819-33086adfa9fb";
fsType = "ext4";
};
fileSystems."/boot" =
{ device = "/dev/disk/by-uuid/ECD9-F43B";
fsType = "vfat";
options = [ "fmask=0022" "dmask=0022" ];
};
fileSystems."/boot" = {
device = "/dev/disk/by-uuid/ECD9-F43B";
fsType = "vfat";
options = ["fmask=0022" "dmask=0022"];
};
swapDevices = [ ];
swapDevices = [];
# Enables DHCP on each ethernet and wireless interface. In case of scripted networking
# (the default) this is the recommended approach. When using systemd-networkd it's

View File

@@ -1,50 +1,47 @@
{ ... }:
{...}: {
services = {
keyd = {
enable = true;
keyboards.default = {
ids = ["*"];
settings.main = {
capslock = "esc";
};
};
};
{
services = {
power-profiles-daemon.enable = true;
keyd = {
enable = true;
keyboards.default = {
ids = [ "*" ];
settings.main = {
capslock = "esc";
};
};
};
upower = {
enable = true;
percentageLow = 20;
percentageCritical = 5;
percentageAction = 3;
criticalPowerAction = "PowerOff";
};
power-profiles-daemon.enable = true;
tlp.settings = {
CPU_ENERGY_PERF_POLICY_ON_AC = "power";
CPU_ENERGY_PERF_POLICY_ON_BAT = "power";
upower = {
enable = true;
percentageLow = 20;
percentageCritical = 5;
percentageAction = 3;
criticalPowerAction = "PowerOff";
};
CPU_BOOST_ON_AC = 1;
CPU_BOOST_ON_BAT = 1;
tlp.settings = {
CPU_ENERGY_PERF_POLICY_ON_AC = "power";
CPU_ENERGY_PERF_POLICY_ON_BAT = "power";
CPU_HWP_DYN_BOOST_ON_AC = 1;
CPU_HWP_DYN_BOOST_ON_BAT = 1;
CPU_BOOST_ON_AC = 1;
CPU_BOOST_ON_BAT = 1;
PLATFORM_PROFILE_ON_AC = "performance";
PLATFORM_PROFILE_ON_BAT = "performance";
CPU_HWP_DYN_BOOST_ON_AC = 1;
CPU_HWP_DYN_BOOST_ON_BAT = 1;
INTEL_GPU_MIN_FREQ_ON_AC = 500;
INTEL_GPU_MIN_FREQ_ON_BAT = 500;
# INTEL_GPU_MAX_FREQ_ON_AC=0;
# INTEL_GPU_MAX_FREQ_ON_BAT=0;
# INTEL_GPU_BOOST_FREQ_ON_AC=0;
# INTEL_GPU_BOOST_FREQ_ON_BAT=0;
PLATFORM_PROFILE_ON_AC = "performance";
PLATFORM_PROFILE_ON_BAT = "performance";
INTEL_GPU_MIN_FREQ_ON_AC=500;
INTEL_GPU_MIN_FREQ_ON_BAT=500;
# INTEL_GPU_MAX_FREQ_ON_AC=0;
# INTEL_GPU_MAX_FREQ_ON_BAT=0;
# INTEL_GPU_BOOST_FREQ_ON_AC=0;
# INTEL_GPU_BOOST_FREQ_ON_BAT=0;
PCIE_ASPM_ON_AC = "default";
PCIE_ASPM_ON_BAT = "powersupersave";
};
};
PCIE_ASPM_ON_AC = "default";
PCIE_ASPM_ON_BAT = "powersupersave";
};
};
}

View File

@@ -1,25 +1,21 @@
{ ... }:
{...}: {
system.stateVersion = "24.05";
nixpkgs.config.allowUnfree = true;
nix = {
settings = {
auto-optimise-store = true;
experimental-features = ["nix-command" "flakes"];
substituters = ["https://nix-gaming.cachix.org"];
};
gc = {
automatic = true;
dates = "weekly";
options = "--delete-older-than 7d";
};
};
{
system.stateVersion = "24.05";
nixpkgs.config.allowUnfree = true;
nix = {
settings = {
auto-optimise-store = true;
experimental-features = [ "nix-command" "flakes" ];
substituters = [ "https://nix-gaming.cachix.org" ];
};
gc = {
automatic = true;
dates = "weekly";
options = "--delete-older-than 7d";
};
};
time.timeZone = "America/New_York";
i18n.defaultLocale = "en_US.UTF-8";
time.timeZone = "America/New_York";
i18n.defaultLocale = "en_US.UTF-8";
powerManagement.cpuFreqGovernor = "performance";
powerManagement.cpuFreqGovernor = "performance";
}

View File

@@ -1,29 +1,33 @@
{ host, nur, self, inputs, username, config, home-manager, ... }:
{
imports =
[ (import ./programs/btop.nix) ]
++ [ (import ./programs/yazi.nix) ]
++ [ (import ./programs/kitty.nix) ]
++ [ (import ./programs/fuzzel.nix) ]
++ [ (import ./programs/eza.nix) ]
++ [ (import ./programs/cava.nix) ]
++ [ (import ./programs/bat.nix) ]
++ [ (import ./programs/fzf.nix) ]
++ [ (import ./programs/git.nix) ]
++ [ (import ./programs/password-store.nix) ]
++ [ (import ./programs/autojump.nix) ]
++ [ (import ./environment/gtk.nix) ]
++ [ (import ./environment/spicetify.nix) ]
++ [ (import ./environment/starship.nix) ]
++ [ (import ./environment/desktop_userpkgs.nix) ]
++ [ (import ./environment/zshell.nix) ]
++ [ (import ./firefox/firefox.nix) ]
++ [ (import ./hyprland) ]
++ [ (import ./scripts ) ]
++ [ (import ./swaync/swaync.nix) ]
++ [ (import ./waybar) ];
host,
nur,
self,
inputs,
username,
config,
home-manager,
...
}: {
imports =
[(import ./programs/btop.nix)]
++ [(import ./programs/yazi.nix)]
++ [(import ./programs/kitty.nix)]
++ [(import ./programs/fuzzel.nix)]
++ [(import ./programs/eza.nix)]
++ [(import ./programs/cava.nix)]
++ [(import ./programs/bat.nix)]
++ [(import ./programs/fzf.nix)]
++ [(import ./programs/git.nix)]
++ [(import ./programs/password-store.nix)]
++ [(import ./programs/autojump.nix)]
++ [(import ./environment/gtk.nix)]
++ [(import ./environment/spicetify.nix)]
++ [(import ./environment/starship.nix)]
++ [(import ./environment/desktop_userpkgs.nix)]
++ [(import ./environment/zshell.nix)]
++ [(import ./firefox/firefox.nix)]
++ [(import ./hyprland)]
++ [(import ./scripts)]
++ [(import ./swaync/swaync.nix)]
++ [(import ./waybar)];
}

View File

@@ -1,37 +1,39 @@
{ pkgs, inputs, ... }:
let
nvim = inputs.nvim.packages."x86_64-linux".default;
toilet = inputs.toilet.packages."x86_64-linux".default;
in
{
home.packages = with pkgs; [
gtk3
uhk-agent
sqlite
zathura
gimp
imagemagick
yt-dlp
vlc
lolcat
speedtest-cli
vesktop
qbittorrent
obs-studio
neovide
zsh
zsh-syntax-highlighting
zsh-history-substring-search
zsh-autosuggestions
audacity
snes9x-gtk
rustup
libreoffice
handbrake
gtrash
ripgrep
nvim
toilet
python3
];
pkgs,
inputs,
...
}: let
nvim = inputs.nvim.packages."x86_64-linux".default;
toilet = inputs.toilet.packages."x86_64-linux".default;
in {
home.packages = with pkgs; [
gtk3
uhk-agent
sqlite
zathura
gimp
imagemagick
yt-dlp
vlc
lolcat
speedtest-cli
vesktop
qbittorrent
obs-studio
neovide
zsh
zsh-syntax-highlighting
zsh-history-substring-search
zsh-autosuggestions
audacity
snes9x-gtk
rustup
libreoffice
handbrake
gtrash
ripgrep
nvim
toilet
python3
];
}

View File

@@ -1,10 +1,12 @@
{ pkgs, config, ... }:
{
pkgs,
config,
...
}: {
fonts.fontconfig.enable = true;
home.packages = [
pkgs.nerdfonts
(pkgs.nerdfonts.override { fonts = [ "JetBrainsMono" "Noto" ]; })
(pkgs.nerdfonts.override {fonts = ["JetBrainsMono" "Noto"];})
pkgs.twemoji-color-font
pkgs.noto-fonts-emoji
];

View File

@@ -1,34 +1,36 @@
{ pkgs, inputs, ... }:
let
nvim = inputs.nvim.packages."x86_64-linux".default;
toilet = inputs.toilet.packages."x86_64-linux".default;
in
{
home.packages = with pkgs; [
gtk3
uhk-agent
sqlite
starship
zathura
imagemagick
yt-dlp
vlc
speedtest-cli
vesktop
obs-studio
neovide
chromium
zsh
zsh-syntax-highlighting
zsh-history-substring-search
zsh-autosuggestions
rustup
libreoffice
handbrake
gtrash
ripgrep
nvim
toilet
python3
];
pkgs,
inputs,
...
}: let
nvim = inputs.nvim.packages."x86_64-linux".default;
toilet = inputs.toilet.packages."x86_64-linux".default;
in {
home.packages = with pkgs; [
gtk3
uhk-agent
sqlite
starship
zathura
imagemagick
yt-dlp
vlc
speedtest-cli
vesktop
obs-studio
neovide
chromium
zsh
zsh-syntax-highlighting
zsh-history-substring-search
zsh-autosuggestions
rustup
libreoffice
handbrake
gtrash
ripgrep
nvim
toilet
python3
];
}

View File

@@ -1,9 +1,11 @@
{ pkgs, lib, inputs, ...}:
let
spicePkgs = inputs.spicetify-nix.legacyPackages.${pkgs.system};
in
{
pkgs,
lib,
inputs,
...
}: let
spicePkgs = inputs.spicetify-nix.legacyPackages.${pkgs.system};
in {
nixpkgs.config.allowUnfreePredicate = pkg:
builtins.elem (lib.getName pkg) [
"spotify"
@@ -13,12 +15,12 @@ in
programs.spicetify = {
enable = true;
enabledExtensions = with spicePkgs.extensions; [
adblock
hidePodcasts
shuffle # shuffle+ (special characters are sanitized out of extension names)
];
theme = spicePkgs.themes.catppuccin;
colorScheme = "mocha";
enabledExtensions = with spicePkgs.extensions; [
adblock
hidePodcasts
shuffle # shuffle+ (special characters are sanitized out of extension names)
];
theme = spicePkgs.themes.catppuccin;
colorScheme = "mocha";
};
}

View File

@@ -1,61 +1,63 @@
{ lib, inputs, ... }:
{
programs.starship = {
enable = true;
enableZshIntegration = false;
settings = {
add_newline = true;
right_format = "($custom)";
lib,
inputs,
...
}: {
programs.starship = {
enable = true;
enableZshIntegration = false;
settings =
{
add_newline = true;
right_format = "($custom)";
format = lib.concatStrings [
"($username)(bold white)($cmd_duration)($character)"
"($git_branch)($git_status)($rust)($nix-shell)"
"($directory)"
"$line_break[ > ](bold #89b4fa)"
];
format = lib.concatStrings [
"($username)(bold white)($cmd_duration)($character)"
"($git_branch)($git_status)($rust)($nix-shell)"
"($directory)"
"$line_break[ > ](bold #89b4fa)"
];
username = {
show_always = true;
style_user = "bold white";
format = "[$user]($style)";
};
directory = {
format = "\n[$path](bold cyan)[/](bold green) ";
style = "bold #b4befe";
};
username = {
show_always = true;
style_user = "bold white";
format = "[$user]($style)";
};
directory = {
format = "\n[$path](bold cyan)[/](bold green) ";
style = "bold #b4befe";
};
character = {
success_symbol = "[ -> ](bold green)";
error_symbol = "[ -> ](bold red)";
# error_symbol = "[ ](bold #89dceb)[ ✗](bold red)";
};
character = {
success_symbol = "[ -> ](bold green)";
error_symbol = "[ -> ](bold red)";
# error_symbol = "[ ](bold #89dceb)[ ✗](bold red)";
};
cmd_duration = {
format = "[ 󰔛 $duration]($style)";
disabled = false;
style = "bg:none fg:#f9e2af";
show_notifications = false;
min_time_to_notify = 60000;
};
cmd_duration = {
format = "[ 󰔛 $duration]($style)";
disabled = false;
style = "bg:none fg:#f9e2af";
show_notifications = false;
min_time_to_notify = 60000;
};
git_branch = {
format = "\non [$symbol$branch](bold purple)";
symbol = " ";
truncation_length = 15;
style = "bold purple";
};
git_branch = {
format = "\non [$symbol$branch](bold purple)";
symbol = " ";
truncation_length = 15;
style = "bold purple";
};
custom.shellver = {
command = "zsh --version";
when = ''test $SHELL = "/run/current-system/sw/bin/zsh"'';
symbol = "";
style = "bold magenta";
};
custom.shellver = {
command = "zsh --version";
when = ''test $SHELL = "/run/current-system/sw/bin/zsh"'';
symbol = "";
style = "bold magenta";
};
palette = "catppuccin_mocha";
} // builtins.fromTOML (builtins.readFile "${inputs.catppuccin-starship}/themes/mocha.toml");
};
palette = "catppuccin_mocha";
}
// builtins.fromTOML (builtins.readFile "${inputs.catppuccin-starship}/themes/mocha.toml");
};
}

View File

@@ -1,138 +1,134 @@
{ self, ... }:
{self, ...}: {
programs.zoxide = {
enable = true;
enableZshIntegration = true;
};
programs.zsh = {
enable = true;
{
programs.zoxide = {
enable = true;
enableZshIntegration = true;
};
programs.zsh = {
enable = true;
sessionVariables = {
SOUNDS_ENABLED = "1";
EDITOR = "/nixbin/nvim";
SUDO_EDITOR = "/nixbin/nvim";
VISUAL = "/nixbin/nvim";
LANG = "en_US.UTF-8";
BROWSER = "/nixbin/firefox";
NVIM = "${self}/nixvim/config/";
HYPRCONF = "${self}/hyprland/";
SYSCONF = "${self}/glasshouse-desktop/sys";
};
sessionVariables = {
SOUNDS_ENABLED = "1";
EDITOR = "/nixbin/nvim";
SUDO_EDITOR = "/nixbin/nvim";
VISUAL = "/nixbin/nvim";
LANG = "en_US.UTF-8";
BROWSER = "/nixbin/firefox";
NVIM = "${self}/nixvim/config/";
HYPRCONF = "${self}/hyprland/";
SYSCONF = "${self}/glasshouse-desktop/sys";
};
oh-my-zsh = {
enable = true;
plugins = ["git" "fzf"];
};
oh-my-zsh = {
enable = true;
plugins = [ "git" "fzf" ];
};
enableCompletion = true;
history = {
path = "$HOME/.zsh_history";
save = 10000;
size = 10000;
share = true;
};
enableCompletion = true;
history = {
path = "$HOME/.zsh_history";
save = 10000;
size = 10000;
share = true;
};
autosuggestion = {
enable = true;
highlight = "fg=#4C566A,underline";
};
autosuggestion = {
enable = true;
highlight = "fg=#4C566A,underline";
};
shellAliases = {
grep = "grep --color=auto";
yazi = "y";
vi = "nvim";
mv = "mv -v";
cp = "cp -vr";
gt = "gtrash";
gtp = "gtrash put";
grub-update = "sudo grub-mkconfig -o /boot/grub/grub.cfg";
sr = "source ~/.zshrc";
".." = "cd ..";
rm = "echo 'use \"gtp\" instead'";
psg = "ps aux | grep -v grep | grep -i -e VSZ -e";
mkdir = "mkdir -p";
pk = "pkill -9 -f";
zrc = "nvim $HOME/dots/zshell.nix";
svcu = "systemctl --user";
svc = "sudo systemctl";
hyprconf = "nvim $HOME/dots/hyprland/config.nix";
nixconf = "nvim $HOME/sysflakes/glasshouse-desktop/sys";
hmconf = "nvim $HOME/sysflakes/glasshouse-desktop/home";
viflake = "nvim flake.nix";
nvimcfg = "nvim $HOME/dots/nixvim/config";
};
initExtra = ''
shellAliases = {
grep = "grep --color=auto";
yazi = "y";
vi = "nvim";
mv = "mv -v";
cp = "cp -vr";
gt = "gtrash";
gtp = "gtrash put";
grub-update = "sudo grub-mkconfig -o /boot/grub/grub.cfg";
sr = "source ~/.zshrc";
".." = "cd ..";
rm = "echo 'use \"gtp\" instead'";
psg = "ps aux | grep -v grep | grep -i -e VSZ -e" ;
mkdir = "mkdir -p";
pk = "pkill -9 -f";
zrc = "nvim $HOME/dots/zshell.nix";
svcu = "systemctl --user";
svc = "sudo systemctl";
hyprconf = "nvim $HOME/dots/hyprland/config.nix";
nixconf = "nvim $HOME/sysflakes/glasshouse-desktop/sys";
hmconf = "nvim $HOME/sysflakes/glasshouse-desktop/home";
viflake = "nvim flake.nix";
nvimcfg = "nvim $HOME/dots/nixvim/config";
};
initExtra = ''
unalias ls
ls() {
eza -1 --group-directories-first --icons "$@"
scheck && runbg aplay ${self}/media/sound/ls.wav
}
unalias ls
ls() {
eza -1 --group-directories-first --icons "$@"
scheck && runbg aplay ${self}/media/sound/ls.wav
}
y() {
local tmp="$(mktemp -t "yazi-cwd.XXXXXX")"
yazi "$@" --cwd-file="$tmp"
if cwd="$(command cat -- "$tmp")" && [ -n "$cwd" ] && [ "$cwd" != "$PWD" ]; then
builtin cd -- "$cwd"
fi
rm -f -- "$tmp"
}
y() {
local tmp="$(mktemp -t "yazi-cwd.XXXXXX")"
yazi "$@" --cwd-file="$tmp"
if cwd="$(command cat -- "$tmp")" && [ -n "$cwd" ] && [ "$cwd" != "$PWD" ]; then
builtin cd -- "$cwd"
fi
rm -f -- "$tmp"
}
cd() {
export SOUNDS_ENABLED=0
eza -1 --group-directories-first --icons "$@"
builtin cd "$@" || exit
export SOUNDS_ENABLED=1
scheck && runbg aplay ${self}/media/sound/cd.wav
}
if [ ! -e $HOME/.zsh_history ]; then
touch $HOME/.zsh_history
chmod 600 $HOME/.zsh_history
fi
setopt APPEND_HISTORY # Append history to the history file (don't overwrite)
setopt INC_APPEND_HISTORY # Append to the history file incrementally
setopt SHARE_HISTORY # Share history between all zsh sessions
cd() {
export SOUNDS_ENABLED=0
eza -1 --group-directories-first --icons "$@"
builtin cd "$@" || exit
export SOUNDS_ENABLED=1
scheck && runbg aplay ${self}/media/sound/cd.wav
}
if [ ! -e $HOME/.zsh_history ]; then
touch $HOME/.zsh_history
chmod 600 $HOME/.zsh_history
fi
setopt APPEND_HISTORY # Append history to the history file (don't overwrite)
setopt INC_APPEND_HISTORY # Append to the history file incrementally
setopt SHARE_HISTORY # Share history between all zsh sessions
sessionVariables = {
setopt CORRECT
setopt NO_NOMATCH
setopt LIST_PACKED
setopt ALWAYS_TO_END
setopt GLOB_COMPLETE
setopt COMPLETE_ALIASES
setopt COMPLETE_IN_WORD
setopt AUTO_CD
setopt AUTO_CONTINUE
setopt LONG_LIST_JOBS
setopt HIST_VERIFY
setopt SHARE_HISTORY
setopt HIST_IGNORE_SPACE
setopt HIST_SAVE_NO_DUPS
setopt HIST_IGNORE_ALL_DUPS
setopt EXTENDED_GLOB
setopt TRANSIENT_RPROMPT
setopt INTERACTIVE_COMMENTS
sessionVariables = {
setopt CORRECT
setopt NO_NOMATCH
setopt LIST_PACKED
setopt ALWAYS_TO_END
setopt GLOB_COMPLETE
setopt COMPLETE_ALIASES
setopt COMPLETE_IN_WORD
setopt AUTO_CD
setopt AUTO_CONTINUE
setopt LONG_LIST_JOBS
setopt HIST_VERIFY
setopt SHARE_HISTORY
setopt HIST_IGNORE_SPACE
setopt HIST_SAVE_NO_DUPS
setopt HIST_IGNORE_ALL_DUPS
setopt EXTENDED_GLOB
setopt TRANSIENT_RPROMPT
setopt INTERACTIVE_COMMENTS
autoload -U compinit # completion
autoload -U terminfo # terminfo keys
zmodload -i zsh/complist # menu completion
autoload -U promptinit # prompt
autoload -U compinit # completion
autoload -U terminfo # terminfo keys
zmodload -i zsh/complist # menu completion
autoload -U promptinit # prompt
autoload -U up-line-or-beginning-search; zle -N up-line-or-beginning-search
autoload -U down-line-or-beginning-search; zle -N down-line-or-beginning-search
bindkey -v
type starship_zle-keymap-select >/dev/null || \
{
eval "$(starship init zsh)"
}
unalias ls
clear
splash
scheck && runbg aplay ${self}/media/sound/sh-source.wav
'';
};
autoload -U up-line-or-beginning-search; zle -N up-line-or-beginning-search
autoload -U down-line-or-beginning-search; zle -N down-line-or-beginning-search
bindkey -v
type starship_zle-keymap-select >/dev/null || \
{
eval "$(starship init zsh)"
}
unalias ls
clear
splash
scheck && runbg aplay ${self}/media/sound/sh-source.wav
'';
};
}

View File

@@ -1,92 +1,102 @@
{ nur, username, self, ... }:
{
programs.firefox = {
enable = true;
policies = {
DisableTelemetry = true;
DisableFirefoxStudies = true;
EnableTrackingProtection = {
Value= true;
Locked = true;
Cryptomining = true;
Fingerprinting = true;
};
DisablePocket = true;
DisableFirefoxAccounts = true;
DisableAccounts = true;
DisableFirefoxScreenshots = true;
OverrideFirstRunPage = "";
OverridePostUpdatePage = "";
DontCheckDefaultBrowser = true;
DisplayBookmarksToolbar = "always"; # alternatives: "always" or "newtab"
DisplayMenuBar = "default-off"; # alternatives: "always", "never" or "default-on"
SearchBar = "unified"; # alternative: "separate" isDefault = true;
};
profiles.${username} = {
name = "${username}";
bookmarks = [
{ name = "NixOS Options";
url = "https://search.nixos.org/options";
}
{ name = "Home Manager Options";
url = "https://home-manager-options.extranix.com/";
}
{ name = "Nixvim Docs";
url = "https://nix-community.github.io/nixvim/";
}
{ name = "Rust Manual";
url = "https://doc.rust-lang.org/book/ch01-03-hello-cargo.html";
}
{ name = "ChatGPT";
url = "https://chatgpt.com/";
}
{ name = "DataAnnotation";
url = "https://app.dataannotation.tech/users/sign_in";
}
{ name = "Nerd Fonts Cheatsheet";
url = "https://www.nerdfonts.com/cheat-sheet";
}
];
extensions = with nur.repos.rycee.firefox-addons; [
darkreader
adnauseam
cookie-autodelete
disconnect
firefox-color
vimium
firenvim
privacy-badger
new-tab-override
tampermonkey
];
extraConfig = ''
"browser.startup.homepage" = "${self}/glasshouse-desktop/home/firefox/homepage.html";
"browser.active_color" = "#EE0000";
"browser.active_color.dark" = "#FF6666";
"browser.anchor_color" = "#0000EE";
"browser.anchor_color.dark" = "#8C8CFF";
"browser.display.background_color" = "#FFFFFF";
"browser.display.background_color.dark" = "#1C1B22";
"browser.display.document_color_use" = "1";
"browser.display.foreground_color" = "#000000";
"browser.display.foreground_color.dark" = "#FBFBFE";
"browser.display.suppress_canvas_background_image_on_forced_colors" = "true";
"browser.display.use_system_colors" = "false";
"browser.newtabpage.activity-stream.newNewtabExperience.colors" = "#0090ED,#FF4F5F,#2AC3A2,#FF7139,#A172FF,#FFA437,#FF2A8A";
"browser.theme.colorway-closet" = "true";
"browser.theme.colorway-migration" = "true";
"browser.theme.windows.accent-color-in-tabs.enabled" = "false";
"browser.visited_color" = "#551A8B";
"browser.visited_color.dark" = "#FFADFF";
"browser.newtabpage.pinned" = [{
title = "Homepage";
url = "${self}/glasshouse-desktop/home/firefox/homepage.html";
}];
"devtools.defaultColorUnit" = "authored";
"editor.background_color" = "#FFFFFF";
"editor.use_custom_colors" = "false";
'';
};
};
nur,
username,
self,
...
}: {
programs.firefox = {
enable = true;
policies = {
DisableTelemetry = true;
DisableFirefoxStudies = true;
EnableTrackingProtection = {
Value = true;
Locked = true;
Cryptomining = true;
Fingerprinting = true;
};
DisablePocket = true;
DisableFirefoxAccounts = true;
DisableAccounts = true;
DisableFirefoxScreenshots = true;
OverrideFirstRunPage = "";
OverridePostUpdatePage = "";
DontCheckDefaultBrowser = true;
DisplayBookmarksToolbar = "always"; # alternatives: "always" or "newtab"
DisplayMenuBar = "default-off"; # alternatives: "always", "never" or "default-on"
SearchBar = "unified"; # alternative: "separate" isDefault = true;
};
profiles.${username} = {
name = "${username}";
bookmarks = [
{
name = "NixOS Options";
url = "https://search.nixos.org/options";
}
{
name = "Home Manager Options";
url = "https://home-manager-options.extranix.com/";
}
{
name = "Nixvim Docs";
url = "https://nix-community.github.io/nixvim/";
}
{
name = "Rust Manual";
url = "https://doc.rust-lang.org/book/ch01-03-hello-cargo.html";
}
{
name = "ChatGPT";
url = "https://chatgpt.com/";
}
{
name = "DataAnnotation";
url = "https://app.dataannotation.tech/users/sign_in";
}
{
name = "Nerd Fonts Cheatsheet";
url = "https://www.nerdfonts.com/cheat-sheet";
}
];
extensions = with nur.repos.rycee.firefox-addons; [
darkreader
adnauseam
cookie-autodelete
disconnect
firefox-color
vimium
firenvim
privacy-badger
new-tab-override
tampermonkey
];
extraConfig = ''
"browser.startup.homepage" = "${self}/glasshouse-desktop/home/firefox/homepage.html";
"browser.active_color" = "#EE0000";
"browser.active_color.dark" = "#FF6666";
"browser.anchor_color" = "#0000EE";
"browser.anchor_color.dark" = "#8C8CFF";
"browser.display.background_color" = "#FFFFFF";
"browser.display.background_color.dark" = "#1C1B22";
"browser.display.document_color_use" = "1";
"browser.display.foreground_color" = "#000000";
"browser.display.foreground_color.dark" = "#FBFBFE";
"browser.display.suppress_canvas_background_image_on_forced_colors" = "true";
"browser.display.use_system_colors" = "false";
"browser.newtabpage.activity-stream.newNewtabExperience.colors" = "#0090ED,#FF4F5F,#2AC3A2,#FF7139,#A172FF,#FFA437,#FF2A8A";
"browser.theme.colorway-closet" = "true";
"browser.theme.colorway-migration" = "true";
"browser.theme.windows.accent-color-in-tabs.enabled" = "false";
"browser.visited_color" = "#551A8B";
"browser.visited_color.dark" = "#FFADFF";
"browser.newtabpage.pinned" = [{
title = "Homepage";
url = "${self}/glasshouse-desktop/home/firefox/homepage.html";
}];
"devtools.defaultColorUnit" = "authored";
"editor.background_color" = "#FFFFFF";
"editor.use_custom_colors" = "false";
'';
};
};
}

View File

@@ -1,11 +1,15 @@
{ inputs, host, ... }:
let
host_config = if (host == "desktop") then [ ./desktop.nix ] else [ ./laptop.nix ];
in
{
imports =
[ (import ./hyprland.nix) ]
++ [ (import ./hyprpaper.nix) ]
++ host_config;
inputs,
host,
...
}: let
host_config =
if (host == "desktop")
then [./desktop.nix]
else [./laptop.nix];
in {
imports =
[(import ./hyprland.nix)]
++ [(import ./hyprpaper.nix)]
++ host_config;
}

View File

@@ -1,197 +1,194 @@
{ username, ... }:
{username, ...}: {
wayland.windowManager.hyprland = {
settings = {
monitor = [
"DP-1, 1920x1080@144, 1920x0, 1"
"HDMI-A-1, 1920x1080, 0x0, 1"
];
{
wayland.windowManager.hyprland = {
settings = {
exec-once = [
"waybar &"
"swaync &"
"wl-paste --watch cliphist store &"
"wl-clip-persist --clipboard both"
"systemctl --user import-environment &"
"hash dbus-update-activation-environment 2>/dev/null &"
"dbus-update-activation-environment --systemd WAYLAND_DISPLAY XDG_CURRENT_DESKTOP &"
"aplay /home/${username}/sound/sys/login.wav &"
];
monitor = [
"DP-1, 1920x1080@144, 1920x0, 1"
"HDMI-A-1, 1920x1080, 0x0, 1"
];
workspace = [
"1,persistent=true,monitor:HDMI-A-1"
"2,persistent=true,monitor:HDMI-A-1"
"3,persistent=true,monitor:HDMI-A-1"
"4,persistent=true,monitor:DP-1"
"5,persistent=true,monitor:DP-1"
"6,persistent=true,monitor:DP-1"
];
exec-once = [
"waybar &"
"swaync &"
"wl-paste --watch cliphist store &"
"wl-clip-persist --clipboard both"
"systemctl --user import-environment &"
"hash dbus-update-activation-environment 2>/dev/null &"
"dbus-update-activation-environment --systemd WAYLAND_DISPLAY XDG_CURRENT_DESKTOP &"
"aplay /home/${username}/sound/sys/login.wav &"
];
input = {
kb_layout = "us";
follow_mouse = 1;
accel_profile = "flat";
force_no_accel = 1;
sensitivity = 0;
};
workspace = [
"1,persistent=true,monitor:HDMI-A-1"
"2,persistent=true,monitor:HDMI-A-1"
"3,persistent=true,monitor:HDMI-A-1"
"4,persistent=true,monitor:DP-1"
"5,persistent=true,monitor:DP-1"
"6,persistent=true,monitor:DP-1"
];
general = {
"$mainMod" = "super";
layout = "dwindle";
gaps_in = 4;
gaps_out = 8;
border_size = 2;
"col.active_border" = "rgb(cba6f7) rgb(94e2d5) 45deg";
"col.inactive_border" = "0x00000000";
border_part_of_window = false;
no_border_on_floating = false;
};
misc = {
disable_autoreload = true;
disable_hyprland_logo = true;
always_follow_on_dnd = true;
layers_hog_keyboard_focus = true;
animate_manual_resizes = false;
enable_swallow = true;
focus_on_activate = true;
};
input = {
kb_layout = "us";
follow_mouse = 1;
accel_profile = "flat";
force_no_accel = 1;
sensitivity = 0;
};
dwindle = {
no_gaps_when_only = false;
force_split = 0;
special_scale_factor = 1.0;
split_width_multiplier = 1.0;
use_active_for_splits = true;
pseudotile = "yes";
preserve_split = "yes";
};
general = {
"$mainMod" = "super";
layout = "dwindle";
gaps_in = 4;
gaps_out = 8;
border_size = 2;
"col.active_border" = "rgb(cba6f7) rgb(94e2d5) 45deg";
"col.inactive_border" = "0x00000000";
border_part_of_window = false;
no_border_on_floating = false;
};
misc = {
disable_autoreload = true;
disable_hyprland_logo = true;
always_follow_on_dnd = true;
layers_hog_keyboard_focus = true;
animate_manual_resizes = false;
enable_swallow = true;
focus_on_activate = true;
};
master = {
new_status = "master";
special_scale_factor = 1;
no_gaps_when_only = false;
};
dwindle = {
no_gaps_when_only = false;
force_split = 0;
special_scale_factor = 1.0;
split_width_multiplier = 1.0;
use_active_for_splits = true;
pseudotile = "yes";
preserve_split = "yes";
};
decoration = {
rounding = 7;
# active_opacity = 0.90;
# inactive_opacity = 0.90;
# fullscreen_opacity = 1.0;
master = {
new_status = "master";
special_scale_factor = 1;
no_gaps_when_only = false;
};
blur = {
enabled = true;
size = 1;
passes = 1;
# size = 4;
# passes = 2;
brightness = 1;
contrast = 1.400;
ignore_opacity = true;
noise = 0;
new_optimizations = true;
xray = true;
};
decoration = {
rounding = 7;
# active_opacity = 0.90;
# inactive_opacity = 0.90;
# fullscreen_opacity = 1.0;
drop_shadow = true;
blur = {
enabled = true;
size = 1;
passes = 1;
# size = 4;
# passes = 2;
brightness = 1;
contrast = 1.400;
ignore_opacity = true;
noise = 0;
new_optimizations = true;
xray = true;
};
shadow_ignore_window = true;
shadow_offset = "0 2";
shadow_range = 20;
shadow_render_power = 3;
"col.shadow" = "rgba(00000055)";
};
drop_shadow = true;
animations = {
enabled = true;
shadow_ignore_window = true;
shadow_offset = "0 2";
shadow_range = 20;
shadow_render_power = 3;
"col.shadow" = "rgba(00000055)";
};
bezier = [
"fluent_decel, 0, 0.2, 0.4, 1"
"easeOutCirc, 0, 0.55, 0.45, 1"
"easeOutCubic, 0.33, 1, 0.68, 1"
"easeinoutsine, 0.37, 0, 0.63, 1"
];
animations = {
enabled = true;
animation = [
# Windows
"windowsIn, 1, 3, easeOutCubic, popin 30%" # window open
"windowsOut, 1, 3, fluent_decel, popin 70%" # window close.
"windowsMove, 1, 2, easeinoutsine, slide" # everything in between, moving, dragging, resizing.
bezier = [
"fluent_decel, 0, 0.2, 0.4, 1"
"easeOutCirc, 0, 0.55, 0.45, 1"
"easeOutCubic, 0.33, 1, 0.68, 1"
"easeinoutsine, 0.37, 0, 0.63, 1"
];
# Fade
"fadeIn, 1, 3, easeOutCubic" # fade in (open) -> layers and windows
"fadeOut, 1, 2, easeOutCubic" # fade out (close) -> layers and windows
"fadeSwitch, 0, 1, easeOutCirc" # fade on changing activewindow and its opacity
"fadeShadow, 1, 10, easeOutCirc" # fade on changing activewindow for shadows
"fadeDim, 1, 4, fluent_decel" # the easing of the dimming of inactive windows
"border, 1, 2.7, easeOutCirc" # for animating the border's color switch speed
"borderangle, 1, 30, fluent_decel, once" # for animating the border's gradient angle - styles: once (default), loop
"workspaces, 1, 4, easeOutCubic, fade" # styles: slide, slidevert, fade, slidefade, slidefadevert
];
animation = [
# Windows
"windowsIn, 1, 3, easeOutCubic, popin 30%" # window open
"windowsOut, 1, 3, fluent_decel, popin 70%" # window close.
"windowsMove, 1, 2, easeinoutsine, slide" # everything in between, moving, dragging, resizing.
# Fade
"fadeIn, 1, 3, easeOutCubic" # fade in (open) -> layers and windows
"fadeOut, 1, 2, easeOutCubic" # fade out (close) -> layers and windows
"fadeSwitch, 0, 1, easeOutCirc" # fade on changing activewindow and its opacity
"fadeShadow, 1, 10, easeOutCirc" # fade on changing activewindow for shadows
"fadeDim, 1, 4, fluent_decel" # the easing of the dimming of inactive windows
"border, 1, 2.7, easeOutCirc" # for animating the border's color switch speed
"borderangle, 1, 30, fluent_decel, once" # for animating the border's gradient angle - styles: once (default), loop
"workspaces, 1, 4, easeOutCubic, fade" # styles: slide, slidevert, fade, slidefade, slidefadevert
];
bind = [
"super, up, exec, pactl set-sink-volume @default_sink@ +10%"
"super, down, exec, pactl set-sink-volume @default_sink@ -10%"
"super, print, exec, grimblast copy area"
"super, t, exec, swaync-client -t -sw"
"super, a, exec, firefox"
"super, q, exec, kitty --title Kitty"
"super, d, exec, switchmon"
"super, c, killactive,"
"super, e, exec, [float;size 45% 70%;move 10 50] kitty btop"
"super, n, exec, [float;size 50% 35%;move 10 50] pavucontrol"
"super, p, exec, [float;size 25% 30%;move onscreen cursor 0 0] [ ! -f /tmp/passhelperfile ] && kitty passhelper"
"super, 0, exec, aplay ~/media/sound/soundtest.wav"
"super shift, q, exit,"
"super, m, exec, fuzzel"
"super, r, exec, neovide"
"super, b, togglesplit, # dwindle"
"super, f, togglefloating"
"super, g, fullscreen"
"super, home, exec, /home/${username}/scripts/home.sh"
"super, h, movefocus, l"
"super, l, movefocus, r"
"super, k, movefocus, u"
"super, j, movefocus, d"
"super, 1, exec, hyprctl 'dispatch workspace 1'"
"super, 2, exec, hyprctl 'dispatch workspace 2'"
"super, 3, exec, hyprctl 'dispatch workspace 3'"
"super, 4, exec, hyprctl 'dispatch workspace 4'"
"super, 5, exec, hyprctl 'dispatch workspace 5'"
"super, 6, exec, hyprctl 'dispatch workspace 6'"
"super, 7, exec, hyprctl 'dispatch workspace 7'"
"super, 8, exec, hyprctl 'dispatch workspace 8'"
"super, 9, exec, hyprctl 'dispatch workspace 9'"
"super, 0, exec, hyprctl 'dispatch workspace 10'"
"super alt, g, togglegroup"
"super alt, h, changegroupactive, b"
"super alt, l, changegroupactive, f"
"super shift, h, movewindoworgroup, l"
"super shift, l, movewindoworgroup, r"
"super shift, k, movewindoworgroup, u"
"super shift, j, movewindoworgroup, d"
"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"
"super, s, togglespecialworkspace, magic"
"super shift, s, movetoworkspace, special:magic"
"alt, grave, togglespecialworkspace, console"
"super, mouse_down, workspace, e+1"
"super, mouse_up, workspace, e-1"
];
bindm = [
"super, mouse:272, movewindow"
"super, mouse:273, resizewindow"
];
};
};
};
bind = [
"super, up, exec, pactl set-sink-volume @default_sink@ +10%"
"super, down, exec, pactl set-sink-volume @default_sink@ -10%"
"super, print, exec, grimblast copy area"
"super, t, exec, swaync-client -t -sw"
"super, a, exec, firefox"
"super, q, exec, kitty --title Kitty"
"super, d, exec, switchmon"
"super, c, killactive,"
"super, e, exec, [float;size 45% 70%;move 10 50] kitty btop"
"super, n, exec, [float;size 50% 35%;move 10 50] pavucontrol"
"super, p, exec, [float;size 25% 30%;move onscreen cursor 0 0] [ ! -f /tmp/passhelperfile ] && kitty passhelper"
"super, 0, exec, aplay ~/media/sound/soundtest.wav"
"super shift, q, exit,"
"super, m, exec, fuzzel"
"super, r, exec, neovide"
"super, b, togglesplit, # dwindle"
"super, f, togglefloating"
"super, g, fullscreen"
"super, home, exec, /home/${username}/scripts/home.sh"
"super, h, movefocus, l"
"super, l, movefocus, r"
"super, k, movefocus, u"
"super, j, movefocus, d"
"super, 1, exec, hyprctl 'dispatch workspace 1'"
"super, 2, exec, hyprctl 'dispatch workspace 2'"
"super, 3, exec, hyprctl 'dispatch workspace 3'"
"super, 4, exec, hyprctl 'dispatch workspace 4'"
"super, 5, exec, hyprctl 'dispatch workspace 5'"
"super, 6, exec, hyprctl 'dispatch workspace 6'"
"super, 7, exec, hyprctl 'dispatch workspace 7'"
"super, 8, exec, hyprctl 'dispatch workspace 8'"
"super, 9, exec, hyprctl 'dispatch workspace 9'"
"super, 0, exec, hyprctl 'dispatch workspace 10'"
"super alt, g, togglegroup"
"super alt, h, changegroupactive, b"
"super alt, l, changegroupactive, f"
"super shift, h, movewindoworgroup, l"
"super shift, l, movewindoworgroup, r"
"super shift, k, movewindoworgroup, u"
"super shift, j, movewindoworgroup, d"
"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"
"super, s, togglespecialworkspace, magic"
"super shift, s, movetoworkspace, special:magic"
"alt, grave, togglespecialworkspace, console"
"super, mouse_down, workspace, e+1"
"super, mouse_up, workspace, e-1"
];
bindm = [
"super, mouse:272, movewindow"
"super, mouse:273, resizewindow"
];
};
};
};
}

View File

@@ -1,24 +1,26 @@
{ inputs, pkgs, ... }:
{
home.packages = with pkgs; [
swaybg
inputs.hypr-contrib.packages.${pkgs.system}.grimblast
hyprpicker
grim
slurp
wl-clip-persist
wf-recorder
glib
wayland
direnv
];
systemd.user.targets.hyprland-session.Unit.Wants = [ "xdg-desktop-autostart.target" ];
wayland.windowManager.hyprland = {
enable = true;
xwayland = {
enable = true;
};
systemd.enable = true;
};
inputs,
pkgs,
...
}: {
home.packages = with pkgs; [
swaybg
inputs.hypr-contrib.packages.${pkgs.system}.grimblast
hyprpicker
grim
slurp
wl-clip-persist
wf-recorder
glib
wayland
direnv
];
systemd.user.targets.hyprland-session.Unit.Wants = ["xdg-desktop-autostart.target"];
wayland.windowManager.hyprland = {
enable = true;
xwayland = {
enable = true;
};
systemd.enable = true;
};
}

View File

@@ -1,20 +1,25 @@
{ host, username, ... }:
{
services.hyprpaper = {
enable = true;
settings = {
ipc = "on";
splash = false;
splash_offset = 2.0;
preload = [ "/home/${username}/Pictures/Wallpapers/cat-leaves.png" ];
host,
username,
...
}: {
services.hyprpaper = {
enable = true;
settings = {
ipc = "on";
splash = false;
splash_offset = 2.0;
preload = ["/home/${username}/Pictures/Wallpapers/cat-leaves.png"];
wallpaper = if (host == "desktop") then [
"DP-1,/home/${username}/Pictures/Wallpapers/cat-leaves.png"
"HDMI-A-1,/home/${username}/Pictures/Wallpapers/cat-leaves.png"
] else [
"eDP-1,/home/${username}/Pictures/Wallpapers/cat-leaves.png"
];
};
};
wallpaper =
if (host == "desktop")
then [
"DP-1,/home/${username}/Pictures/Wallpapers/cat-leaves.png"
"HDMI-A-1,/home/${username}/Pictures/Wallpapers/cat-leaves.png"
]
else [
"eDP-1,/home/${username}/Pictures/Wallpapers/cat-leaves.png"
];
};
};
}

View File

@@ -1,196 +1,193 @@
{ username, ... }:
{username, ...}: {
wayland.windowManager.hyprland = {
settings = {
monitor = [
"eDP-1, 1920x1080@144, 1920x0, 1"
];
{
wayland.windowManager.hyprland = {
settings = {
exec-once = [
"waybar &"
"swaync &"
"wl-paste --watch cliphist store &"
"wl-clip-persist --clipboard both"
"systemctl --user import-environment &"
"hash dbus-update-activation-environment 2>/dev/null &"
"dbus-update-activation-environment --systemd WAYLAND_DISPLAY XDG_CURRENT_DESKTOP &"
"aplay /home/${username}/sound/sys/login.wav &"
];
monitor = [
"eDP-1, 1920x1080@144, 1920x0, 1"
];
workspace = [
"1,persistent=true,monitor:eDP-1"
"2,persistent=true,monitor:eDP-1"
"3,persistent=true,monitor:eDP-1"
"4,persistent=true,monitor:eDP-1"
"5,persistent=true,monitor:eDP-1"
"6,persistent=true,monitor:eDP-1"
];
exec-once = [
"waybar &"
"swaync &"
"wl-paste --watch cliphist store &"
"wl-clip-persist --clipboard both"
"systemctl --user import-environment &"
"hash dbus-update-activation-environment 2>/dev/null &"
"dbus-update-activation-environment --systemd WAYLAND_DISPLAY XDG_CURRENT_DESKTOP &"
"aplay /home/${username}/sound/sys/login.wav &"
];
input = {
kb_layout = "us";
follow_mouse = 1;
accel_profile = "flat";
force_no_accel = 1;
sensitivity = 0;
};
workspace = [
"1,persistent=true,monitor:eDP-1"
"2,persistent=true,monitor:eDP-1"
"3,persistent=true,monitor:eDP-1"
"4,persistent=true,monitor:eDP-1"
"5,persistent=true,monitor:eDP-1"
"6,persistent=true,monitor:eDP-1"
];
general = {
"$mainMod" = "super";
layout = "dwindle";
gaps_in = 4;
gaps_out = 8;
border_size = 2;
"col.active_border" = "rgb(cba6f7) rgb(94e2d5) 45deg";
"col.inactive_border" = "0x00000000";
border_part_of_window = false;
no_border_on_floating = false;
};
misc = {
disable_autoreload = true;
disable_hyprland_logo = true;
always_follow_on_dnd = true;
layers_hog_keyboard_focus = true;
animate_manual_resizes = false;
enable_swallow = true;
focus_on_activate = true;
};
input = {
kb_layout = "us";
follow_mouse = 1;
accel_profile = "flat";
force_no_accel = 1;
sensitivity = 0;
};
dwindle = {
no_gaps_when_only = false;
force_split = 0;
special_scale_factor = 1.0;
split_width_multiplier = 1.0;
use_active_for_splits = true;
pseudotile = "yes";
preserve_split = "yes";
};
general = {
"$mainMod" = "super";
layout = "dwindle";
gaps_in = 4;
gaps_out = 8;
border_size = 2;
"col.active_border" = "rgb(cba6f7) rgb(94e2d5) 45deg";
"col.inactive_border" = "0x00000000";
border_part_of_window = false;
no_border_on_floating = false;
};
misc = {
disable_autoreload = true;
disable_hyprland_logo = true;
always_follow_on_dnd = true;
layers_hog_keyboard_focus = true;
animate_manual_resizes = false;
enable_swallow = true;
focus_on_activate = true;
};
master = {
new_status = "master";
special_scale_factor = 1;
no_gaps_when_only = false;
};
dwindle = {
no_gaps_when_only = false;
force_split = 0;
special_scale_factor = 1.0;
split_width_multiplier = 1.0;
use_active_for_splits = true;
pseudotile = "yes";
preserve_split = "yes";
};
decoration = {
rounding = 7;
# active_opacity = 0.90;
# inactive_opacity = 0.90;
# fullscreen_opacity = 1.0;
master = {
new_status = "master";
special_scale_factor = 1;
no_gaps_when_only = false;
};
blur = {
enabled = true;
size = 1;
passes = 1;
# size = 4;
# passes = 2;
brightness = 1;
contrast = 1.400;
ignore_opacity = true;
noise = 0;
new_optimizations = true;
xray = true;
};
decoration = {
rounding = 7;
# active_opacity = 0.90;
# inactive_opacity = 0.90;
# fullscreen_opacity = 1.0;
drop_shadow = true;
blur = {
enabled = true;
size = 1;
passes = 1;
# size = 4;
# passes = 2;
brightness = 1;
contrast = 1.400;
ignore_opacity = true;
noise = 0;
new_optimizations = true;
xray = true;
};
shadow_ignore_window = true;
shadow_offset = "0 2";
shadow_range = 20;
shadow_render_power = 3;
"col.shadow" = "rgba(00000055)";
};
drop_shadow = true;
animations = {
enabled = true;
shadow_ignore_window = true;
shadow_offset = "0 2";
shadow_range = 20;
shadow_render_power = 3;
"col.shadow" = "rgba(00000055)";
};
bezier = [
"fluent_decel, 0, 0.2, 0.4, 1"
"easeOutCirc, 0, 0.55, 0.45, 1"
"easeOutCubic, 0.33, 1, 0.68, 1"
"easeinoutsine, 0.37, 0, 0.63, 1"
];
animations = {
enabled = true;
animation = [
# Windows
"windowsIn, 1, 3, easeOutCubic, popin 30%" # window open
"windowsOut, 1, 3, fluent_decel, popin 70%" # window close.
"windowsMove, 1, 2, easeinoutsine, slide" # everything in between, moving, dragging, resizing.
bezier = [
"fluent_decel, 0, 0.2, 0.4, 1"
"easeOutCirc, 0, 0.55, 0.45, 1"
"easeOutCubic, 0.33, 1, 0.68, 1"
"easeinoutsine, 0.37, 0, 0.63, 1"
];
# Fade
"fadeIn, 1, 3, easeOutCubic" # fade in (open) -> layers and windows
"fadeOut, 1, 2, easeOutCubic" # fade out (close) -> layers and windows
"fadeSwitch, 0, 1, easeOutCirc" # fade on changing activewindow and its opacity
"fadeShadow, 1, 10, easeOutCirc" # fade on changing activewindow for shadows
"fadeDim, 1, 4, fluent_decel" # the easing of the dimming of inactive windows
"border, 1, 2.7, easeOutCirc" # for animating the border's color switch speed
"borderangle, 1, 30, fluent_decel, once" # for animating the border's gradient angle - styles: once (default), loop
"workspaces, 1, 4, easeOutCubic, fade" # styles: slide, slidevert, fade, slidefade, slidefadevert
];
animation = [
# Windows
"windowsIn, 1, 3, easeOutCubic, popin 30%" # window open
"windowsOut, 1, 3, fluent_decel, popin 70%" # window close.
"windowsMove, 1, 2, easeinoutsine, slide" # everything in between, moving, dragging, resizing.
# Fade
"fadeIn, 1, 3, easeOutCubic" # fade in (open) -> layers and windows
"fadeOut, 1, 2, easeOutCubic" # fade out (close) -> layers and windows
"fadeSwitch, 0, 1, easeOutCirc" # fade on changing activewindow and its opacity
"fadeShadow, 1, 10, easeOutCirc" # fade on changing activewindow for shadows
"fadeDim, 1, 4, fluent_decel" # the easing of the dimming of inactive windows
"border, 1, 2.7, easeOutCirc" # for animating the border's color switch speed
"borderangle, 1, 30, fluent_decel, once" # for animating the border's gradient angle - styles: once (default), loop
"workspaces, 1, 4, easeOutCubic, fade" # styles: slide, slidevert, fade, slidefade, slidefadevert
];
bind = [
"super, up, exec, pactl set-sink-volume @default_sink@ +10%"
"super, down, exec, pactl set-sink-volume @default_sink@ -10%"
"super, print, exec, grimblast copy area"
"super, t, exec, swaync-client -t -sw"
"super, a, exec, firefox"
"super, q, exec, kitty --title Kitty"
"super, d, exec, switchmon"
"super, c, killactive,"
"super, e, exec, [float;size 45% 70%;move 10 50] kitty btop"
"super, n, exec, [float;size 50% 35%;move 10 50] pavucontrol"
"super, p, exec, [float;size 25% 30%;move onscreen cursor 0 0] [ ! -f /tmp/passhelperfile ] && kitty passhelper"
"super, 0, exec, aplay ~/media/sound/soundtest.wav"
"super shift, q, exit,"
"super, m, exec, fuzzel"
"super, r, exec, neovide"
"super, b, togglesplit, # dwindle"
"super, f, togglefloating"
"super, g, fullscreen"
"super, home, exec, /home/${username}/scripts/home.sh"
"super, h, movefocus, l"
"super, l, movefocus, r"
"super, k, movefocus, u"
"super, j, movefocus, d"
"super, 1, exec, hyprctl 'dispatch workspace 1'"
"super, 2, exec, hyprctl 'dispatch workspace 2'"
"super, 3, exec, hyprctl 'dispatch workspace 3'"
"super, 4, exec, hyprctl 'dispatch workspace 4'"
"super, 5, exec, hyprctl 'dispatch workspace 5'"
"super, 6, exec, hyprctl 'dispatch workspace 6'"
"super, 7, exec, hyprctl 'dispatch workspace 7'"
"super, 8, exec, hyprctl 'dispatch workspace 8'"
"super, 9, exec, hyprctl 'dispatch workspace 9'"
"super, 0, exec, hyprctl 'dispatch workspace 10'"
"super alt, g, togglegroup"
"super alt, h, changegroupactive, b"
"super alt, l, changegroupactive, f"
"super shift, h, movewindoworgroup, l"
"super shift, l, movewindoworgroup, r"
"super shift, k, movewindoworgroup, u"
"super shift, j, movewindoworgroup, d"
"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"
"super, s, togglespecialworkspace, magic"
"super shift, s, movetoworkspace, special:magic"
"alt, grave, togglespecialworkspace, console"
"super, mouse_down, workspace, e+1"
"super, mouse_up, workspace, e-1"
];
bindm = [
"super, mouse:272, movewindow"
"super, mouse:273, resizewindow"
];
};
};
};
bind = [
"super, up, exec, pactl set-sink-volume @default_sink@ +10%"
"super, down, exec, pactl set-sink-volume @default_sink@ -10%"
"super, print, exec, grimblast copy area"
"super, t, exec, swaync-client -t -sw"
"super, a, exec, firefox"
"super, q, exec, kitty --title Kitty"
"super, d, exec, switchmon"
"super, c, killactive,"
"super, e, exec, [float;size 45% 70%;move 10 50] kitty btop"
"super, n, exec, [float;size 50% 35%;move 10 50] pavucontrol"
"super, p, exec, [float;size 25% 30%;move onscreen cursor 0 0] [ ! -f /tmp/passhelperfile ] && kitty passhelper"
"super, 0, exec, aplay ~/media/sound/soundtest.wav"
"super shift, q, exit,"
"super, m, exec, fuzzel"
"super, r, exec, neovide"
"super, b, togglesplit, # dwindle"
"super, f, togglefloating"
"super, g, fullscreen"
"super, home, exec, /home/${username}/scripts/home.sh"
"super, h, movefocus, l"
"super, l, movefocus, r"
"super, k, movefocus, u"
"super, j, movefocus, d"
"super, 1, exec, hyprctl 'dispatch workspace 1'"
"super, 2, exec, hyprctl 'dispatch workspace 2'"
"super, 3, exec, hyprctl 'dispatch workspace 3'"
"super, 4, exec, hyprctl 'dispatch workspace 4'"
"super, 5, exec, hyprctl 'dispatch workspace 5'"
"super, 6, exec, hyprctl 'dispatch workspace 6'"
"super, 7, exec, hyprctl 'dispatch workspace 7'"
"super, 8, exec, hyprctl 'dispatch workspace 8'"
"super, 9, exec, hyprctl 'dispatch workspace 9'"
"super, 0, exec, hyprctl 'dispatch workspace 10'"
"super alt, g, togglegroup"
"super alt, h, changegroupactive, b"
"super alt, l, changegroupactive, f"
"super shift, h, movewindoworgroup, l"
"super shift, l, movewindoworgroup, r"
"super shift, k, movewindoworgroup, u"
"super shift, j, movewindoworgroup, d"
"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"
"super, s, togglespecialworkspace, magic"
"super shift, s, movetoworkspace, special:magic"
"alt, grave, togglespecialworkspace, console"
"super, mouse_down, workspace, e+1"
"super, mouse_up, workspace, e-1"
];
bindm = [
"super, mouse:272, movewindow"
"super, mouse:273, resizewindow"
];
};
};
};
}

View File

@@ -1,8 +1,6 @@
{ ... }:
{
programs.autojump = {
enable = true;
enableZshIntegration = true;
};
{...}: {
programs.autojump = {
enable = true;
enableZshIntegration = true;
};
}

View File

@@ -1,6 +1,4 @@
{ inputs, ... }:
{
{inputs, ...}: {
programs.bat = {
enable = true;
config = {

View File

@@ -1,6 +1,4 @@
{ pkgs, ... }:
{
{pkgs, ...}: {
programs.btop = {
enable = true;
@@ -8,14 +6,14 @@
color_theme = "tokyo-night";
theme_background = false;
update_ms = 500;
vim_keys = true;
proc_tree = true;
temp_scale = "fahrenheit";
disks_filter = "exclude=/boot";
show_swap = false;
swap_disk = false;
vim_keys = true;
proc_tree = true;
temp_scale = "fahrenheit";
disks_filter = "exclude=/boot";
show_swap = false;
swap_disk = false;
};
};
home.packages = (with pkgs; [ nvtopPackages.intel ]);
home.packages = with pkgs; [nvtopPackages.intel];
}

View File

@@ -1,12 +1,16 @@
{ inputs, pkgs, ... }:
{
inputs,
pkgs,
...
}: {
programs.cava = {
enable = true;
};
# https://github.com/catppuccin/cava
home.file.".config/cava/config".text = ''
# custom cava config
'' + builtins.readFile "${inputs.catppuccin-cava}/themes/mocha.cava";
home.file.".config/cava/config".text =
''
# custom cava config
''
+ builtins.readFile "${inputs.catppuccin-cava}/themes/mocha.cava";
}

View File

@@ -1,11 +1,9 @@
{ ... }:
{
programs.eza = {
enable = true;
enableZshIntegration = false;
extraOptions = [ "-1" "-h" "--group-directories-first" ];
icons = "auto";
git = true;
};
{...}: {
programs.eza = {
enable = true;
enableZshIntegration = false;
extraOptions = ["-1" "-h" "--group-directories-first"];
icons = "auto";
git = true;
};
}

View File

@@ -1,109 +1,122 @@
{ nur, username }:
{
programs.firefox = {
enable = true;
policies = {
DisableTelemetry = true;
DisableFirefoxStudies = true;
EnableTrackingProtection = {
Value= true;
Locked = true;
Cryptomining = true;
Fingerprinting = true;
};
DisablePocket = true;
DisableFirefoxAccounts = true;
DisableAccounts = true;
DisableFirefoxScreenshots = true;
OverrideFirstRunPage = "";
OverridePostUpdatePage = "";
DontCheckDefaultBrowser = true;
DisplayBookmarksToolbar = "always"; # alternatives: "always" or "newtab"
DisplayMenuBar = "default-off"; # alternatives: "always", "never" or "default-on"
SearchBar = "unified"; # alternative: "separate" isDefault = true;
};
profiles.${username} = {
name = "${username}";
bookmarks = [
{ name = "Nix sites";
toolbar = true;
bookmarks = [
{ name = "NixOS Options";
url = "https://search.nixos.org/options";
}
{ name = "Home Manager Options";
url = "https://home-manager-options.extranix.com/";
}
{ name = "Nixvim Docs";
url = "https://nix-community.github.io/nixvim/";
}
{ name = "Noogle";
url = "https://noogle.dev/";
}
{ name = "NixOS Wiki";
url = "https://nixos.wiki/";
}
{ name = "NixOS Manual";
url = "https://nixos.org/manual/nixos/stable";
}
{ name = "Nixpkgs Reference";
url = "https://nixos.org/manual/nixpkgs/stable";
}
];
}
{ name = "Rust Manual";
url = "https://doc.rust-lang.org/book/ch01-03-hello-cargo.html";
}
{ name = "ChatGPT";
url = "https://chatgpt.com/";
}
{ name = "DataAnnotation";
url = "https://app.dataannotation.tech/users/sign_in";
}
{ name = "Nerd Fonts Cheatsheet";
url = "https://www.nerdfonts.com/cheat-sheet";
}
];
extensions = with nur.repos.rycee.firefox-addons; [
darkreader
adnauseam
cookie-autodelete
disconnect
firefox-color
vimium
firenvim
privacy-badger
new-tab-override
tampermonkey
];
extraConfig = ''
"browser.startup.homepage" = "${self}/glasshouse-desktop/home/firefox/homepage.html";
"browser.active_color" = "#EE0000";
"browser.active_color.dark" = "#FF6666";
"browser.anchor_color" = "#0000EE";
"browser.anchor_color.dark" = "#8C8CFF";
"browser.display.background_color" = "#FFFFFF";
"browser.display.background_color.dark" = "#1C1B22";
"browser.display.document_color_use" = "1";
"browser.display.foreground_color" = "#000000";
"browser.display.foreground_color.dark" = "#FBFBFE";
"browser.display.suppress_canvas_background_image_on_forced_colors" = "true";
"browser.display.use_system_colors" = "false";
"browser.newtabpage.activity-stream.newNewtabExperience.colors" = "#0090ED,#FF4F5F,#2AC3A2,#FF7139,#A172FF,#FFA437,#FF2A8A";
"browser.theme.colorway-closet" = "true";
"browser.theme.colorway-migration" = "true";
"browser.theme.windows.accent-color-in-tabs.enabled" = "false";
"browser.visited_color" = "#551A8B";
"browser.visited_color.dark" = "#FFADFF";
"browser.newtabpage.pinned" = [{
title = "Homepage";
url = "${self}/glasshouse-desktop/home/firefox/homepage.html";
}];
"devtools.defaultColorUnit" = "authored";
"editor.background_color" = "#FFFFFF";
"editor.use_custom_colors" = "false";
'';
};
};
nur,
username,
}: {
programs.firefox = {
enable = true;
policies = {
DisableTelemetry = true;
DisableFirefoxStudies = true;
EnableTrackingProtection = {
Value = true;
Locked = true;
Cryptomining = true;
Fingerprinting = true;
};
DisablePocket = true;
DisableFirefoxAccounts = true;
DisableAccounts = true;
DisableFirefoxScreenshots = true;
OverrideFirstRunPage = "";
OverridePostUpdatePage = "";
DontCheckDefaultBrowser = true;
DisplayBookmarksToolbar = "always"; # alternatives: "always" or "newtab"
DisplayMenuBar = "default-off"; # alternatives: "always", "never" or "default-on"
SearchBar = "unified"; # alternative: "separate" isDefault = true;
};
profiles.${username} = {
name = "${username}";
bookmarks = [
{
name = "Nix sites";
toolbar = true;
bookmarks = [
{
name = "NixOS Options";
url = "https://search.nixos.org/options";
}
{
name = "Home Manager Options";
url = "https://home-manager-options.extranix.com/";
}
{
name = "Nixvim Docs";
url = "https://nix-community.github.io/nixvim/";
}
{
name = "Noogle";
url = "https://noogle.dev/";
}
{
name = "NixOS Wiki";
url = "https://nixos.wiki/";
}
{
name = "NixOS Manual";
url = "https://nixos.org/manual/nixos/stable";
}
{
name = "Nixpkgs Reference";
url = "https://nixos.org/manual/nixpkgs/stable";
}
];
}
{
name = "Rust Manual";
url = "https://doc.rust-lang.org/book/ch01-03-hello-cargo.html";
}
{
name = "ChatGPT";
url = "https://chatgpt.com/";
}
{
name = "DataAnnotation";
url = "https://app.dataannotation.tech/users/sign_in";
}
{
name = "Nerd Fonts Cheatsheet";
url = "https://www.nerdfonts.com/cheat-sheet";
}
];
extensions = with nur.repos.rycee.firefox-addons; [
darkreader
adnauseam
cookie-autodelete
disconnect
firefox-color
vimium
firenvim
privacy-badger
new-tab-override
tampermonkey
];
extraConfig = ''
"browser.startup.homepage" = "${self}/glasshouse-desktop/home/firefox/homepage.html";
"browser.active_color" = "#EE0000";
"browser.active_color.dark" = "#FF6666";
"browser.anchor_color" = "#0000EE";
"browser.anchor_color.dark" = "#8C8CFF";
"browser.display.background_color" = "#FFFFFF";
"browser.display.background_color.dark" = "#1C1B22";
"browser.display.document_color_use" = "1";
"browser.display.foreground_color" = "#000000";
"browser.display.foreground_color.dark" = "#FBFBFE";
"browser.display.suppress_canvas_background_image_on_forced_colors" = "true";
"browser.display.use_system_colors" = "false";
"browser.newtabpage.activity-stream.newNewtabExperience.colors" = "#0090ED,#FF4F5F,#2AC3A2,#FF7139,#A172FF,#FFA437,#FF2A8A";
"browser.theme.colorway-closet" = "true";
"browser.theme.colorway-migration" = "true";
"browser.theme.windows.accent-color-in-tabs.enabled" = "false";
"browser.visited_color" = "#551A8B";
"browser.visited_color.dark" = "#FFADFF";
"browser.newtabpage.pinned" = [{
title = "Homepage";
url = "${self}/glasshouse-desktop/home/firefox/homepage.html";
}];
"devtools.defaultColorUnit" = "authored";
"editor.background_color" = "#FFFFFF";
"editor.use_custom_colors" = "false";
'';
};
};
}

View File

@@ -1,6 +1,4 @@
{ ... }:
{
{...}: {
programs.fuzzel = {
enable = true;
settings = {
@@ -9,7 +7,7 @@
line-height = 25;
fields = "name,generic,comment,categories,filename,keywords";
terminal = "kitty";
prompt = "' '" ;
prompt = "' '";
icon-theme = "Papirus-Dark";
layer = "top";
lines = 10;

View File

@@ -1,8 +1,6 @@
{ ... }:
{
programs.fzf = {
enable = true;
enableZshIntegration = true;
};
{...}: {
programs.fzf = {
enable = true;
enableZshIntegration = true;
};
}

View File

@@ -1,9 +1,7 @@
{ ... }:
{
programs.git = {
enable = true;
userEmail = "pagedmov@gmail.com";
userName = "pagedmov";
};
{...}: {
programs.git = {
enable = true;
userEmail = "pagedmov@gmail.com";
userName = "pagedmov";
};
}

View File

@@ -1,6 +1,4 @@
{ pkgs, ... }:
{
{pkgs, ...}: {
programs.kitty = {
enable = true;
@@ -17,7 +15,7 @@
window_padding_width = 10;
scrollback_lines = 10000;
enable_audio_bell = false;
allow_remote_control = true;
allow_remote_control = true;
mouse_hide_wait = 60;
## Tabs

View File

@@ -1,13 +1,10 @@
{ username, ... }:
let
home = "/home/${username}";
in
{
programs.password-store = {
enable = true;
settings = {
PASSWORD_STORE_DIR = "${home}/.password-store";
};
};
{username, ...}: let
home = "/home/${username}";
in {
programs.password-store = {
enable = true;
settings = {
PASSWORD_STORE_DIR = "${home}/.password-store";
};
};
}

File diff suppressed because it is too large Load Diff

View File

@@ -1,15 +1,16 @@
{ self, pkgs }:
{
self,
pkgs,
}:
pkgs.writeShellScriptBin "compress" ''
#!/usr/bin/env bash
pkgs.writeShellScriptBin "compress" (''
#!/usr/bin/env bash
if (( $# == 1 )) then
# echo -ne "Archive name: "
# read name
# tar -cvzf "$name.tar.gz" $1
tar -cvzf "$1.tar.gz" $1
else
echo "Wrong number of arguments..."
fi
'')
if (( $# == 1 )) then
# echo -ne "Archive name: "
# read name
# tar -cvzf "$name.tar.gz" $1
tar -cvzf "$1.tar.gz" $1
else
echo "Wrong number of arguments..."
fi
''

View File

@@ -1,9 +1,10 @@
{ self, pkgs }:
{
self,
pkgs,
}:
pkgs.writeShellScriptBin "crs" ''
#!/run/current-system/sw/bin/bash
pkgs.writeShellScriptBin "crs" (''
#!/run/current-system/sw/bin/bash
cargo test && \
cargo run
'')
cargo test && \
cargo run
''

View File

@@ -1,11 +1,12 @@
{ self, pkgs }:
{
self,
pkgs,
}:
pkgs.writeShellScriptBin "extract" ''
#!/usr/bin/env bash
pkgs.writeShellScriptBin "extract" (''
#!/usr/bin/env bash
for i in "$@" ; do
tar -xvzf $i
break
done
'')
for i in "$@" ; do
tar -xvzf $i
break
done
''

View File

@@ -1,8 +1,9 @@
{ self, pkgs }:
{
self,
pkgs,
}:
pkgs.writeShellScriptBin "invoke" ''
#!/run/current-system/sw/bin/bash
pkgs.writeShellScriptBin "invoke" (''
#!/run/current-system/sw/bin/bash
nix run nixpkgs#$"@"
'')
nix run nixpkgs#$"@"
''

View File

@@ -1,11 +1,12 @@
{ self, pkgs }:
{
self,
pkgs,
}:
pkgs.writeShellScriptBin "keybinds" ''
#!/usr/bin/env bash
pkgs.writeShellScriptBin "keybinds" (''
#!/usr/bin/env bash
config_file=~/.config/hypr/hyprland.conf
keybinds=$(grep -oP '(?<=bind=).*' $config_file)
keybinds=$(echo "$keybinds" | sed 's/,\([^,]*\)$/ = \1/' | sed 's/, exec//g' | sed 's/^,//g')
rofi -dmenu -theme-str 'window {width: 50%;}' <<< "$keybinds"
'')
config_file=~/.config/hypr/hyprland.conf
keybinds=$(grep -oP '(?<=bind=).*' $config_file)
keybinds=$(echo "$keybinds" | sed 's/,\([^,]*\)$/ = \1/' | sed 's/, exec//g' | sed 's/^,//g')
rofi -dmenu -theme-str 'window {width: 50%;}' <<< "$keybinds"
''

View File

@@ -1,10 +1,11 @@
{ self, pkgs }:
{
self,
pkgs,
}:
pkgs.writeShellScriptBin "mcd" ''
#!/run/current-system/sw/bin/bash
pkgs.writeShellScriptBin "mcd" (''
#!/run/current-system/sw/bin/bash
mkdir -p "$1"
cd "$1" || exit
'')
mkdir -p "$1"
cd "$1" || exit
''

View File

@@ -1,21 +1,22 @@
{ self, pkgs }:
{
self,
pkgs,
}:
pkgs.writeShellScriptBin "runbg" ''
#!/usr/bin/env bash
pkgs.writeShellScriptBin "runbg" (''
#!/usr/bin/env bash
[ $# -eq 0 ] && { # $# is number of args
echo "$(basename $0): missing command" >&2
exit 1
}
prog="$(which "$1")" # see below
[ -z "$prog" ] && {
echo "$(basename $0): unknown command: $1" >&2
exit 1
}
shift # remove $1, now $prog, from args
tty -s && exec </dev/null # if stdin is a terminal, redirect from null
tty -s <&1 && exec >/dev/null # if stdout is a terminal, redirect to null
tty -s <&2 && exec 2>&1 # stderr to stdout (which might not be null)
"$prog" "$@" & # $@ is all args
'')
[ $# -eq 0 ] && { # $# is number of args
echo "$(basename $0): missing command" >&2
exit 1
}
prog="$(which "$1")" # see below
[ -z "$prog" ] && {
echo "$(basename $0): unknown command: $1" >&2
exit 1
}
shift # remove $1, now $prog, from args
tty -s && exec </dev/null # if stdin is a terminal, redirect from null
tty -s <&1 && exec >/dev/null # if stdout is a terminal, redirect to null
tty -s <&2 && exec 2>&1 # stderr to stdout (which might not be null)
"$prog" "$@" & # $@ is all args
''

View File

@@ -1,8 +1,9 @@
{ self, pkgs }:
{
self,
pkgs,
}:
pkgs.writeShellScriptBin "scheck" ''
#!/run/current-system/sw/bin/bash
pkgs.writeShellScriptBin "scheck" (''
#!/run/current-system/sw/bin/bash
[ "$SOUNDS_ENABLED" -eq 1 ]
'')
[ "$SOUNDS_ENABLED" -eq 1 ]
''

View File

@@ -1,12 +1,12 @@
{ self, pkgs }:
pkgs.writeShellScriptBin "splash" (''
#!/bin/bash
echo "NixOS kernel ver. $(uname -a | awk '{print $3}') x86_64 GNU/Linux"
date +"%A %B %-d %Y"
echo -e "\033[38;2;0;180;205m$(toilet -t -f Slant.flf glasshouse)\033[0m"
echo
'')
{
self,
pkgs,
}:
pkgs.writeShellScriptBin "splash" ''
#!/bin/bash
echo "NixOS kernel ver. $(uname -a | awk '{print $3}') x86_64 GNU/Linux"
date +"%A %B %-d %Y"
echo -e "\033[38;2;0;180;205m$(toilet -t -f Slant.flf glasshouse)\033[0m"
echo
''

View File

@@ -1,62 +1,144 @@
{ host, self, pkgs, ... }:
let
compress = (import ./commands/compress.nix { self = self; pkgs = pkgs;});
passhelper = (import ./wm-controls/passhelper.nix { self = self; pkgs = pkgs;});
crs = (import ./commands/crs.nix { self = self; pkgs = pkgs;});
extract = (import ./commands/extract.nix { self = self; pkgs = pkgs;});
invoke = (import ./commands/invoke.nix { self = self; pkgs = pkgs;});
splash = (import ./commands/splash.nix { self = self; pkgs = pkgs;});
scheck = (import ./commands/s_check.nix { self = self; pkgs = pkgs;});
runbg = (import ./commands/runbg.nix { self = self; pkgs = pkgs;});
mcd = (import ./commands/mcd.nix { self = self; pkgs = pkgs;});
garbage-collect = (import ./nix/garbage-collect.nix { self = self; pkgs = pkgs;});
homep = (import ./nix/homep.nix { self = self; pkgs = pkgs;});
homer = (import ./nix/homer.nix { self = self; pkgs = pkgs;});
nsp = (import ./nix/nsp.nix { self = self; pkgs = pkgs;});
nixr = (import ./nix/nixr.nix { self = self; pkgs = pkgs;});
nixp = (import ./nix/nixp.nix { self = self; pkgs = pkgs;});
hyprland = (import ./wm-controls/hyprland.nix { pkgs=pkgs; });
lofi = (import ./wm-controls/lofi.nix { self = self; pkgs = pkgs;});
music = (import ./wm-controls/music.nix { self = self; pkgs = pkgs;});
shutdown-script = (import ./wm-controls/shutdown-script.nix { self = self; pkgs = pkgs;});
switchmon = (import ./wm-controls/switchmon.nix { self = self; pkgs = pkgs;});
toggle_blur = (import ./wm-controls/toggle_blur.nix { self = self; pkgs = pkgs;});
toggle_float = (import ./wm-controls/toggle_float.nix { self = self; pkgs = pkgs;});
toggle_oppacity = (import ./wm-controls/toggle_oppacity.nix { self = self; pkgs = pkgs;});
toggle_waybar = (import ./wm-controls/toggle_waybar.nix { self = self; pkgs = pkgs;});
rebuild = (import ./nix/rebuild.nix { host = host; self = self; pkgs = pkgs;});
nixcommit = (import ./nix/nixcommit.nix { host = host; self = self; pkgs = pkgs;});
nixpush = (import ./nix/nixpush.nix { self = self; pkgs = pkgs;});
in
{
home.packages = [
compress
passhelper
crs
extract
garbage-collect
homep
homer
hyprland
invoke
lofi
mcd
music
nixcommit
nixp
nixpush
nixr
rebuild
nsp
runbg
scheck
shutdown-script
splash
switchmon
toggle_blur
toggle_float
toggle_oppacity
toggle_waybar
];
host,
self,
pkgs,
...
}: let
compress = import ./commands/compress.nix {
self = self;
pkgs = pkgs;
};
passhelper = import ./wm-controls/passhelper.nix {
self = self;
pkgs = pkgs;
};
crs = import ./commands/crs.nix {
self = self;
pkgs = pkgs;
};
extract = import ./commands/extract.nix {
self = self;
pkgs = pkgs;
};
invoke = import ./commands/invoke.nix {
self = self;
pkgs = pkgs;
};
splash = import ./commands/splash.nix {
self = self;
pkgs = pkgs;
};
scheck = import ./commands/s_check.nix {
self = self;
pkgs = pkgs;
};
runbg = import ./commands/runbg.nix {
self = self;
pkgs = pkgs;
};
mcd = import ./commands/mcd.nix {
self = self;
pkgs = pkgs;
};
garbage-collect = import ./nix/garbage-collect.nix {
self = self;
pkgs = pkgs;
};
homep = import ./nix/homep.nix {
self = self;
pkgs = pkgs;
};
homer = import ./nix/homer.nix {
self = self;
pkgs = pkgs;
};
nsp = import ./nix/nsp.nix {
self = self;
pkgs = pkgs;
};
nixr = import ./nix/nixr.nix {
self = self;
pkgs = pkgs;
};
nixp = import ./nix/nixp.nix {
self = self;
pkgs = pkgs;
};
hyprland = import ./wm-controls/hyprland.nix {pkgs = pkgs;};
lofi = import ./wm-controls/lofi.nix {
self = self;
pkgs = pkgs;
};
music = import ./wm-controls/music.nix {
self = self;
pkgs = pkgs;
};
shutdown-script = import ./wm-controls/shutdown-script.nix {
self = self;
pkgs = pkgs;
};
switchmon = import ./wm-controls/switchmon.nix {
self = self;
pkgs = pkgs;
};
toggle_blur = import ./wm-controls/toggle_blur.nix {
self = self;
pkgs = pkgs;
};
toggle_float = import ./wm-controls/toggle_float.nix {
self = self;
pkgs = pkgs;
};
toggle_oppacity = import ./wm-controls/toggle_oppacity.nix {
self = self;
pkgs = pkgs;
};
toggle_waybar = import ./wm-controls/toggle_waybar.nix {
self = self;
pkgs = pkgs;
};
rebuild = import ./nix/rebuild.nix {
host = host;
self = self;
pkgs = pkgs;
};
nixcommit = import ./nix/nixcommit.nix {
host = host;
self = self;
pkgs = pkgs;
};
nixpush = import ./nix/nixpush.nix {
self = self;
pkgs = pkgs;
};
in {
home.packages = [
compress
passhelper
crs
extract
garbage-collect
homep
homer
hyprland
invoke
lofi
mcd
music
nixcommit
nixp
nixpush
nixr
rebuild
nsp
runbg
scheck
shutdown-script
splash
switchmon
toggle_blur
toggle_float
toggle_oppacity
toggle_waybar
];
}

View File

@@ -1,31 +1,32 @@
{ self, pkgs }:
{
self,
pkgs,
}:
pkgs.writeShellScriptBin "garbage-collect" ''
#!/run/current-system/sw/bin/bash
pkgs.writeShellScriptBin "garbage-collect" (''
#!/run/current-system/sw/bin/bash
echo "This will delete all unused paths in the nix store and delete any files in the gtrash folder."
echo -e "\033[1;4;38;2;243;139;168mThis process is irreversible.\033[0m Are you sure?"
select yn in "Yes" "No"; do
case $yn in
Yes ) echo "Sweeping system...";scheck && runbg aplay "$HOME/media/sound/sys/collectgarbage.wav";break;;
No ) echo "Canceling garbage collection."; return;;
esac
done
output=$(nix-collect-garbage | tee /dev/tty)
nix_freed=$(echo "$output" | grep -oP '\d+(\.\d+)? MiB freed' | cut -d' ' -f1)
echo "This will delete all unused paths in the nix store and delete any files in the gtrash folder."
echo -e "\033[1;4;38;2;243;139;168mThis process is irreversible.\033[0m Are you sure?"
select yn in "Yes" "No"; do
case $yn in
Yes ) echo "Sweeping system...";scheck && runbg aplay "$HOME/media/sound/sys/collectgarbage.wav";break;;
No ) echo "Canceling garbage collection."; return;;
esac
done
output=$(nix-collect-garbage | tee /dev/tty)
nix_freed=$(echo "$output" | grep -oP '\d+(\.\d+)? MiB freed' | cut -d' ' -f1)
if [ "$(ls -A ~/.local/share/Trash/files/ 2>/dev/null)" ]; then
rm_freed=$(du ~/.local/share/Trash/files 2> /dev/null | awk '{print $1}')
rm_freed=$(echo "scale=2; $rm_freed / 1000" | bc)
/run/current-system/sw/bin/rm -rfv ~/.local/share/Trash/files
mkdir ~/.local/share/Trash/files
else
rm_freed="0"
fi
total_freed=$(echo "$nix_freed + $rm_freed" | bc)
echo -e "System cleaning complete, freed \033[1;4;38;2;166;227;161m$total_freed MiB\033[0m in total"
scheck && runbg aplay "$HOME/media/sound/sys/rm.wav"
'')
if [ "$(ls -A ~/.local/share/Trash/files/ 2>/dev/null)" ]; then
rm_freed=$(du ~/.local/share/Trash/files 2> /dev/null | awk '{print $1}')
rm_freed=$(echo "scale=2; $rm_freed / 1000" | bc)
/run/current-system/sw/bin/rm -rfv ~/.local/share/Trash/files
mkdir ~/.local/share/Trash/files
else
rm_freed="0"
fi
total_freed=$(echo "$nix_freed + $rm_freed" | bc)
echo -e "System cleaning complete, freed \033[1;4;38;2;166;227;161m$total_freed MiB\033[0m in total"
scheck && runbg aplay "$HOME/media/sound/sys/rm.wav"
''

View File

@@ -1,35 +1,36 @@
{ self, pkgs }:
{
self,
pkgs,
}:
pkgs.writeShellScriptBin "homep" ''
#!/run/current-system/sw/bin/bash
# Ensure the package manifest is generated or updated
if [ ! -f "/tmp/nixpkgs_manifest.txt" ]; then
echo "Generating Nixpkgs manifest..."
nix-env -qaP 2>/dev/null | awk '{print $1}' | sed 's/nixos\.//' > /tmp/nixpkgs_manifest.txt
fi
pkgs.writeShellScriptBin "homep" (''
#!/run/current-system/sw/bin/bash
# Select packages using fzf with multi-select enabled
selected_packages=$(cat /tmp/nixpkgs_manifest.txt | fzf -m)
# Ensure the package manifest is generated or updated
if [ ! -f "/tmp/nixpkgs_manifest.txt" ]; then
echo "Generating Nixpkgs manifest..."
nix-env -qaP 2>/dev/null | awk '{print $1}' | sed 's/nixos\.//' > /tmp/nixpkgs_manifest.txt
fi
# Check if any packages were selected
if [ -n "$selected_packages" ]; then
echo "$selected_packages" | while read -r package; do
# Append each selected package to the Nix config file
sed -i "/^\t]/i \ \t\t$package" "$HOME/sysflakes/glasshouse-desktop/home/userpkgs.nix"
echo "Added $package to the Home Manager configuration."
done
# Select packages using fzf with multi-select enabled
selected_packages=$(cat /tmp/nixpkgs_manifest.txt | fzf -m)
echo "Packages added successfully. Rebuild system config?"
select yn in "Yes" "No"; do
case $yn in
"Yes" ) nixswitch;break;;
"No" ) exit;;
esac
done
# Check if any packages were selected
if [ -n "$selected_packages" ]; then
echo "$selected_packages" | while read -r package; do
# Append each selected package to the Nix config file
sed -i "/^\t]/i \ \t\t$package" "$HOME/sysflakes/glasshouse-desktop/home/userpkgs.nix"
echo "Added $package to the Home Manager configuration."
done
echo "Packages added successfully. Rebuild system config?"
select yn in "Yes" "No"; do
case $yn in
"Yes" ) nixswitch;break;;
"No" ) exit;;
esac
done
else
echo "No packages selected."
fi
'')
else
echo "No packages selected."
fi
''

View File

@@ -1,29 +1,30 @@
{ self, pkgs }:
{
self,
pkgs,
}:
pkgs.writeShellScriptBin "homer" ''
#!/run/current-system/sw/bin/bash
selected_packages=$(sed -n '/\[/,/\]/p' "$HOME/sysflakes/glasshouse-desktop/home/userpkgs.nix" | sed '1d;$d' | fzf -m)
pkgs.writeShellScriptBin "homer" (''
#!/run/current-system/sw/bin/bash
if [ -n "$selected_packages" ]; then
echo "$selected_packages" | while read -r package; do
sed -i "/\b$package\b/d" "$HOME/sysflakes/glasshouse-desktop/home/userpkgs.nix"
echo "Removed $package from the Home Manager configuration."
done
selected_packages=$(sed -n '/\[/,/\]/p' "$HOME/sysflakes/glasshouse-desktop/home/userpkgs.nix" | sed '1d;$d' | fzf -m)
echo "Removed packages. Rebuild system config?"
select yn in "Yes" "No"; do
case $yn in
"Yes" ) nixswitch;break;;
"No" ) exit;;
esac
done
if [ -n "$selected_packages" ]; then
echo "$selected_packages" | while read -r package; do
sed -i "/\b$package\b/d" "$HOME/sysflakes/glasshouse-desktop/home/userpkgs.nix"
echo "Removed $package from the Home Manager configuration."
done
echo "Removed packages. Rebuild system config?"
select yn in "Yes" "No"; do
case $yn in
"Yes" ) nixswitch;break;;
"No" ) exit;;
esac
done
else
echo "No packages removed."
fi
else
echo "No packages removed."
fi
'')
''

View File

@@ -1,46 +1,49 @@
{ self, pkgs, host}:
{
self,
pkgs,
host,
}:
pkgs.writeShellScriptBin "nixcommit" ''
#!/run/current-system/sw/bin/bash
scheck && runbg aplay ${self}/media/sound/nixswitch-start.wav
builtin cd "$HOME/sysflakes" || exit
nix flake update
pkgs.writeShellScriptBin "nixcommit" (''
#!/run/current-system/sw/bin/bash
if [ -n "$2" ]; then
echo "too many arguments"
exit
fi
scheck && runbg aplay ${self}/media/sound/nixswitch-start.wav
builtin cd "$HOME/sysflakes" || exit
nix flake update
diffcheck=$(git status | grep "working tree clean")
if [ -n "$diffcheck" ]; then
scheck && runbg aplay ${self}/media/sound/warning.wav
echo "Nothing to commit"
exit
fi
if [ -n "$2" ]; then
echo "too many arguments"
exit
fi
alejandra . &> /dev/null
git add .
diffcheck=$(git status | grep "working tree clean")
if [ -n "$diffcheck" ]; then
scheck && runbg aplay ${self}/media/sound/warning.wav
echo "Nothing to commit"
exit
fi
# Automatic fixup commit to the most recent commit (HEAD~1)
if [ -z "$1" ]; then
commits=$(git log origin/$(git rev-parse --abbrev-ref HEAD)..HEAD --oneline)
if [ -n "$commits" ]; then
git commit --fixup HEAD
echo "No commit message given"
echo "Squashing into most recent commit"
git rebase --autosquash master
else
echo "No prior local commits to squash into, please provide a commit message"
exit
fi
else
# Generate the system generation number
gen=$(readlink /nix/var/nix/profiles/system | sed 's/.*system-\([0-9]*\)-link/\1/')
gen=$((gen + 1))
git commit -m "(${host}) Gen $gen: $1"
fi
git add .
# Automatic fixup commit to the most recent commit (HEAD~1)
if [ -z "$1" ]; then
commits=$(git log origin/$(git rev-parse --abbrev-ref HEAD)..HEAD --oneline)
if [ -n "$commits" ]; then
git commit --fixup HEAD
echo "No commit message given"
echo "Squashing into most recent commit"
git rebase --autosquash master
else
echo "No prior local commits to squash into, please provide a commit message"
exit
fi
else
# Generate the system generation number
gen=$(readlink /nix/var/nix/profiles/system | sed 's/.*system-\([0-9]*\)-link/\1/')
gen=$((gen + 1))
git commit -m "(${host}) Gen $gen: $1"
fi
scheck && runbg aplay ${self}/media/sound/gitcommit.wav
builtin cd - || exit
'')
scheck && runbg aplay ${self}/media/sound/gitcommit.wav
builtin cd - || exit
''

View File

@@ -1,35 +1,36 @@
{ self, pkgs }:
{
self,
pkgs,
}:
pkgs.writeShellScriptBin "nixp" ''
#!/run/current-system/sw/bin/bash
# Ensure the package manifest is generated or updated
if [ ! -f "/tmp/nixpkgs_manifest.txt" ]; then
echo "Generating Nixpkgs manifest..."
nix-env -qaP 2>/dev/null | awk '{print $1}' | sed 's/nixos\.//' > /tmp/nixpkgs_manifest.txt
fi
pkgs.writeShellScriptBin "nixp" (''
#!/run/current-system/sw/bin/bash
# Select packages using fzf with multi-select enabled
selected_packages=$(cat /tmp/nixpkgs_manifest.txt | fzf -m)
# Ensure the package manifest is generated or updated
if [ ! -f "/tmp/nixpkgs_manifest.txt" ]; then
echo "Generating Nixpkgs manifest..."
nix-env -qaP 2>/dev/null | awk '{print $1}' | sed 's/nixos\.//' > /tmp/nixpkgs_manifest.txt
fi
# Check if any packages were selected
if [ -n "$selected_packages" ]; then
echo "$selected_packages" | while read -r package; do
# Append each selected package to the Nix config file
sed -i "/^\t]/i \ \t\t$package" "$HOME/sysflakes/glasshouse-desktop/sys/packages.nix"
echo "Added $package to the Nix configuration."
done
# Select packages using fzf with multi-select enabled
selected_packages=$(cat /tmp/nixpkgs_manifest.txt | fzf -m)
echo "Packages added successfully. Rebuild system config?"
select yn in "Yes" "No"; do
case $yn in
"Yes" ) nixswitch;break;;
"No" ) exit;;
esac
done
# Check if any packages were selected
if [ -n "$selected_packages" ]; then
echo "$selected_packages" | while read -r package; do
# Append each selected package to the Nix config file
sed -i "/^\t]/i \ \t\t$package" "$HOME/sysflakes/glasshouse-desktop/sys/packages.nix"
echo "Added $package to the Nix configuration."
done
echo "Packages added successfully. Rebuild system config?"
select yn in "Yes" "No"; do
case $yn in
"Yes" ) nixswitch;break;;
"No" ) exit;;
esac
done
else
echo "No packages selected."
fi
'')
else
echo "No packages selected."
fi
''

View File

@@ -1,24 +1,25 @@
{ self, pkgs }:
{
self,
pkgs,
}:
pkgs.writeShellScriptBin "nixpush" ''
#!/run/current-system/sw/bin/bash
scheck && runbg aplay ${self}/media/sound/nixswitch-start.wav
set -e
pushd "$HOME/sysflakes"
pkgs.writeShellScriptBin "nixpush" (''
#!/run/current-system/sw/bin/bash
commits=$(git log origin/$(git rev-parse --abbrev-ref HEAD)..HEAD --oneline)
if [ -z "$commits" ]; then
scheck && runbg aplay ${self}/media/sound/warning.wav
echo "Nothing to push"
exit
fi
scheck && runbg aplay ${self}/media/sound/nixswitch-start.wav
set -e
pushd "$HOME/sysflakes"
echo "Pushing the following commits upstream on branch '$(git branch | rg "\*" | awk '{print $2}')'"
echo "$commits"
commits=$(git log origin/$(git rev-parse --abbrev-ref HEAD)..HEAD --oneline)
if [ -z "$commits" ]; then
scheck && runbg aplay ${self}/media/sound/warning.wav
echo "Nothing to push"
exit
fi
echo "Pushing the following commits upstream on branch '$(git branch | rg "\*" | awk '{print $2}')'"
echo "$commits"
git push
scheck && runbg aplay ${self}/media/sound/gitpush.wav
popd
'')
git push
scheck && runbg aplay ${self}/media/sound/gitpush.wav
popd
''

View File

@@ -1,29 +1,30 @@
{ self, pkgs }:
{
self,
pkgs,
}:
pkgs.writeShellScriptBin "nixr" ''
#!/run/current-system/sw/bin/bash
selected_packages=$(sed -n '/\[/,/\]/p' "$HOME/sysflakes/glasshouse-desktop/sys/packages.nix" | sed '1d;$d' | fzf -m)
pkgs.writeShellScriptBin "nixr" (''
#!/run/current-system/sw/bin/bash
if [ -n "$selected_packages" ]; then
echo "$selected_packages" | while read -r package; do
sed -i "/\b$package\b/d" "$HOME/sysflakes/glasshouse-desktop/sys/packages.nix"
echo "Removed $package from the Nix configuration."
done
selected_packages=$(sed -n '/\[/,/\]/p' "$HOME/sysflakes/glasshouse-desktop/sys/packages.nix" | sed '1d;$d' | fzf -m)
echo "Removed packages. Rebuild system config?"
select yn in "Yes" "No"; do
case $yn in
"Yes" ) nixswitch;break;;
"No" ) exit;;
esac
done
if [ -n "$selected_packages" ]; then
echo "$selected_packages" | while read -r package; do
sed -i "/\b$package\b/d" "$HOME/sysflakes/glasshouse-desktop/sys/packages.nix"
echo "Removed $package from the Nix configuration."
done
echo "Removed packages. Rebuild system config?"
select yn in "Yes" "No"; do
case $yn in
"Yes" ) nixswitch;break;;
"No" ) exit;;
esac
done
else
echo "No packages removed."
fi
else
echo "No packages removed."
fi
'')
''

View File

@@ -1,8 +1,9 @@
{ self, pkgs }:
{
self,
pkgs,
}:
pkgs.writeShellScriptBin "nsp" ''
#!/run/current-system/sw/bin/bash
pkgs.writeShellScriptBin "nsp" (''
#!/run/current-system/sw/bin/bash
nix-shell -p "$@" --run zsh
'')
nix-shell -p "$@" --run zsh
''

View File

@@ -1,20 +1,21 @@
{ host, self, pkgs }:
{
host,
self,
pkgs,
}:
pkgs.writeShellScriptBin "rebuild" ''
#!/run/current-system/sw/bin/bash
scheck && runbg aplay ${self}/media/sound/nixswitch-start.wav
set -e
pushd "$HOME/sysflakes"
pkgs.writeShellScriptBin "rebuild" (''
#!/run/current-system/sw/bin/bash
scheck && runbg aplay ${self}/media/sound/nixswitch-start.wav
set -e
pushd "$HOME/sysflakes"
nix flake update
git diff
sudo nixos-rebuild switch --flake "$HOME/sysflakes#${host}"
if [ $? -eq 0 ]; then
scheck && runbg aplay ${self}/media/sound/update.wav
else
scheck && runbg aplay ${self}/media/sound/error.wav
fi
popd
'')
nix flake update
sudo nixos-rebuild switch --flake "$HOME/sysflakes#${host}"
if [ $? -eq 0 ]; then
scheck && runbg aplay ${self}/media/sound/update.wav
else
scheck && runbg aplay ${self}/media/sound/error.wav
fi
popd
''

View File

@@ -1,10 +1,8 @@
{ pkgs, ... }:
pkgs.writeShellScriptBin "hyprland" (''
export XDG_CONFIG_HOME="$HOME/.config"
export XDG_DATA_HOME="$HOME/.local/share"
export XDG_CACHE_HOME="$HOME/.cache"
exec Hyprland
'')
{pkgs, ...}:
pkgs.writeShellScriptBin "hyprland" ''
export XDG_CONFIG_HOME="$HOME/.config"
export XDG_DATA_HOME="$HOME/.local/share"
export XDG_CACHE_HOME="$HOME/.cache"
exec Hyprland
''

View File

@@ -1,12 +1,13 @@
{ self, pkgs }:
{
self,
pkgs,
}:
pkgs.writeShellScriptBin "lofi" ''
#!/usr/bin/env bash
pkgs.writeShellScriptBin "lofi" (''
#!/usr/bin/env bash
if (ps aux | grep mpv | grep -v grep > /dev/null) then
pkill mpv
else
runbg mpv --no-video https://www.youtube.com/live/jfKfPfyJRdk?si=OF0HKrYFFj33BzMo
fi
'')
if (ps aux | grep mpv | grep -v grep > /dev/null) then
pkill mpv
else
runbg mpv --no-video https://www.youtube.com/live/jfKfPfyJRdk?si=OF0HKrYFFj33BzMo
fi
''

View File

@@ -1,15 +1,16 @@
{ self, pkgs }:
{
self,
pkgs,
}:
pkgs.writeShellScriptBin "music" ''
#!/usr/bin/env bash
pkgs.writeShellScriptBin "music" (''
#!/usr/bin/env bash
if (ps aux | grep audacious | grep -v grep > /dev/null) then
pkill audacious
else
hyprctl dispatch exec "[workspace 5 silent] audacious -t ~/Music/playlist"
sleep 0.5
audtool playlist-repeat-status |grep "on" || audtool playlist-repeat-toggle
audtool playlist-shuffle-status|grep "on" || audtool playlist-shuffle-toggle
fi
'')
if (ps aux | grep audacious | grep -v grep > /dev/null) then
pkill audacious
else
hyprctl dispatch exec "[workspace 5 silent] audacious -t ~/Music/playlist"
sleep 0.5
audtool playlist-repeat-status |grep "on" || audtool playlist-repeat-toggle
audtool playlist-shuffle-status|grep "on" || audtool playlist-shuffle-toggle
fi
''

View File

@@ -1,20 +1,23 @@
{ self, pkgs, ... }:
{
self,
pkgs,
...
}:
pkgs.writeShellScriptBin "passhelper" ''
#!/run/current-system/sw/bin/bash
pkgs.writeShellScriptBin "passhelper" (''
#!/run/current-system/sw/bin/bash
# prevent multiple instances, conditional check happens in the hyprland bind
touch /tmp/passhelperfile
trap "[ -f /tmp/passhelperfile ] && /run/current-system/sw/bin/rm /tmp/passhelperfile" EXIT SIGHUP SIGINT
# prevent multiple instances, conditional check happens in the hyprland bind
touch /tmp/passhelperfile
trap "[ -f /tmp/passhelperfile ] && /run/current-system/sw/bin/rm /tmp/passhelperfile" EXIT SIGHUP SIGINT
# get passwords from password store, remove .password store/ prefix and .gpg suffix, exlude .gpg-id file, open results in fzf
pass_string=$(find $HOME/.password-store -type f | sed 's|.*/.password-store/||; s|\.gpg$||' | sed 's|^\([^/]*\)|\x1b[32m\1\x1b[0m|' | rg -v "\.git|.gpg-id" | sort -r | fzf --border --border-label="$(whoami)'s keyring" --ansi --layout=reverse)
# get passwords from password store, remove .password store/ prefix and .gpg suffix, exlude .gpg-id file, open results in fzf
pass_string=$(find $HOME/.password-store -type f | sed 's|.*/.password-store/||; s|\.gpg$||' | sed 's|^\([^/]*\)|\x1b[32m\1\x1b[0m|' | rg -v "\.git|.gpg-id" | sort -r | fzf --border --border-label="$(whoami)'s keyring" --ansi --layout=reverse)
[ $? = 0 ] || { [ -f /tmp/passhelperfile ] && /run/current-system/sw/bin/rm /tmp/passhelperfile; exit 1; }
[ $? = 0 ] || { [ -f /tmp/passhelperfile ] && /run/current-system/sw/bin/rm /tmp/passhelperfile; exit 1; }
# pass it through fmt for soft word wrapping
pass -c "$pass_string" | fmt -w 45
/run/current-system/sw/bin/rm /tmp/passhelperfile
sleep 0.5
exit 0
'')
# pass it through fmt for soft word wrapping
pass -c "$pass_string" | fmt -w 45
/run/current-system/sw/bin/rm /tmp/passhelperfile
sleep 0.5
exit 0
''

View File

@@ -1,8 +1,9 @@
{ self, pkgs }:
{
self,
pkgs,
}:
pkgs.writeShellScriptBin "power-menu" ''
#!/usr/bin/env bash
pkgs.writeShellScriptBin "power-menu" (''
#!/usr/bin/env bash
rofi -show p -modi p:'rofi-power-menu' -theme-str 'window {width: 10em; height: 15em;} listview {lines: 5;}'
'')
rofi -show p -modi p:'rofi-power-menu' -theme-str 'window {width: 10em; height: 15em;} listview {lines: 5;}'
''

View File

@@ -1,20 +1,21 @@
{ self, pkgs }:
{
self,
pkgs,
}:
pkgs.writeShellScriptBin "shutdown-script" ''
#!/usr/bin/env zsh
respond="$(echo " Shutdown\n Restart\n Cancel" | rofi -dmenu)"
pkgs.writeShellScriptBin "shutdown-script" (''
#!/usr/bin/env zsh
respond="$(echo " Shutdown\n Restart\n Cancel" | rofi -dmenu)"
if [ $respond = ' Shutdown' ]
then
echo "shutdown"
shutdown now
elif [ $respond = ' Restart' ]
then
echo "restart"
reboot
else
notify-send "cancel shutdown"
fi
'')
if [ $respond = ' Shutdown' ]
then
echo "shutdown"
shutdown now
elif [ $respond = ' Restart' ]
then
echo "restart"
reboot
else
notify-send "cancel shutdown"
fi
''

View File

@@ -1,8 +1,9 @@
{ self, pkgs }:
{
self,
pkgs,
}:
pkgs.writeShellScriptBin "switchmon" ''
#!/bin/zsh
pkgs.writeShellScriptBin "switchmon" (''
#!/bin/zsh
hyprctl dispatch focusmonitor $(echo "$(hyprctl -j monitors)" | jq -r '.[] | select(.focused == false) | .name')
'')
hyprctl dispatch focusmonitor $(echo "$(hyprctl -j monitors)" | jq -r '.[] | select(.focused == false) | .name')
''

View File

@@ -1,12 +1,13 @@
{ self, pkgs }:
{
self,
pkgs,
}:
pkgs.writeShellScriptBin "toggle_blur" ''
#!/usr/bin/env bash
pkgs.writeShellScriptBin "toggle_blur" (''
#!/usr/bin/env bash
if hyprctl getoption decoration:blur:enabled | grep "int: 1" >/dev/null ; then
hyprctl keyword decoration:blur:enabled false >/dev/null
else
hyprctl keyword decoration:blur:enabled true >/dev/null
fi
'')
if hyprctl getoption decoration:blur:enabled | grep "int: 1" >/dev/null ; then
hyprctl keyword decoration:blur:enabled false >/dev/null
else
hyprctl keyword decoration:blur:enabled true >/dev/null
fi
''

View File

@@ -1,10 +1,11 @@
{ self, pkgs }:
{
self,
pkgs,
}:
pkgs.writeShellScriptBin "toggle_float" ''
#!/usr/bin/env bash
pkgs.writeShellScriptBin "toggle_float" (''
#!/usr/bin/env bash
hyprctl dispatch togglefloating
hyprctl dispatch resizeactive exact 950 600
hyprctl dispatch centerwindow
'')
hyprctl dispatch togglefloating
hyprctl dispatch resizeactive exact 950 600
hyprctl dispatch centerwindow
''

View File

@@ -1,14 +1,15 @@
{ self, pkgs }:
{
self,
pkgs,
}:
pkgs.writeShellScriptBin "toggle_oppacity" ''
#!/usr/bin/env bash
pkgs.writeShellScriptBin "toggle_oppacity" (''
#!/usr/bin/env bash
if hyprctl getoption decoration:active_opacity | grep "float: 1" >/dev/null ; then
hyprctl keyword decoration:active_opacity 0.90 >/dev/null
hyprctl keyword decoration:inactive_opacity 0.90 >/dev/null
else
hyprctl keyword decoration:active_opacity 1 >/dev/null
hyprctl keyword decoration:inactive_opacity 1 >/dev/null
fi
'')
if hyprctl getoption decoration:active_opacity | grep "float: 1" >/dev/null ; then
hyprctl keyword decoration:active_opacity 0.90 >/dev/null
hyprctl keyword decoration:inactive_opacity 0.90 >/dev/null
else
hyprctl keyword decoration:active_opacity 1 >/dev/null
hyprctl keyword decoration:inactive_opacity 1 >/dev/null
fi
''

View File

@@ -1,15 +1,16 @@
{ self, pkgs }:
{
self,
pkgs,
}:
pkgs.writeShellScriptBin "toggle_waybar" ''
#!/usr/bin/env bash
SERVICE=".waybar-wrapped"
pkgs.writeShellScriptBin "toggle_waybar" (''
#!/usr/bin/env bash
SERVICE=".waybar-wrapped"
if pgrep -x "$SERVICE" >/dev/null
then
pkill -9 waybar
else
runbg waybar
fi
'')
if pgrep -x "$SERVICE" >/dev/null
then
pkill -9 waybar
else
runbg waybar
fi
''

View File

@@ -1,7 +1,5 @@
{ pkgs, ... }:
{
home.packages = (with pkgs; [ swaynotificationcenter ]);
{pkgs, ...}: {
home.packages = with pkgs; [swaynotificationcenter];
xdg.configFile."swaync/style.css".source = ./style.css;
xdg.configFile."swaync/config.json".source = ./config.json;
}

View File

@@ -1,7 +1,6 @@
{ ... }:
{
imports = [ (import ./waybar.nix) ]
++ [ (import ./settings.nix) ]
++ [ (import ./style.nix) ];
{...}: {
imports =
[(import ./waybar.nix)]
++ [(import ./settings.nix)]
++ [(import ./style.nix)];
}

View File

@@ -1,149 +1,147 @@
{ ... }:
{
{...}: {
programs.waybar.settings.mainBar = {
position= "top";
layer= "top";
height= 5;
margin-top= 0;
margin-bottom= 0;
margin-left= 0;
margin-right= 0;
modules-left= [
"custom/launcher"
"custom/separator"
"hyprland/workspaces"
position = "top";
layer = "top";
height = 5;
margin-top = 0;
margin-bottom = 0;
margin-left = 0;
margin-right = 0;
modules-left = [
"custom/launcher"
"custom/separator"
"hyprland/workspaces"
];
modules-center= [
"clock"
modules-center = [
"clock"
];
modules-right= [
"tray"
"custom/separator"
"cpu"
"memory"
"disk"
"custom/separator"
"pulseaudio"
"battery"
"network"
"custom/separator"
"custom/notification"
modules-right = [
"tray"
"custom/separator"
"cpu"
"memory"
"disk"
"custom/separator"
"pulseaudio"
"battery"
"network"
"custom/separator"
"custom/notification"
];
clock= {
calendar = {
format = { today = "<span color='#b4befe'><b><u>{}</u></b></span>"; };
};
format = " {:%H:%M}";
tooltip= "true";
tooltip-format= "<big>{:%Y %B}</big>\n<tt><small>{calendar}</small></tt>";
format-alt= " {:%d/%m}";
clock = {
calendar = {
format = {today = "<span color='#b4befe'><b><u>{}</u></b></span>";};
};
format = " {:%H:%M}";
tooltip = "true";
tooltip-format = "<big>{:%Y %B}</big>\n<tt><small>{calendar}</small></tt>";
format-alt = " {:%d/%m}";
};
"hyprland/workspaces"= {
active-only= false;
disable-scroll= true;
format = "{icon}";
on-click= "activate";
format-icons= {
"1"= "";
"2"= "";
"3"= "";
"4"= "";
"5"= "";
"6"= "";
urgent= "";
default = "";
sort-by-number= true;
};
persistent-workspaces = {
"1"= [];
"2"= [];
"3"= [];
"4"= [];
"5"= [];
"6"= [];
};
"hyprland/workspaces" = {
active-only = false;
disable-scroll = true;
format = "{icon}";
on-click = "activate";
format-icons = {
"1" = "";
"2" = "";
"3" = "";
"4" = "";
"5" = "";
"6" = "";
urgent = "";
default = "";
sort-by-number = true;
};
persistent-workspaces = {
"1" = [];
"2" = [];
"3" = [];
"4" = [];
"5" = [];
"6" = [];
};
};
memory= {
format= "󰟜 {}%";
format-alt= "󰟜 {used} GiB"; # 
interval= 2;
memory = {
format = "󰟜 {}%";
format-alt = "󰟜 {used} GiB"; # 
interval = 2;
};
cpu= {
format= " {usage}%";
format-alt= " {avg_frequency} GHz";
interval= 2;
cpu = {
format = " {usage}%";
format-alt = " {avg_frequency} GHz";
interval = 2;
};
disk = {
# path = "/";
format = "󰋊 {percentage_used}%";
interval= 60;
# path = "/";
format = "󰋊 {percentage_used}%";
interval = 60;
};
network = {
format-wifi = " {signalStrength}%";
format-ethernet = "󰀂 ";
tooltip-format = "Connected to {essid} {ifname} via {gwaddr}";
format-linked = "{ifname} (No IP)";
format-disconnected = "󰖪 ";
format-wifi = " {signalStrength}%";
format-ethernet = "󰀂 ";
tooltip-format = "Connected to {essid} {ifname} via {gwaddr}";
format-linked = "{ifname} (No IP)";
format-disconnected = "󰖪 ";
};
tray= {
icon-size= 20;
spacing= 8;
tray = {
icon-size = 20;
spacing = 8;
};
pulseaudio= {
format= "{icon} {volume}%";
format-muted= " {volume}%";
format-icons= {
default= [" "];
};
scroll-step= 5;
on-click= "pamixer -t";
on-click-right= "pavucontrol";
pulseaudio = {
format = "{icon} {volume}%";
format-muted = " {volume}%";
format-icons = {
default = [" "];
};
scroll-step = 5;
on-click = "pamixer -t";
on-click-right = "pavucontrol";
};
battery = {
format = "{icon} {capacity}%";
format-icons = [" " " " " " " " " "];
format-charging = " {capacity}%";
format-full = " {capacity}%";
format-warning = " {capacity}%";
interval = 5;
states = {
warning = 20;
};
format-time = "{H}h{M}m";
tooltip = true;
tooltip-format = "{time}";
format = "{icon} {capacity}%";
format-icons = [" " " " " " " " " "];
format-charging = " {capacity}%";
format-full = " {capacity}%";
format-warning = " {capacity}%";
interval = 5;
states = {
warning = 20;
};
format-time = "{H}h{M}m";
tooltip = true;
tooltip-format = "{time}";
};
"custom/launcher"= {
format= "";
on-click= "fuzzel";
on-click-right= "wallpaper-picker";
tooltip= "false";
"custom/launcher" = {
format = "";
on-click = "fuzzel";
on-click-right = "wallpaper-picker";
tooltip = "false";
};
"custom/notification" = {
tooltip = false;
format = "{icon} ";
format-icons = {
notification = "<span foreground='red'><sup></sup></span> ";
none = " ";
dnd-notification = "<span foreground='red'><sup></sup></span> ";
dnd-none = " ";
inhibited-notification = "<span foreground='red'><sup></sup></span> ";
inhibited-none = " ";
dnd-inhibited-notification = "<span foreground='red'><sup></sup></span> ";
dnd-inhibited-none = " ";
};
return-type = "json";
exec-if = "which swaync-client";
exec = "swaync-client -swb";
on-click = "swaync-client -t -sw";
on-click-right = "swaync-client -d -sw";
escape = true;
tooltip = false;
format = "{icon} ";
format-icons = {
notification = "<span foreground='red'><sup></sup></span> ";
none = " ";
dnd-notification = "<span foreground='red'><sup></sup></span> ";
dnd-none = " ";
inhibited-notification = "<span foreground='red'><sup></sup></span> ";
inhibited-none = " ";
dnd-inhibited-notification = "<span foreground='red'><sup></sup></span> ";
dnd-inhibited-none = " ";
};
return-type = "json";
exec-if = "which swaync-client";
exec = "swaync-client -swb";
on-click = "swaync-client -t -sw";
on-click-right = "swaync-client -d -sw";
escape = true;
};
"custom/separator" = {
exec = "echo ' | '";
interval = 600;
tooltip = false;
};
"custom/separator" = {
exec = "echo ' | '";
interval = 600;
tooltip = false;
};
};
}

View File

@@ -1,6 +1,5 @@
{ ... }:
let custom = {
{...}: let
custom = {
font = "JetBrainsMono Nerd Font";
font_size = "22px";
font_weight = "bold";
@@ -8,93 +7,92 @@ let custom = {
secondary_accent = "#89b4fa";
tertiary_accent = "#f5f5f5";
background = "#11111B";
};
in
{
};
in {
programs.waybar.style = ''
* {
border: none;
border-radius: 0px;
padding: 0;
margin: 0;
min-height: 0px;
font-family: ${custom.font};
font-weight: ${custom.font_weight};
}
* {
border: none;
border-radius: 0px;
padding: 0;
margin: 0;
min-height: 0px;
font-family: ${custom.font};
font-weight: ${custom.font_weight};
}
window#waybar {
background: ${custom.background};
}
window#waybar {
background: ${custom.background};
}
#workspaces {
font-size: ${custom.font_size};
#workspaces {
font-size: ${custom.font_size};
}
#workspaces button {
color: ${custom.text_color};
padding-left: 6px;
padding-right: 6px;
}
#workspaces button.empty {
color: #6c7086;
}
#workspaces button.active {
color: #b4befe;
}
}
#workspaces button {
color: ${custom.text_color};
padding-left: 6px;
padding-right: 6px;
}
#workspaces button.empty {
color: #6c7086;
}
#workspaces button.active {
color: #b4befe;
}
#tray, #pulseaudio, #network, #cpu, #memory, #disk, #clock, #battery, #custom-notification {
font-size: ${custom.font_size};
color: ${custom.text_color};
}
#tray, #pulseaudio, #network, #cpu, #memory, #disk, #clock, #battery, #custom-notification {
font-size: ${custom.font_size};
color: ${custom.text_color};
}
#cpu {
padding-left: 5px;
padding-right: 9px;
}
#memory {
padding-left: 9px;
padding-right: 9px;
}
#disk {
padding-left: 9px;
padding-right: 5px;
}
#cpu {
padding-left: 5px;
padding-right: 9px;
}
#memory {
padding-left: 9px;
padding-right: 9px;
}
#disk {
padding-left: 9px;
padding-right: 5px;
}
#tray {
margin-left: 7px;
padding-right: 5px;
}
#tray {
margin-left: 7px;
padding-right: 5px;
}
#pulseaudio {
padding-left: 5px;
padding-right: 9px;
}
#battery {
padding-left: 9px;
padding-right: 9px;
}
#network {
padding-left: 9px;
padding-right: 5px;
}
#pulseaudio {
padding-left: 5px;
padding-right: 9px;
}
#battery {
padding-left: 9px;
padding-right: 9px;
}
#network {
padding-left: 9px;
padding-right: 5px;
}
custom-notification {
padding-left: 15px;
padding-right: 20px;
}
custom-notification {
padding-left: 15px;
padding-right: 20px;
}
#clock {
padding-left: 9px;
padding-right: 15px;
}
#clock {
padding-left: 9px;
padding-right: 15px;
}
#custom-launcher {
font-size: ${custom.font_size};
color: #b4befe;
font-weight: ${custom.font_weight};
padding-left: 10px;
padding-right: 15px;
}
#custom-launcher {
font-size: ${custom.font_size};
color: #b4befe;
font-weight: ${custom.font_weight};
padding-left: 10px;
padding-right: 15px;
}
'';
}

View File

@@ -1,10 +1,8 @@
{ pkgs, ... }:
{
{pkgs, ...}: {
programs.waybar = {
enable = true;
};
programs.waybar.package = pkgs.waybar.overrideAttrs (oa: {
mesonFlags = (oa.mesonFlags or [ ]) ++ [ "-Dexperimental=true" ];
mesonFlags = (oa.mesonFlags or []) ++ ["-Dexperimental=true"];
});
}

View File

@@ -1,13 +1,19 @@
{ inputs, nixpkgs, config, self, username, host, ... }:
{
imports =
[ (import ./hardware/bootloader.nix) ]
++ [ (import ./hardware/network.nix) ]
++ [ (import ./software/fonts.nix) ]
++ [ (import ./software/sddm.nix) ]
++ [ (import ./software/packages.nix) ]
++ [ (import ./software/programs.nix) ]
++ [ (import ./software/services.nix) ]
++ [ (import ./software/users.nix) ];
inputs,
nixpkgs,
config,
self,
username,
host,
...
}: {
imports =
[(import ./hardware/bootloader.nix)]
++ [(import ./hardware/network.nix)]
++ [(import ./software/fonts.nix)]
++ [(import ./software/sddm.nix)]
++ [(import ./software/packages.nix)]
++ [(import ./software/programs.nix)]
++ [(import ./software/services.nix)]
++ [(import ./software/users.nix)];
}

View File

@@ -1,10 +1,8 @@
{ pkgs, ... }:
{
boot = {
loader.systemd-boot.enable = true;
loader.efi.canTouchEfiVariables = true;
loader.systemd-boot.configurationLimit = 10;
kernelPackages = pkgs.linuxPackages_latest;
};
{pkgs, ...}: {
boot = {
loader.systemd-boot.enable = true;
loader.efi.canTouchEfiVariables = true;
loader.systemd-boot.configurationLimit = 10;
kernelPackages = pkgs.linuxPackages_latest;
};
}

View File

@@ -1,18 +1,18 @@
{ host, ... }:
{
networking = {
networkmanager.enable = true;
hostName = if (host == "desktop") then
"argon" else "mercury";
hosts = {
"192.168.1.163" = [ "glasshaus" ];
"192.168.1.111" = [ "argon" ];
"192.168.1.223" = [ "mercury" ];
};
firewall = {
enable = true;
allowedTCPPorts = [ 30000 ];
};
};
{host, ...}: {
networking = {
networkmanager.enable = true;
hostName =
if (host == "desktop")
then "argon"
else "mercury";
hosts = {
"192.168.1.163" = ["glasshaus"];
"192.168.1.111" = ["argon"];
"192.168.1.223" = ["mercury"];
};
firewall = {
enable = true;
allowedTCPPorts = [30000];
};
};
}

View File

@@ -1,9 +1,7 @@
{ pkgs, ... }:
{
fonts.packages = with pkgs; [
times-newer-roman
nerdfonts
jetbrains-mono
];
{pkgs, ...}: {
fonts.packages = with pkgs; [
times-newer-roman
nerdfonts
jetbrains-mono
];
}

View File

@@ -1,71 +1,74 @@
{ pkgs, inputs, ... }:
{
environment.systemPackages = with pkgs; [
alsa-lib
alsa-utils
bc
cava
clang
clang-tools
cmake
fail2ban
feh
ffmpeg-full
fuse
git
gnumake
gst_all_1.gstreamer
htop
hyprland
hyprland-workspaces
hyprpaper
hyprpicker
imagemagick
inetutils
kitty
libclang
libcxx
lolcat
lsof
lua-language-server
luarocks
mesa
mpd
mullvad
neofetch
nix-index
nix-prefetch-scripts
nixos-option
nix-search-cli
openssl
p7zip
jq
pamixer
parted
pavucontrol
pkg-config
playerctl
protonmail-bridge
protontricks
pyright
quintom-cursor-theme
socat
sox
stress
tor
tree
unrar
unzip
usbutils
vim
vscode-langservers-extracted
vulkan-loader
wget
wine
wl-clipboard
xpad
libnotify
file
];
pkgs,
inputs,
...
}: {
environment.systemPackages = with pkgs; [
alejandra
alsa-lib
alsa-utils
bc
cava
clang
clang-tools
cmake
fail2ban
feh
ffmpeg-full
fuse
git
gnumake
gst_all_1.gstreamer
htop
hyprland
hyprland-workspaces
hyprpaper
hyprpicker
imagemagick
inetutils
kitty
libclang
libcxx
lolcat
lsof
lua-language-server
luarocks
mesa
mpd
mullvad
neofetch
nix-index
nix-prefetch-scripts
nixos-option
nix-search-cli
openssl
p7zip
jq
pamixer
parted
pavucontrol
pkg-config
playerctl
protonmail-bridge
protontricks
pyright
quintom-cursor-theme
socat
sox
stress
tor
tree
unrar
unzip
usbutils
vim
vscode-langservers-extracted
vulkan-loader
wget
wine
wl-clipboard
xpad
libnotify
file
];
}

View File

@@ -1,19 +1,17 @@
{ pkgs, ... }:
{
programs = {
hyprland.enable = true;
zsh.enable = true;
nix-ld = {
enable = true;
libraries = with pkgs; [
stdenv.cc.cc
ffmpeg-full
];
};
gnupg.agent = {
enable = true;
enableSSHSupport = true;
};
};
{pkgs, ...}: {
programs = {
hyprland.enable = true;
zsh.enable = true;
nix-ld = {
enable = true;
libraries = with pkgs; [
stdenv.cc.cc
ffmpeg-full
];
};
gnupg.agent = {
enable = true;
enableSSHSupport = true;
};
};
}

View File

@@ -1,18 +1,23 @@
{ pkgs, self, config, ... }:
{
environment.systemPackages = [(
pkgs.catppuccin-sddm.override {
flavor="mocha";
font="JetBrains Mono";
fontSize="9";
background="${self}/media/wallpapers/catppuccin/nixos-catppuccin.png";
}
)];
services.displayManager.sddm = {
enable = true;
wayland.enable = true;
theme = "catppuccin-mocha";
package = pkgs.kdePackages.sddm;
};
pkgs,
self,
config,
...
}: {
environment.systemPackages = [
(
pkgs.catppuccin-sddm.override {
flavor = "mocha";
font = "JetBrains Mono";
fontSize = "9";
background = "${self}/media/wallpapers/catppuccin/nixos-catppuccin.png";
}
)
];
services.displayManager.sddm = {
enable = true;
wayland.enable = true;
theme = "catppuccin-mocha";
package = pkgs.kdePackages.sddm;
};
}

View File

@@ -1,18 +1,16 @@
{ pkgs, ...}:
{
services = {
pipewire = {
enable = true;
pulse.enable = true;
wireplumber.enable = true;
alsa.enable = true;
alsa.support32Bit = true;
};
udev.enable = true;
dbus.enable = true;
mullvad-vpn.enable = true;
blueman.enable = true;
openssh.enable = true;
};
{pkgs, ...}: {
services = {
pipewire = {
enable = true;
pulse.enable = true;
wireplumber.enable = true;
alsa.enable = true;
alsa.support32Bit = true;
};
udev.enable = true;
dbus.enable = true;
mullvad-vpn.enable = true;
blueman.enable = true;
openssh.enable = true;
};
}

View File

@@ -1,37 +1,42 @@
{ config, inputs, pkgs, username, self, host, ... }:
let
nur = config.nur;
in
{
imports = [ inputs.home-manager.nixosModules.home-manager ];
home-manager = {
useUserPackages = true;
useGlobalPkgs = true;
backupFileExtension = "backup";
extraSpecialArgs = { inherit self inputs host username nur; };
users.${username} = {
programs.home-manager.enable = true;
imports = [ ./../../home ];
home = {
username = "${username}";
homeDirectory = "/home/${username}";
stateVersion = "24.05";
pointerCursor = {
name = "Quintom_Ink";
size = 36;
package = pkgs.quintom-cursor-theme;
};
};
};
};
users.users.${username} = {
isNormalUser = true;
shell = pkgs.zsh;
extraGroups = [ "wheel" ];
};
security.sudo.extraConfig = ''
${username} ALL=(ALL) NOPASSWD: /run/current-system/sw/bin/nixos-rebuild
'';
nix.settings.allowed-users = [ "${username}" ];
config,
inputs,
pkgs,
username,
self,
host,
...
}: let
nur = config.nur;
in {
imports = [inputs.home-manager.nixosModules.home-manager];
home-manager = {
useUserPackages = true;
useGlobalPkgs = true;
backupFileExtension = "backup";
extraSpecialArgs = {inherit self inputs host username nur;};
users.${username} = {
programs.home-manager.enable = true;
imports = [./../../home];
home = {
username = "${username}";
homeDirectory = "/home/${username}";
stateVersion = "24.05";
pointerCursor = {
name = "Quintom_Ink";
size = 36;
package = pkgs.quintom-cursor-theme;
};
};
};
};
users.users.${username} = {
isNormalUser = true;
shell = pkgs.zsh;
extraGroups = ["wheel"];
};
security.sudo.extraConfig = ''
${username} ALL=(ALL) NOPASSWD: /run/current-system/sw/bin/nixos-rebuild
'';
nix.settings.allowed-users = ["${username}"];
}

View File

@@ -1,24 +1,24 @@
{
autoCmd = [
{
command = "FloatermNew --wintype=float --name=shadeterm --position=topright --autoclose=0 --silent --cwd=<buffer> --titleposition=left zsh";
event = [ "VimEnter" ];
pattern = [ "*" ];
}
{
command = "silent! mkview";
event = [ "BufWinLeave" ];
pattern = [ "*" ];
}
{
command = "silent! !aplay ~/sound/sys/cd.wav > /dev/null 2>&1 &";
event = [ "BufWinLeave" ];
pattern = [ "*" ];
}
{
command = "silent! loadview";
event = [ "BufWinEnter" ];
pattern = [ "*" ];
}
];
autoCmd = [
{
command = "FloatermNew --wintype=float --name=shadeterm --position=topright --autoclose=0 --silent --cwd=<buffer> --titleposition=left zsh";
event = ["VimEnter"];
pattern = ["*"];
}
{
command = "silent! mkview";
event = ["BufWinLeave"];
pattern = ["*"];
}
{
command = "silent! !aplay ~/sound/sys/cd.wav > /dev/null 2>&1 &";
event = ["BufWinLeave"];
pattern = ["*"];
}
{
command = "silent! loadview";
event = ["BufWinEnter"];
pattern = ["*"];
}
];
}

View File

@@ -1,19 +1,18 @@
{
imports = [
./plugins/alpha.nix
./plugins/vim-matchup.nix
./plugins/coq.nix
./plugins/barbar.nix
./plugins/cmp.nix
./plugins/lsp.nix
./plugins/lualine.nix
./plugins/plugins.nix
./plugins/nvim-tree.nix
./plugins/telescope.nix
./plugins/extra_plugins.nix
./options.nix
./keymaps.nix
./autocmd.nix
];
imports = [
./plugins/alpha.nix
./plugins/vim-matchup.nix
./plugins/coq.nix
./plugins/barbar.nix
./plugins/cmp.nix
./plugins/lsp.nix
./plugins/lualine.nix
./plugins/plugins.nix
./plugins/nvim-tree.nix
./plugins/telescope.nix
./plugins/extra_plugins.nix
./options.nix
./keymaps.nix
./autocmd.nix
];
}

View File

@@ -1,29 +1,29 @@
{
keymaps = [
{
action = "<C-W>W";
key = "<S-Tab>";
mode = "n";
}
{
action = "<C-w>w";
key = "<Tab>";
mode = "n";
}
{
action = "<cmd>FloatermToggle shadeterm<CR>";
key = "<F2>";
mode = "n";
}
{
action = "<cmd>NvimTreeToggle<CR>";
key = "<F3>";
mode = "n";
}
{
action = "<cmd>FloatermToggle shadeterm<CR>";
key = "<F2>";
mode = "t";
}
];
keymaps = [
{
action = "<C-W>W";
key = "<S-Tab>";
mode = "n";
}
{
action = "<C-w>w";
key = "<Tab>";
mode = "n";
}
{
action = "<cmd>FloatermToggle shadeterm<CR>";
key = "<F2>";
mode = "n";
}
{
action = "<cmd>NvimTreeToggle<CR>";
key = "<F3>";
mode = "n";
}
{
action = "<cmd>FloatermToggle shadeterm<CR>";
key = "<F2>";
mode = "t";
}
];
}

View File

@@ -1,41 +1,41 @@
{
colorschemes = {
catppuccin = {
enable = true;
settings.flavour = "mocha";
};
kanagawa = {
enable = false;
};
};
colorschemes = {
catppuccin = {
enable = true;
settings.flavour = "mocha";
};
kanagawa = {
enable = false;
};
};
diagnostics.signs = false;
extraConfigLua = ''
if vim.g.started_by_firenvim == true then
vim.o.laststatus = 0
end
if vim.g.neovide then
vim.g.neovide_refresh_rate = 144
vim.g.neovide_cursor_vfx_mode = "sonicboom"
vim.g.neovide_cursor_animate_in_insert_mode = false
end
diagnostics.signs = false;
extraConfigLua = ''
if vim.g.started_by_firenvim == true then
vim.o.laststatus = 0
end
if vim.g.neovide then
vim.g.neovide_refresh_rate = 144
vim.g.neovide_cursor_vfx_mode = "sonicboom"
vim.g.neovide_cursor_animate_in_insert_mode = false
end
vim.opt.number = true
vim.opt.relativenumber = true
vim.opt.hlsearch = true
vim.opt.incsearch = true
vim.opt.shiftwidth = 4
vim.opt.tabstop = 4
vim.opt.termguicolors = true
vim.opt.ruler = true
vim.opt.scrolloff = 6
vim.opt.undofile = true
vim.opt.foldmethod = "manual"
vim.opt.wrap = true
vim.opt.linebreak = true
vim.opt.textwidth = 135
vim.opt.breakat = " \t!@*-+;:,./?"
vim.opt.number = true
vim.opt.relativenumber = true
vim.opt.hlsearch = true
vim.opt.incsearch = true
vim.opt.shiftwidth = 4
vim.opt.tabstop = 4
vim.opt.termguicolors = true
vim.opt.ruler = true
vim.opt.scrolloff = 6
vim.opt.undofile = true
vim.opt.foldmethod = "manual"
vim.opt.wrap = true
vim.opt.linebreak = true
vim.opt.textwidth = 135
vim.opt.breakat = " \t!@*-+;:,./?"
vim.g.mapleader = "!"
'';
vim.g.mapleader = "!"
'';
}

View File

@@ -1,6 +1,6 @@
{
plugins.alpha = {
enable = true;
theme = "dashboard";
};
plugins.alpha = {
enable = true;
theme = "dashboard";
};
}

View File

@@ -1,8 +1,8 @@
{
plugins.barbar = {
enable = true;
settings = {
auto_hide = 1;
};
};
plugins.barbar = {
enable = true;
settings = {
auto_hide = 1;
};
};
}

View File

@@ -1,10 +1,10 @@
{
plugins.cmp = {
autoEnableSources = true;
settings.sources = [
{ name = "nvim_lsp"; }
{ name = "path"; }
{ name = "buffer"; }
];
};
plugins.cmp = {
autoEnableSources = true;
settings.sources = [
{name = "nvim_lsp";}
{name = "path";}
{name = "buffer";}
];
};
}

View File

@@ -1,8 +1,8 @@
{
plugins.coq-nvim = {
enable = true;
settings = {
auto_start = true;
};
};
plugins.coq-nvim = {
enable = true;
settings = {
auto_start = true;
};
};
}

View File

@@ -1,51 +1,50 @@
{ pkgs, ... }:
{
extraPlugins = [
(pkgs.vimUtils.buildVimPlugin { # vimwiki
name = "vimwiki";
src = pkgs.fetchFromGitHub {
owner = "vimwiki";
repo = "vimwiki";
rev = "705ad1e0dded0e3b7ff5fac78547ab67c9d39bdf";
hash = "sha256-Upx29rIPwW/e7Lkmf0PNOpIACnAXIzlkfa6V1p2nYHM=";
};
})
(pkgs.vimUtils.buildVimPlugin {
name = "vim-markdown";
src = pkgs.fetchFromGitHub {
owner = "preservim";
repo = "vim-markdown";
rev = "8f6cb3a6ca4e3b6bcda0730145a0b700f3481b51";
hash = "sha256-ZCCSjZ5Xok4rnIwfa4VUEaz6d3oW9066l0EkoqiTppM=";
};
})
(pkgs.vimUtils.buildVimPlugin {
name = "vim-sneak";
src = pkgs.fetchFromGitHub {
owner = "justinmk";
repo = "vim-sneak";
rev = "c13d0497139b8796ff9c44ddb9bc0dc9770ad2dd";
hash = "sha256-ndWhnV0fgCcqCGwVyM07GfmUB3CitBZbOWvZtsB1tBk=";
};
})
(pkgs.vimUtils.buildVimPlugin {
name = "vim-slash";
src = pkgs.fetchFromGitHub {
owner = "junegunn";
repo = "vim-slash";
rev = "31aee09b7ea8893a18fa34f65e63e364fc998444";
hash = "sha256-hC590lmKBssLCSKPF9O2cnt6TCJkklzbbhDNhf1ozUU=";
};
})
(pkgs.vimUtils.buildVimPlugin {
name = "automkdir.nvim";
src = pkgs.fetchFromGitHub {
owner = "mateuszwieloch";
repo = "automkdir.nvim";
rev = "beeb2dd76f1c3ac776d901c43217a774f1f045de";
hash = "sha256-lKSCZ80b/+OV56858FDK7x/zhcuU/AWuCDe+8NdhziU=";
};
})
];
{pkgs, ...}: {
extraPlugins = [
(pkgs.vimUtils.buildVimPlugin {
# vimwiki
name = "vimwiki";
src = pkgs.fetchFromGitHub {
owner = "vimwiki";
repo = "vimwiki";
rev = "705ad1e0dded0e3b7ff5fac78547ab67c9d39bdf";
hash = "sha256-Upx29rIPwW/e7Lkmf0PNOpIACnAXIzlkfa6V1p2nYHM=";
};
})
(pkgs.vimUtils.buildVimPlugin {
name = "vim-markdown";
src = pkgs.fetchFromGitHub {
owner = "preservim";
repo = "vim-markdown";
rev = "8f6cb3a6ca4e3b6bcda0730145a0b700f3481b51";
hash = "sha256-ZCCSjZ5Xok4rnIwfa4VUEaz6d3oW9066l0EkoqiTppM=";
};
})
(pkgs.vimUtils.buildVimPlugin {
name = "vim-sneak";
src = pkgs.fetchFromGitHub {
owner = "justinmk";
repo = "vim-sneak";
rev = "c13d0497139b8796ff9c44ddb9bc0dc9770ad2dd";
hash = "sha256-ndWhnV0fgCcqCGwVyM07GfmUB3CitBZbOWvZtsB1tBk=";
};
})
(pkgs.vimUtils.buildVimPlugin {
name = "vim-slash";
src = pkgs.fetchFromGitHub {
owner = "junegunn";
repo = "vim-slash";
rev = "31aee09b7ea8893a18fa34f65e63e364fc998444";
hash = "sha256-hC590lmKBssLCSKPF9O2cnt6TCJkklzbbhDNhf1ozUU=";
};
})
(pkgs.vimUtils.buildVimPlugin {
name = "automkdir.nvim";
src = pkgs.fetchFromGitHub {
owner = "mateuszwieloch";
repo = "automkdir.nvim";
rev = "beeb2dd76f1c3ac776d901c43217a774f1f045de";
hash = "sha256-lKSCZ80b/+OV56858FDK7x/zhcuU/AWuCDe+8NdhziU=";
};
})
];
}

View File

@@ -1,18 +1,18 @@
{
plugins.lsp = {
enable = true;
servers = {
bashls.enable = true;
ccls.enable = true;
clangd.enable = true;
cmake.enable = true;
html.enable = true;
jsonls.enable = true;
lua-ls.enable = true;
marksman.enable = true;
nil-ls.enable = true;
pyright.enable = true;
sqls.enable = true;
};
};
plugins.lsp = {
enable = true;
servers = {
bashls.enable = true;
ccls.enable = true;
clangd.enable = true;
cmake.enable = true;
html.enable = true;
jsonls.enable = true;
lua-ls.enable = true;
marksman.enable = true;
nil-ls.enable = true;
pyright.enable = true;
sqls.enable = true;
};
};
}

View File

@@ -1,36 +1,42 @@
{
plugins.lualine = {
enable = true;
settings = {
options = {
icons_enabled = true;
theme = "auto";
component_separators = {left = ""; right = "";};
section_separators = {left = ""; right = "";};
always_divide_middle = true;
globalstatus = false;
refresh = {
statusline = 1000;
tabline = 1000;
winbar = 1000;
};
};
sections = {
lualine_a = ["mode"];
lualine_b = ["buffers"];
lualine_c = [""];
lualine_x = ["searchcount" "fileformat" "filetype"];
lualine_y = ["branch" "diff" "diagnostics"];
lualine_z = ["location"];
};
inactive_sections = {
lualine_a = [];
lualine_b = [];
lualine_c = ["filename"];
lualine_x = ["location"];
lualine_y = [];
lualine_z = [];
};
};
};
plugins.lualine = {
enable = true;
settings = {
options = {
icons_enabled = true;
theme = "auto";
component_separators = {
left = "";
right = "";
};
section_separators = {
left = "";
right = "";
};
always_divide_middle = true;
globalstatus = false;
refresh = {
statusline = 1000;
tabline = 1000;
winbar = 1000;
};
};
sections = {
lualine_a = ["mode"];
lualine_b = ["buffers"];
lualine_c = [""];
lualine_x = ["searchcount" "fileformat" "filetype"];
lualine_y = ["branch" "diff" "diagnostics"];
lualine_z = ["location"];
};
inactive_sections = {
lualine_a = [];
lualine_b = [];
lualine_c = ["filename"];
lualine_x = ["location"];
lualine_y = [];
lualine_z = [];
};
};
};
}

View File

@@ -1,84 +1,86 @@
{
plugins.nvim-tree = {
enable = true;
hijackUnnamedBufferWhenOpening = false;
openOnSetup = false;
onAttach = { __raw = ''
function(bufnr)
local api = require('nvim-tree.api')
plugins.nvim-tree = {
enable = true;
hijackUnnamedBufferWhenOpening = false;
openOnSetup = false;
onAttach = {
__raw = ''
function(bufnr)
local api = require('nvim-tree.api')
local function opts(desc)
return { desc = 'nvim-tree: ' .. desc, buffer = bufnr, noremap = true, silent = true, nowait = true }
end
local function opts(desc)
return { desc = 'nvim-tree: ' .. desc, buffer = bufnr, noremap = true, silent = true, nowait = true }
end
-- BEGIN_DEFAULT_ON_ATTACH
vim.keymap.set('n', '<C-]>', api.tree.change_root_to_node, opts('CD'))
vim.keymap.set('n', '<C-e>', api.node.open.replace_tree_buffer, opts('Open: In Place'))
vim.keymap.set('n', '<C-k>', api.node.show_info_popup, opts('Info'))
vim.keymap.set('n', '<C-r>', api.fs.rename_sub, opts('Rename: Omit Filename'))
vim.keymap.set('n', '<C-t>', api.node.open.tab, opts('Open: New Tab'))
vim.keymap.set('n', '<C-v>', api.node.open.vertical, opts('Open: Vertical Split'))
vim.keymap.set('n', '<C-x>', api.node.open.horizontal, opts('Open: Horizontal Split'))
vim.keymap.set('n', '<BS>', api.node.navigate.parent_close, opts('Close Directory'))
vim.keymap.set('n', '<CR>', api.node.open.edit, opts('Open'))
vim.keymap.set('n', 'b', api.node.open.preview, opts('Open Preview'))
vim.keymap.set('n', '>', api.node.navigate.sibling.next, opts('Next Sibling'))
vim.keymap.set('n', '<', api.node.navigate.sibling.prev, opts('Previous Sibling'))
vim.keymap.set('n', '.', api.node.run.cmd, opts('Run Command'))
vim.keymap.set('n', '-', api.tree.change_root_to_parent, opts('Up'))
vim.keymap.set('n', 'a', api.fs.create, opts('Create File Or Directory'))
vim.keymap.set('n', 'bd', api.marks.bulk.delete, opts('Delete Bookmarked'))
vim.keymap.set('n', 'bt', api.marks.bulk.trash, opts('Trash Bookmarked'))
vim.keymap.set('n', 'bmv', api.marks.bulk.move, opts('Move Bookmarked'))
vim.keymap.set('n', 'B', api.tree.toggle_no_buffer_filter, opts('Toggle Filter: No Buffer'))
vim.keymap.set('n', 'c', api.fs.copy.node, opts('Copy'))
vim.keymap.set('n', 'C', api.tree.toggle_git_clean_filter, opts('Toggle Filter: Git Clean'))
vim.keymap.set('n', '[c', api.node.navigate.git.prev, opts('Prev Git'))
vim.keymap.set('n', ']c', api.node.navigate.git.next, opts('Next Git'))
vim.keymap.set('n', 'd', api.fs.remove, opts('Delete'))
vim.keymap.set('n', 'D', api.fs.trash, opts('Trash'))
vim.keymap.set('n', 'E', api.tree.expand_all, opts('Expand All'))
vim.keymap.set('n', 'e', api.fs.rename_basename, opts('Rename: Basename'))
vim.keymap.set('n', ']e', api.node.navigate.diagnostics.next, opts('Next Diagnostic'))
vim.keymap.set('n', '[e', api.node.navigate.diagnostics.prev, opts('Prev Diagnostic'))
vim.keymap.set('n', 'F', api.live_filter.clear, opts('Live Filter: Clear'))
vim.keymap.set('n', 'f', api.live_filter.start, opts('Live Filter: Start'))
vim.keymap.set('n', 'g?', api.tree.toggle_help, opts('Help'))
vim.keymap.set('n', 'gy', api.fs.copy.absolute_path, opts('Copy Absolute Path'))
vim.keymap.set('n', 'ge', api.fs.copy.basename, opts('Copy Basename'))
vim.keymap.set('n', 'H', api.tree.toggle_hidden_filter, opts('Toggle Filter: Dotfiles'))
vim.keymap.set('n', 'I', api.tree.toggle_gitignore_filter, opts('Toggle Filter: Git Ignore'))
vim.keymap.set('n', 'J', api.node.navigate.sibling.last, opts('Last Sibling'))
vim.keymap.set('n', 'K', api.node.navigate.sibling.first, opts('First Sibling'))
vim.keymap.set('n', 'L', api.node.open.toggle_group_empty, opts('Toggle Group Empty'))
vim.keymap.set('n', 'M', api.tree.toggle_no_bookmark_filter, opts('Toggle Filter: No Bookmark'))
vim.keymap.set('n', 'm', api.marks.toggle, opts('Toggle Bookmark'))
vim.keymap.set('n', 'o', api.node.open.edit, opts('Open'))
vim.keymap.set('n', 'O', api.node.open.no_window_picker, opts('Open: No Window Picker'))
vim.keymap.set('n', 'p', api.fs.paste, opts('Paste'))
vim.keymap.set('n', 'P', api.node.navigate.parent, opts('Parent Directory'))
vim.keymap.set('n', 'q', api.tree.close, opts('Close'))
vim.keymap.set('n', 'r', api.fs.rename, opts('Rename'))
vim.keymap.set('n', 'R', api.tree.reload, opts('Refresh'))
vim.keymap.set('n', 's', api.node.run.system, opts('Run System'))
vim.keymap.set('n', 'S', api.tree.search_node, opts('Search'))
vim.keymap.set('n', 'u', api.fs.rename_full, opts('Rename: Full Path'))
vim.keymap.set('n', 'U', api.tree.toggle_custom_filter, opts('Toggle Filter: Hidden'))
vim.keymap.set('n', 'W', api.tree.collapse_all, opts('Collapse'))
vim.keymap.set('n', 'x', api.fs.cut, opts('Cut'))
vim.keymap.set('n', 'y', api.fs.copy.filename, opts('Copy Name'))
vim.keymap.set('n', 'Y', api.fs.copy.relative_path, opts('Copy Relative Path'))
vim.keymap.set('n', '<2-LeftMouse>', api.node.open.edit, opts('Open'))
vim.keymap.set('n', '<2-RightMouse>', api.tree.change_root_to_node, opts('CD'))
-- END_DEFAULT_ON_ATTACH
end
''; };
view = {
side = "right";
centralizeSelection = true;
number = true;
relativenumber = true;
width = 40;
};
};
-- BEGIN_DEFAULT_ON_ATTACH
vim.keymap.set('n', '<C-]>', api.tree.change_root_to_node, opts('CD'))
vim.keymap.set('n', '<C-e>', api.node.open.replace_tree_buffer, opts('Open: In Place'))
vim.keymap.set('n', '<C-k>', api.node.show_info_popup, opts('Info'))
vim.keymap.set('n', '<C-r>', api.fs.rename_sub, opts('Rename: Omit Filename'))
vim.keymap.set('n', '<C-t>', api.node.open.tab, opts('Open: New Tab'))
vim.keymap.set('n', '<C-v>', api.node.open.vertical, opts('Open: Vertical Split'))
vim.keymap.set('n', '<C-x>', api.node.open.horizontal, opts('Open: Horizontal Split'))
vim.keymap.set('n', '<BS>', api.node.navigate.parent_close, opts('Close Directory'))
vim.keymap.set('n', '<CR>', api.node.open.edit, opts('Open'))
vim.keymap.set('n', 'b', api.node.open.preview, opts('Open Preview'))
vim.keymap.set('n', '>', api.node.navigate.sibling.next, opts('Next Sibling'))
vim.keymap.set('n', '<', api.node.navigate.sibling.prev, opts('Previous Sibling'))
vim.keymap.set('n', '.', api.node.run.cmd, opts('Run Command'))
vim.keymap.set('n', '-', api.tree.change_root_to_parent, opts('Up'))
vim.keymap.set('n', 'a', api.fs.create, opts('Create File Or Directory'))
vim.keymap.set('n', 'bd', api.marks.bulk.delete, opts('Delete Bookmarked'))
vim.keymap.set('n', 'bt', api.marks.bulk.trash, opts('Trash Bookmarked'))
vim.keymap.set('n', 'bmv', api.marks.bulk.move, opts('Move Bookmarked'))
vim.keymap.set('n', 'B', api.tree.toggle_no_buffer_filter, opts('Toggle Filter: No Buffer'))
vim.keymap.set('n', 'c', api.fs.copy.node, opts('Copy'))
vim.keymap.set('n', 'C', api.tree.toggle_git_clean_filter, opts('Toggle Filter: Git Clean'))
vim.keymap.set('n', '[c', api.node.navigate.git.prev, opts('Prev Git'))
vim.keymap.set('n', ']c', api.node.navigate.git.next, opts('Next Git'))
vim.keymap.set('n', 'd', api.fs.remove, opts('Delete'))
vim.keymap.set('n', 'D', api.fs.trash, opts('Trash'))
vim.keymap.set('n', 'E', api.tree.expand_all, opts('Expand All'))
vim.keymap.set('n', 'e', api.fs.rename_basename, opts('Rename: Basename'))
vim.keymap.set('n', ']e', api.node.navigate.diagnostics.next, opts('Next Diagnostic'))
vim.keymap.set('n', '[e', api.node.navigate.diagnostics.prev, opts('Prev Diagnostic'))
vim.keymap.set('n', 'F', api.live_filter.clear, opts('Live Filter: Clear'))
vim.keymap.set('n', 'f', api.live_filter.start, opts('Live Filter: Start'))
vim.keymap.set('n', 'g?', api.tree.toggle_help, opts('Help'))
vim.keymap.set('n', 'gy', api.fs.copy.absolute_path, opts('Copy Absolute Path'))
vim.keymap.set('n', 'ge', api.fs.copy.basename, opts('Copy Basename'))
vim.keymap.set('n', 'H', api.tree.toggle_hidden_filter, opts('Toggle Filter: Dotfiles'))
vim.keymap.set('n', 'I', api.tree.toggle_gitignore_filter, opts('Toggle Filter: Git Ignore'))
vim.keymap.set('n', 'J', api.node.navigate.sibling.last, opts('Last Sibling'))
vim.keymap.set('n', 'K', api.node.navigate.sibling.first, opts('First Sibling'))
vim.keymap.set('n', 'L', api.node.open.toggle_group_empty, opts('Toggle Group Empty'))
vim.keymap.set('n', 'M', api.tree.toggle_no_bookmark_filter, opts('Toggle Filter: No Bookmark'))
vim.keymap.set('n', 'm', api.marks.toggle, opts('Toggle Bookmark'))
vim.keymap.set('n', 'o', api.node.open.edit, opts('Open'))
vim.keymap.set('n', 'O', api.node.open.no_window_picker, opts('Open: No Window Picker'))
vim.keymap.set('n', 'p', api.fs.paste, opts('Paste'))
vim.keymap.set('n', 'P', api.node.navigate.parent, opts('Parent Directory'))
vim.keymap.set('n', 'q', api.tree.close, opts('Close'))
vim.keymap.set('n', 'r', api.fs.rename, opts('Rename'))
vim.keymap.set('n', 'R', api.tree.reload, opts('Refresh'))
vim.keymap.set('n', 's', api.node.run.system, opts('Run System'))
vim.keymap.set('n', 'S', api.tree.search_node, opts('Search'))
vim.keymap.set('n', 'u', api.fs.rename_full, opts('Rename: Full Path'))
vim.keymap.set('n', 'U', api.tree.toggle_custom_filter, opts('Toggle Filter: Hidden'))
vim.keymap.set('n', 'W', api.tree.collapse_all, opts('Collapse'))
vim.keymap.set('n', 'x', api.fs.cut, opts('Cut'))
vim.keymap.set('n', 'y', api.fs.copy.filename, opts('Copy Name'))
vim.keymap.set('n', 'Y', api.fs.copy.relative_path, opts('Copy Relative Path'))
vim.keymap.set('n', '<2-LeftMouse>', api.node.open.edit, opts('Open'))
vim.keymap.set('n', '<2-RightMouse>', api.tree.change_root_to_node, opts('CD'))
-- END_DEFAULT_ON_ATTACH
end
'';
};
view = {
side = "right";
centralizeSelection = true;
number = true;
relativenumber = true;
width = 40;
};
};
}

View File

@@ -1,22 +1,22 @@
{
plugins = {
nvim-surround.enable = true;
indent-blankline.enable = true;
treesitter.enable = true;
lastplace.enable = true;
markdown-preview.enable = true;
gitsigns.enable = true;
web-devicons.enable = true;
endwise.enable = true;
marks.enable = true;
trouble.enable = true;
floaterm.enable = true;
fugitive.enable = true;
rustaceanvim.enable = true;
firenvim.enable = true;
dap = {
enable = true;
extensions.dap-ui.enable = true;
};
};
plugins = {
nvim-surround.enable = true;
indent-blankline.enable = true;
treesitter.enable = true;
lastplace.enable = true;
markdown-preview.enable = true;
gitsigns.enable = true;
web-devicons.enable = true;
endwise.enable = true;
marks.enable = true;
trouble.enable = true;
floaterm.enable = true;
fugitive.enable = true;
rustaceanvim.enable = true;
firenvim.enable = true;
dap = {
enable = true;
extensions.dap-ui.enable = true;
};
};
}

View File

@@ -1,12 +1,12 @@
{
plugins.telescope = {
enable = true;
settings = {
pickers = {
find_files = {
hidden = true;
};
};
};
};
plugins.telescope = {
enable = true;
settings = {
pickers = {
find_files = {
hidden = true;
};
};
};
};
}

View File

@@ -1,21 +1,21 @@
{
plugins.vim-matchup = {
enable = true;
enableSurround = true;
textObj.enable = true;
motion = {
enable = true;
cursorEnd = true;
};
matchParen = {
hiSurroundAlways = true;
offscreen = {
method = "popup";
};
};
treesitterIntegration = {
enable = true;
includeMatchWords = true;
};
};
plugins.vim-matchup = {
enable = true;
enableSurround = true;
textObj.enable = true;
motion = {
enable = true;
cursorEnd = true;
};
matchParen = {
hiSurroundAlways = true;
offscreen = {
method = "popup";
};
};
treesitterIntegration = {
enable = true;
includeMatchWords = true;
};
};
}

View File

@@ -14,14 +14,13 @@
};
};
outputs =
{
nixvim,
flake-parts,
pre-commit-hooks,
...
}@inputs:
flake-parts.lib.mkFlake { inherit inputs; } {
outputs = {
nixvim,
flake-parts,
pre-commit-hooks,
...
} @ inputs:
flake-parts.lib.mkFlake {inherit inputs;} {
systems = [
"aarch64-linux"
"x86_64-linux"
@@ -29,44 +28,41 @@
"x86_64-darwin"
];
perSystem =
{
system,
pkgs,
self',
...
}:
let
nixvim' = nixvim.legacyPackages.${system};
nvim = nixvim'.makeNixvimWithModule {
inherit pkgs;
module = ./config;
};
in
{
checks = {
pre-commit-check = pre-commit-hooks.lib.${system}.run {
src = ./.;
hooks = {
statix.enable = true;
nixfmt-rfc-style.enable = true;
deadnix = {
enable = true;
settings = {
edit = true;
};
perSystem = {
system,
pkgs,
self',
...
}: let
nixvim' = nixvim.legacyPackages.${system};
nvim = nixvim'.makeNixvimWithModule {
inherit pkgs;
module = ./config;
};
in {
checks = {
pre-commit-check = pre-commit-hooks.lib.${system}.run {
src = ./.;
hooks = {
statix.enable = true;
nixfmt-rfc-style.enable = true;
deadnix = {
enable = true;
settings = {
edit = true;
};
};
};
};
formatter = pkgs.nixfmt-rfc-style;
packages.default = nvim;
devShells = {
default = with pkgs; mkShell { inherit (self'.checks.pre-commit-check) shellHook; };
};
};
formatter = pkgs.nixfmt-rfc-style;
packages.default = nvim;
devShells = {
default = with pkgs; mkShell {inherit (self'.checks.pre-commit-check) shellHook;};
};
};
};
}

View File

@@ -5,8 +5,11 @@
nixpkgs.url = "github:nixos/nixpkgs/nixos-unstable";
};
outputs = { self, nixpkgs, ... }@inputs:
let
outputs = {
self,
nixpkgs,
...
} @ inputs: let
system = "x86_64-linux";
pkgs = nixpkgs.legacyPackages.${system};
@@ -14,13 +17,13 @@
extraFonts = pkgs.fetchFromGitHub {
owner = "xero";
repo = "figlet-fonts";
rev = "master"; # Or specify a particular commit/tag
sha256 = "sha256-dAs7N66D2Fpy4/UB5Za1r2qb1iSAJR6TMmau1asxgtY="; # Replace with actual hash
rev = "master"; # Or specify a particular commit/tag
sha256 = "sha256-dAs7N66D2Fpy4/UB5Za1r2qb1iSAJR6TMmau1asxgtY="; # Replace with actual hash
};
in {
packages.${system} = {
default = pkgs.toilet.overrideAttrs (oldAttrs: rec {
buildInputs = oldAttrs.buildInputs or [] ++ [ extraFonts ];
buildInputs = oldAttrs.buildInputs or [] ++ [extraFonts];
installPhase = ''
make install PREFIX=$out