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