small changes

This commit is contained in:
jacekpoz 2023-07-13 12:49:20 +02:00
parent 352b3b11c6
commit f253cb092c
39 changed files with 2233 additions and 695 deletions

View file

@ -1,36 +1,13 @@
{
"nodes": {
"beautysh": {
"inputs": {
"nixpkgs": [
"nixvim",
"nixpkgs"
],
"poetry2nix": "poetry2nix",
"utils": "utils"
},
"locked": {
"lastModified": 1680308980,
"narHash": "sha256-aUEHV0jk2qIFP3jlsWYWhBbm+w/N9gzH3e4I5DcdB5s=",
"owner": "lovesegfault",
"repo": "beautysh",
"rev": "9845efc3ea3e86cc0d41465d720a47f521b2799c",
"type": "github"
},
"original": {
"owner": "lovesegfault",
"repo": "beautysh",
"type": "github"
}
},
"flake-compat": {
"flake": false,
"locked": {
"lastModified": 1673956053,
"narHash": "sha256-4gtG9iQuiKITOjNQQeQIpoIB6b16fm+504Ch3sNKLd8=",
"lastModified": 1650374568,
"narHash": "sha256-Z+s0J8/r907g149rllvwhb4pKi8Wam5ij0st8PwAh+E=",
"owner": "edolstra",
"repo": "flake-compat",
"rev": "35bb57c0c8d8b62bbfd284272c928ceb64ddbde9",
"rev": "b4a34015c698c7793d592d66adbab377907a2be8",
"type": "github"
},
"original": {
@ -57,49 +34,30 @@
"type": "github"
}
},
"flake-utils_2": {
"inputs": {
"systems": "systems_2"
},
"locked": {
"lastModified": 1685518550,
"narHash": "sha256-o2d0KcvaXzTrPRIo0kOLV0/QXHhDQ5DTi+OxcjO8xqY=",
"owner": "numtide",
"repo": "flake-utils",
"rev": "a1720a10a6cfe8234c0e93907ffe81be440f4cef",
"type": "github"
},
"original": {
"owner": "numtide",
"repo": "flake-utils",
"type": "github"
}
},
"gitignore": {
"home-manager": {
"inputs": {
"nixpkgs": [
"nixvim",
"pre-commit-hooks",
"nixpkgs"
]
},
"locked": {
"lastModified": 1660459072,
"narHash": "sha256-8DFJjXG8zqoONA1vXtgeKXy68KdJL5UaXR8NtVMUbx8=",
"owner": "hercules-ci",
"repo": "gitignore.nix",
"rev": "a20de23b925fd8264fd7fad6454652e142fd7f73",
"lastModified": 1688731042,
"narHash": "sha256-D1p/LLP1SpDYjutt9W+O5Ek+XGdszsjYjvL30ad++OY=",
"owner": "nix-community",
"repo": "home-manager",
"rev": "34db2f05219bcb0e41cc85490e4c338e2405546c",
"type": "github"
},
"original": {
"owner": "hercules-ci",
"repo": "gitignore.nix",
"owner": "nix-community",
"repo": "home-manager",
"type": "github"
}
},
"home-manager": {
"home-manager_2": {
"inputs": {
"nixpkgs": [
"nixneovim",
"nixpkgs"
]
},
@ -125,11 +83,11 @@
"xdph": "xdph"
},
"locked": {
"lastModified": 1688653598,
"narHash": "sha256-gLNu5/SEw3gg5SjuAfkwFSR473Wnc6GaFvS7kmySi7A=",
"lastModified": 1688750375,
"narHash": "sha256-BjFycq8qgBYFYC+b2/fb75Mp6fn1xo0bL4MSSsVu0hM=",
"owner": "hyprwm",
"repo": "Hyprland",
"rev": "e632bf176b04968ca6a22f6e5d5f1a7bf77b6fa6",
"rev": "f49af187bc0755f9b5be9376bfd52c0cf12c1e11",
"type": "github"
},
"original": {
@ -138,6 +96,24 @@
"type": "github"
}
},
"hyprland-plugins": {
"inputs": {
"hyprland": "hyprland_2"
},
"locked": {
"lastModified": 1687802267,
"narHash": "sha256-8kLOKO8+jfzE5cxicqZX0vaqR2Xj7KaZJN0ElJVFsww=",
"owner": "hyprwm",
"repo": "hyprland-plugins",
"rev": "16dc2927bdfb1b133fd682fa0b451155918a07d9",
"type": "github"
},
"original": {
"owner": "hyprwm",
"repo": "hyprland-plugins",
"type": "github"
}
},
"hyprland-protocols": {
"inputs": {
"nixpkgs": [
@ -159,6 +135,114 @@
"type": "github"
}
},
"hyprland-protocols_2": {
"inputs": {
"nixpkgs": [
"hyprland-plugins",
"hyprland",
"nixpkgs"
]
},
"locked": {
"lastModified": 1681065697,
"narHash": "sha256-QPzwwlGKX95tl6ZEshboZbEwwAXww6lNLdVYd6T9Mrc=",
"owner": "hyprwm",
"repo": "hyprland-protocols",
"rev": "4d29e48433270a2af06b8bc711ca1fe5109746cd",
"type": "github"
},
"original": {
"owner": "hyprwm",
"repo": "hyprland-protocols",
"type": "github"
}
},
"hyprland_2": {
"inputs": {
"hyprland-protocols": "hyprland-protocols_2",
"nixpkgs": "nixpkgs_2",
"wlroots": "wlroots_2",
"xdph": "xdph_2"
},
"locked": {
"lastModified": 1682548480,
"narHash": "sha256-aycGKS+Vv/lQQFaYJNpK054leLKIapfUobgzt8fohFA=",
"owner": "hyprwm",
"repo": "Hyprland",
"rev": "72d2f33b34951b7f5be6cdbc302b1c6a33cbf60f",
"type": "github"
},
"original": {
"owner": "hyprwm",
"repo": "Hyprland",
"type": "github"
}
},
"nix-flake-tests": {
"locked": {
"lastModified": 1677844186,
"narHash": "sha256-ErJZ/Gs1rxh561CJeWP5bohA2IcTq1rDneu1WT6CVII=",
"owner": "antifuchs",
"repo": "nix-flake-tests",
"rev": "bbd9216bd0f6495bb961a8eb8392b7ef55c67afb",
"type": "github"
},
"original": {
"owner": "antifuchs",
"repo": "nix-flake-tests",
"type": "github"
}
},
"nixneovim": {
"inputs": {
"flake-utils": "flake-utils",
"home-manager": "home-manager_2",
"nix-flake-tests": "nix-flake-tests",
"nixneovimplugins": "nixneovimplugins",
"nixpkgs": "nixpkgs_3",
"nmd": "nmd",
"nmt": "nmt"
},
"locked": {
"lastModified": 1688653494,
"narHash": "sha256-BVOOhT8hx/8QoowVEAdWxP2W/UgoZMbbTsj1xBglYlo=",
"owner": "nixneovim",
"repo": "nixneovim",
"rev": "218db8db7435d893dfeb3267a3a44e0fee8ecb06",
"type": "github"
},
"original": {
"owner": "nixneovim",
"repo": "nixneovim",
"type": "github"
}
},
"nixneovimplugins": {
"inputs": {
"flake-compat": "flake-compat",
"flake-utils": [
"nixneovim",
"flake-utils"
],
"nixpkgs": [
"nixneovim",
"nixpkgs"
]
},
"locked": {
"lastModified": 1688371914,
"narHash": "sha256-jq43Ke9HThX0NG1qO08GgezjPkCwBX8pzvsixYjLQIs=",
"owner": "nixneovim",
"repo": "nixneovimplugins",
"rev": "f7ce3c7d9bbf50dc1d25921fa2c74e03c23bb541",
"type": "github"
},
"original": {
"owner": "nixneovim",
"repo": "nixneovimplugins",
"type": "github"
}
},
"nixpkgs": {
"locked": {
"lastModified": 1688500189,
@ -175,23 +259,39 @@
"type": "github"
}
},
"nixpkgs-stable": {
"nixpkgs_2": {
"locked": {
"lastModified": 1685801374,
"narHash": "sha256-otaSUoFEMM+LjBI1XL/xGB5ao6IwnZOXc47qhIgJe8U=",
"lastModified": 1682453498,
"narHash": "sha256-WoWiAd7KZt5Eh6n+qojcivaVpnXKqBsVgpixpV2L9CE=",
"owner": "NixOS",
"repo": "nixpkgs",
"rev": "c37ca420157f4abc31e26f436c1145f8951ff373",
"rev": "c8018361fa1d1650ee8d4b96294783cf564e8a7f",
"type": "github"
},
"original": {
"owner": "NixOS",
"ref": "nixos-23.05",
"ref": "nixos-unstable",
"repo": "nixpkgs",
"type": "github"
}
},
"nixpkgs_2": {
"nixpkgs_3": {
"locked": {
"lastModified": 1688590700,
"narHash": "sha256-ZF055rIUP89cVwiLpG5xkJzx00gEuuGFF60Bs/LM3wc=",
"owner": "nixos",
"repo": "nixpkgs",
"rev": "f292b4964cb71f9dfbbd30dc9f511d6165cd109b",
"type": "github"
},
"original": {
"owner": "nixos",
"ref": "nixos-unstable",
"repo": "nixpkgs",
"type": "github"
}
},
"nixpkgs_4": {
"locked": {
"lastModified": 1688590700,
"narHash": "sha256-ZF055rIUP89cVwiLpG5xkJzx00gEuuGFF60Bs/LM3wc=",
@ -207,92 +307,35 @@
"type": "github"
}
},
"nixpkgs_3": {
"nmd": {
"flake": false,
"locked": {
"lastModified": 1688500189,
"narHash": "sha256-djYYiY4lzJOlXOnTHytH6BUugrxHDZjuGxTSrU4gt4M=",
"owner": "NixOS",
"repo": "nixpkgs",
"rev": "78419edadf0fabbe5618643bd850b2f2198ed060",
"type": "github"
"lastModified": 1687627428,
"narHash": "sha256-7zGfXuNS5RHqhpEdz2fwrtqvF86JRo5U1hrxZSYgcm8=",
"owner": "~rycee",
"repo": "nmd",
"rev": "824a380546b5d0d0eb701ff8cd5dbafb360750ff",
"type": "sourcehut"
},
"original": {
"owner": "NixOS",
"ref": "nixos-unstable",
"repo": "nixpkgs",
"type": "github"
"owner": "~rycee",
"repo": "nmd",
"type": "sourcehut"
}
},
"nixvim": {
"inputs": {
"beautysh": "beautysh",
"flake-utils": "flake-utils",
"nixpkgs": "nixpkgs_3",
"pre-commit-hooks": "pre-commit-hooks"
},
"nmt": {
"flake": false,
"locked": {
"lastModified": 1688709814,
"narHash": "sha256-4VRfLCNiU0IXsB2OK34E/hQ+xQBFFoAYrYEurWqm/wU=",
"owner": "pta2002",
"repo": "nixvim",
"rev": "3ef05b4f13b427b271a477b7368c9efc1f3a1b73",
"lastModified": 1683843030,
"narHash": "sha256-2K9tFpypgSORyUTRAL7MFRKCXU4GykmhIDrrIydtPdI=",
"owner": "jooooscha",
"repo": "nmt",
"rev": "f30b96093eb056f1bcc60199545344b4e4a72c5a",
"type": "github"
},
"original": {
"owner": "pta2002",
"repo": "nixvim",
"type": "github"
}
},
"poetry2nix": {
"inputs": {
"flake-utils": [
"nixvim",
"beautysh",
"utils"
],
"nixpkgs": [
"nixvim",
"beautysh",
"nixpkgs"
]
},
"locked": {
"lastModified": 1658665240,
"narHash": "sha256-/wkx7D7enyBPRjIkK0w7QxLQhzEkb3UxNQnjyc3FTUI=",
"owner": "nix-community",
"repo": "poetry2nix",
"rev": "8b8edc85d24661d5a6d0d71d6a7011f3e699780f",
"type": "github"
},
"original": {
"owner": "nix-community",
"repo": "poetry2nix",
"type": "github"
}
},
"pre-commit-hooks": {
"inputs": {
"flake-compat": "flake-compat",
"flake-utils": "flake-utils_2",
"gitignore": "gitignore",
"nixpkgs": [
"nixvim",
"nixpkgs"
],
"nixpkgs-stable": "nixpkgs-stable"
},
"locked": {
"lastModified": 1688473851,
"narHash": "sha256-j+ViA3lh4uQGIDqB6TjM4+wijX2M5mfNb6MVJVekpAs=",
"owner": "cachix",
"repo": "pre-commit-hooks.nix",
"rev": "f6a6863a3bcb61e846a9e4777b90ee365607a925",
"type": "github"
},
"original": {
"owner": "cachix",
"repo": "pre-commit-hooks.nix",
"owner": "jooooscha",
"repo": "nmt",
"type": "github"
}
},
@ -300,8 +343,9 @@
"inputs": {
"home-manager": "home-manager",
"hyprland": "hyprland",
"nixpkgs": "nixpkgs_2",
"nixvim": "nixvim"
"hyprland-plugins": "hyprland-plugins",
"nixneovim": "nixneovim",
"nixpkgs": "nixpkgs_4"
}
},
"systems": {
@ -319,36 +363,6 @@
"type": "github"
}
},
"systems_2": {
"locked": {
"lastModified": 1681028828,
"narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=",
"owner": "nix-systems",
"repo": "default",
"rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e",
"type": "github"
},
"original": {
"owner": "nix-systems",
"repo": "default",
"type": "github"
}
},
"utils": {
"locked": {
"lastModified": 1678901627,
"narHash": "sha256-U02riOqrKKzwjsxc/400XnElV+UtPUQWpANPlyazjH0=",
"owner": "numtide",
"repo": "flake-utils",
"rev": "93a2b84fc4b70d9e089d029deacc3583435c2ed6",
"type": "github"
},
"original": {
"owner": "numtide",
"repo": "flake-utils",
"type": "github"
}
},
"wlroots": {
"flake": false,
"locked": {
@ -367,6 +381,24 @@
"type": "gitlab"
}
},
"wlroots_2": {
"flake": false,
"locked": {
"host": "gitlab.freedesktop.org",
"lastModified": 1682436395,
"narHash": "sha256-GGEjkQO9m7YLYIXIXM76HWdhjg4Ye+oafOtyaFAYKI4=",
"owner": "wlroots",
"repo": "wlroots",
"rev": "6830bfc17fd94709e2cdd4da0af989f102a26e59",
"type": "gitlab"
},
"original": {
"host": "gitlab.freedesktop.org",
"owner": "wlroots",
"repo": "wlroots",
"type": "gitlab"
}
},
"xdph": {
"inputs": {
"hyprland-protocols": [
@ -391,6 +423,33 @@
"repo": "xdg-desktop-portal-hyprland",
"type": "github"
}
},
"xdph_2": {
"inputs": {
"hyprland-protocols": [
"hyprland-plugins",
"hyprland",
"hyprland-protocols"
],
"nixpkgs": [
"hyprland-plugins",
"hyprland",
"nixpkgs"
]
},
"locked": {
"lastModified": 1682439384,
"narHash": "sha256-zHDa8LCZs05TZHQSIZ3ucwyMPglBGHcqTBzfkLjYXTM=",
"owner": "hyprwm",
"repo": "xdg-desktop-portal-hyprland",
"rev": "c0e233955568fbea4e859336f6d3d14d51294d7c",
"type": "github"
},
"original": {
"owner": "hyprwm",
"repo": "xdg-desktop-portal-hyprland",
"type": "github"
}
}
},
"root": "root",

View file

@ -11,16 +11,17 @@
# instead of cluttering flake.nix, import all nixosConfigurations from their own dedicated file
nixosConfigurations = import ./hosts {inherit nixpkgs inputs lib;};
};
inputs = {
nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable";
hyprland.url = "github:hyprwm/Hyprland";
hyprland-plugins.url = "github:hyprwm/hyprland-plugins";
home-manager = {
url = "github:nix-community/home-manager";
inputs.nixpkgs.follows = "nixpkgs";
};
nixvim.url = "github:pta2002/nixvim";
nixneovim.url = "github:nixneovim/nixneovim";
};
}

View file

@ -8,7 +8,7 @@
useGlobalPkgs = true;
extraSpecialArgs = {inherit inputs self;}; # let home-manager access inputs and self
users = {
jacek = import ./jacek; # if more users to be added, create a directory for each one of them with a file called default.nix in them
jacek = import ./jacek;
};
};
}

View file

@ -0,0 +1,8 @@
_: {
imports = [
./git
./starship
./zoxide
./zsh
];
}

View file

@ -0,0 +1,14 @@
{
config,
pkgs,
...
}:
{
config = {
programs.git = {
enable = true;
userName = "jacekpoz";
userEmail = "jacekpoz@cock.li";
};
};
}

View file

@ -0,0 +1,24 @@
{
config,
...
}: {
config = {
programs.starship = {
enable = true;
enableZshIntegration = true;
settings = {
add_newline = false;
command_timeout = 1000;
line_break = {
disabled = true;
};
directory = {
truncation_length = 3;
truncate_to_repo = false;
truncation_symbol = "/";
read_only = "";
};
};
};
};
}

View file

@ -0,0 +1,11 @@
{
config,
...
}: {
config = {
programs.zoxide = {
enable = true;
enableZshIntegration = true;
};
};
}

View file

@ -0,0 +1,54 @@
{
config,
pkgs,
...
}: {
config = {
programs.zsh = {
enable = true;
shellAliases = {
cl = "clear";
cp = "cp -ivr";
mv = "mv -iv";
rm = "trash -v";
l = "ls -A --color=auto";
ll = "exa -lha --git";
untar = "tar -xvf";
untargz = "tar -xzf";
mnt = "udisksctl mount -b";
umnt = "udisksctl unmount -b";
v = "nvim";
kys = "shutdown now";
gpl = "curl https://www.gnu.org/licenses/gpl-3.0.txt -o LICENSE";
agpl = "curl https://www.gnu.org/licenses/agpl-3.0.txt -o LICENSE";
wget = "wget --hsts-file=\"${config.xdg.dataHome}/wget-hsts\"";
g = "git";
};
initExtra = ''
bindkey '^H' backward-kill-word
'';
history = {
path = "${config.xdg.dataHome}/zsh/zsh_history";
size = 999999999;
extended = true;
ignoreSpace = true;
};
enableAutosuggestions = true;
enableCompletion = true;
autocd = false;
dotDir = ".config/zsh";
plugins = [
{
name = "fast-syntax-highlighting";
file = "fast-syntax-highlighting.plugin.zsh";
src = pkgs.fetchFromGitHub {
owner = "zdharma-continuum";
repo = "fast-syntax-highlighting";
rev = "cf318e06a9b7c9f2219d78f41b46fa6e06011fd9";
sha256 = "sha256-RVX9ZSzjBW3LpFs2W86lKI6vtcvDWP6EPxzeTcRZua4=";
};
}
];
};
};
}

View file

@ -8,373 +8,90 @@
imports = [
inputs.hyprland.homeManagerModules.default
./gui
./tui
./cli
];
config = {
programs = {
home-manager.enable = true; # let home-manager enable itself
git = {
enable = true;
userName = "jacekpoz";
userEmail = "jacekpoz@cock.li";
};
zsh = {
enable = true;
shellAliases = {
cl = "clear";
cp = "cp -ivr";
mv = "mv -iv";
rm = "trash -v";
l = "ls -A --color=auto";
ll = "exa -lha --git";
untar = "tar -xvf";
untargz = "tar -xzf";
mnt = "udisksctl mount -b";
umnt = "udisksctl unmount -b";
v = "nvim";
kys = "shutdown now";
gpl = "curl https://www.gnu.org/licenses/gpl-3.0.txt -o LICENSE";
agpl = "curl https://www.gnu.org/licenses/agpl-3.0.txt -o LICENSE";
wget = "wget --hsts-file=\"${config.xdg.dataHome}/wget-hsts\"";
};
initExtra = ''
bindkey '^H' backward-kill-word
'';
history = {
path = "${config.xdg.dataHome}/zsh/zsh_history";
size = 999999999;
extended = true;
ignoreSpace = true;
};
enableAutosuggestions = true;
enableCompletion = true;
autocd = false;
dotDir = ".config/zsh";
plugins = [
{
name = "fast-syntax-highlighting";
file = "fast-syntax-highlighting.plugin.zsh";
src = pkgs.fetchFromGitHub {
owner = "zdharma-continuum";
repo = "fast-syntax-highlighting";
rev = "cf318e06a9b7c9f2219d78f41b46fa6e06011fd9";
sha256 = "sha256-RVX9ZSzjBW3LpFs2W86lKI6vtcvDWP6EPxzeTcRZua4=";
};
}
];
};
zoxide = {
enable = true;
enableZshIntegration = true;
};
starship = {
enable = true;
enableZshIntegration = true;
settings = {
add_newline = false;
command_timeout = 1000;
line_break = {
disabled = true;
};
directory = {
truncation_length = 3;
truncate_to_repo = false;
truncation_symbol = ".../";
read_only = "";
};
};
};
waybar = {
enable = true;
#package = pkgs.waybar.overrideAttrs (oldAttrs: {
# mesonFlags = oldAttrs.mesonFlags ++ [ "-Dexperimental=true" ];
#});
settings = {
bar = {
gtk-layer-shell = true;
layer = "top";
modules-left = [ "custom/launcher" "custom/power_profile" "custom/xwayland" "tray" "wlr/workspaces" ];
modules-center = [ "hyprland/window" ];
modules-right = [ "custom/dnd" "backlight" "cava" "pulseaudio" "clock" "battery" "custom/power" ];
pulseaudio = {
tooltip = false;
scroll-step = "1";
format = " {icon} {volume}%";
format-muted = " 󰸈 {volume}%";
format-icons = {
default = ["󰕿" "󰖀" "󰕾"];
};
on-click = "pactl set-sink-mute @DEFAULT_SINK@ toggle";
};
};
};
};
home-manager.enable = true;
};
home = {
username = "jacek";
homeDirectory = "/home/jacek";
packages = with pkgs; [
neofetch
git
librewolf-wayland
firefox-wayland
foot
keepassxc
neovim
exa
waybar
ripgrep
dunst
libnotify
rofi-wayland
rofi-calc
mpv
webcord-vencord
session-desktop
osu-lazer-bin
oppai-ng
signal-desktop-beta
schildichat-desktop
obs-studio
heroic
steam
ungoogled-chromium
amdgpu_top
tor-browser-bundle-bin
mullvad-browser
thunderbird
telegram-desktop
livecaptions
gimp
mullvad-vpn
helvum
ddccontrol
ddccontrol-db
bluez
blueman
btop
easyeffects
fcitx5
fcitx5-gtk
fcitx5-skk
firejail
helix
lbry
libreoffice-fresh
minetest
airshipper
onionshare-gui
prismlauncher
qbittorrent
retroarchFull
ventoy-full
zathura
zellij
cargo
rustc
nodejs
unzip
cmake
gcc
sway
caprine-bin
libsForQt5.qt5ct
libsForQt5.kdenlive
telegram-desktop
waypipe
swaylock
trash-cli
];
stateVersion = lib.mkDefault "23.11";
};
wayland.windowManager.hyprland = {
enable = true;
extraConfig = ''
#laptop
#monitor=eDP-1,2560@1440@165,0x0,1
#workspace=eDP-1,1
#second monitor
#monitor=HDMI-A-1,2560x1440@144,2560x0,1
#workspace=HDMI-A-1,11
workspace = 1, monitor: eDP-1
workspace = 2, monitor: eDP-1
workspace = 3, monitor: eDP-1
workspace = 4, monitor: eDP-1
workspace = 5, monitor: eDP-1
workspace = 6, monitor: eDP-1
workspace = 7, monitor: eDP-1
workspace = 8, monitor: eDP-1
workspace = 9, monitor: eDP-1
workspace = 10, monitor: eDP-1
#wsbind = 11, HDMI-a-1
#wsbind = 12, HDMI-a-1
#wsbind = 13, HDMI-a-1
#wsbind = 14, HDMI-a-1
#wsbind = 15, HDMI-a-1
#wsbind = 16, HDMI-a-1
#wsbind = 17, HDMI-a-1
#wsbind = 18, HDMI-a-1
#wsbind = 19, HDMI-a-1
#wsbind = 20, HDMI-a-1
input {
kb_layout=pl
kb_variant=
kb_model=
kb_options=
kb_rules=
follow_mouse=1
touchpad {
disable_while_typing=true
}
}
general {
sensitivity=1.0 # for mouse cursor
gaps_in=5
gaps_out=5
#gaps_in=0
#gaps_out=0
border_size=2
#border_size=1
col.active_border=0xFFCC241D
col.inactive_border=0xFF928374
col.group_border_active=0xFF98971A
col.group_border=0xFF928374
apply_sens_to_raw=0 # whether to apply the sensitivity to raw input (e.g. used by games where you aim using your mouse)
#no_border_on_floating=true
}
decoration {
#rounding=0
rounding=10
blur=1
blur_size=3
blur_passes=2
blur_new_optimizations=1
drop_shadow=1
shadow_range=15
shadow_render_power=2
shadow_ignore_window=1
shadow_offset= 2 4
shadow_scale=1
col.shadow=0xAF282828
}
gestures {
workspace_swipe=1
workspace_swipe_distance=200
workspace_swipe_invert=1
workspace_swipe_min_speed_to_force=20
workspace_swipe_cancel_ratio=0.5
}
bezier=dupa, 0.1, 0.9, 0.1, 1.05
animations {
enabled=1
animation=windows,1,4,dupa,popin
animation=windowsOut,1,7,dupa,slide
animation=border,1,15,default
animation=fade,1,10,default
animation=workspaces,1,5,dupa,slidevert
}
dwindle {
no_gaps_when_only=1
}
misc {
enable_swallow=0
swallow_regex=foot
focus_on_activate=true
vrr=1
animate_manual_resizes=false
animate_mouse_windowdragging=false
}
windowrulev2 = float, class:^(Tor Browser)$
windowrulev2 = float, class:^(foot)$
windowrulev2 = float, class:^(mpv)$
windowrulev2 = float, class:^(imv)$
windowrulev2 = float, class:^(Vieb)$
windowrulev2 = float, title:^(Picture-in-Picture)$
windowrulev2 = float, class:^(code), title: ^(Open*)
windowrulev2 = size 70% 70%, class:^(code), title: ^(Open*)
windowrulev2 = center, class: ^(code), title: ^(Open*)
windowrulev2 = float, class:^(org.keepassxc.KeePassXC)$
windowrulev2 = size 960 670, title:^(ROG Control Center)$
bind = SUPER, RETURN, exec, footclient
bind = SUPER, W, exec, librewolf
bind = SUPERSHIFT, W, exec, firefox
bind = SUPER, Q, killactive
bind = SUPER, F, fullscreen, 0
bind = SUPER, M, fullscreen, 1
bind = SUPER, D, exec, ~/.config/rofi/launchers/type-4/launcher.sh
bind = SUPER, SPACE, togglefloating,
bind = SUPER, C, exec, rofi -show calc -modi calc -no-show-match -no-sort
bind = SUPERSHIFT, C, centerwindow
bind = SUPER, R, bringactivetotop
binde = SUPER, H, exec, hyprsome focus l
binde = SUPER, J, exec, hyprsome focus d
binde = SUPER, K, exec, hyprsome focus u
binde = SUPER, L, exec, hyprsome focus r
binde = SUPERCTRL, J, focusmonitor, l
binde = SUPERCTRL, K, focusmonitor, r
bind = SUPER, 1, exec, hyprsome workspace 1
bind = SUPER, 2, exec, hyprsome workspace 2
bind = SUPER, 3, exec, hyprsome workspace 3
bind = SUPER, 4, exec, hyprsome workspace 4
bind = SUPER, 5, exec, hyprsome workspace 5
bind = SUPER, 6, exec, hyprsome workspace 6
bind = SUPER, 7, exec, hyprsome workspace 7
bind = SUPER, 8, exec, hyprsome workspace 8
bind = SUPER, 9, exec, hyprsome workspace 9
bind = SUPER, 0, exec, hyprsome workspace 10
bind = SUPERSHIFT, 1, exec, hyprsome move 1
bind = SUPERSHIFT, 2, exec, hyprsome move 2
bind = SUPERSHIFT, 3, exec, hyprsome move 3
bind = SUPERSHIFT, 4, exec, hyprsome move 4
bind = SUPERSHIFT, 5, exec, hyprsome move 5
bind = SUPERSHIFT, 6, exec, hyprsome move 6
bind = SUPERSHIFT, 7, exec, hyprsome move 7
bind = SUPERSHIFT, 8, exec, hyprsome move 8
bind = SUPERSHIFT, 9, exec, hyprsome move 9
bindle = , XF86MonBrightnessUp, exec, ~/Scripts/notif_brightness.sh set +5%
bindle = , XF86MonBrightnessDown, exec, ~/Scripts/notif_brightness.sh set 5%-
bindl = , XF86AudioMedia, exec, playerctl play-pause
bindl = , XF86AudioPlay, exec, playerctl play-pause
bindl = , XF86AudioStop, exec, playerctl stop
bindl = , XF86AudioPrev, exec, playerctl previous
bindl = , XF86AudioNext, exec, playerctl next
bindle = , XF86AudioRaiseVolume, exec, ~/Scripts/notif_volume.sh -ui 5
bindle = , XF86AudioLowerVolume, exec, ~/Scripts/notif_volume.sh -ud 5
bindl = , XF86AudioMute, exec, ~/Scripts/notif_volume.sh --toggle-mute
# https://github.com/n3oney/shadower
bind = SUPER, S, exec, grimblast save area - | shadower | tee "$(xdg-user-dir PICTURES)/Screenshots/$(date +'screenshot-%Y%m%d%H%M%S.png')" | wl-copy
bind = SUPERSHIFT, S, exec, grimblast save area - | swappy -f - -o - | shadower | tee "$(xdg-user-dir PICTURES)/Screenshots/$(date +'screenshot-%Y%m%d%H%M%S.png')" | wl-copy
bind = SUPERSHIFT, R, exec, hyprctl reload
bind = SUPER, P, pin
bind = , XF86Launch1, exec, rog-control-center
binde = , XF86Launch3, exec, asusctl led-mode -n
bind = , XF86Launch4, exec, asusctl profile -n; pkill -SIGRTMIN+8 waybar
binde = , XF86KbdBrightnessUp, exec, asusctl -n
binde = , XF86KbdBrightnessDown, exec, asusctl -p
bind = , XF86TouchpadToggle, exec,
bind = SUPER, T, exec, grim -g "$(slurp)" -t ppm - | tesseract -l pol - - | wl-copy && notify-send "Copied text: " "\"$(wl-paste)\""
bind = SUPER, SEMICOLON, exec, ~/.config/rofi/powermenu/type-2/powermenu.sh
bind = SUPER, X, exec, keepassxc
bind = SUPERSHIFT, M, exec, ~/Scripts/man.sh
bind = SUPER, E, exec, wl-paste | spd-say -e -w -i 10
bind = SUPERCONTROL, E, exec, wl-paste | spd-say -e -w -i 10 -l pl
bind = SUPERSHIFT, E, exec, spd-say -C
bind = SUPER, G, togglegroup
binde = SUPERSHIFT, G, changegroupactive, f
bind = SUPERCONTROL, R, exec, replay-sorcery save
bindm = SUPER, mouse:272, movewindow
bindm = SUPER, mouse:273, resizewindow
binds {
pass_mouse_when_bound=0
}
exec=killall -9 waybar; waybar
exec-once=foot --server
exec-once=hyprctl setcursor Bibata-Modern-Classic 24
exec-once=wl-paste --watch cliphist store
exec-once=hyprctl dispatch exec "swww init" && sleep 0.5
exec-once=swww img -o eDP-1 ~/wall0.jpg
exec-once=swww img -o HDMI-A-1 ~/wall1.jpg
exec-once=rog-control-center
exec-once=mullvad-vpn
exec-once=gammastep-indicator
exec-once=sleep 1 && keepassxc
exec-once=/usr/lib/polkit-gnome/polkit-gnome-authentication-agent-1
#exec-once=foot -e nvim ~/todo.md
exec-once=nm-applet --indicator
exec-once=blueman-applet
exec-once=$HOME/.local/share/hyprload/hyprload.sh
# no black border on grimblast screenshots
layerrule = noanim, ^(selection)$
layerrule = blur, ^(waybar)$
# temporary fix to swaylock screenshoting rofi before locking
layerrule = noanim, ^(rofi)$
plugin {
csgo-vulkan-fix {
res_w = 2560
res_h = 1440
}
}
'';
};
};
}

View file

@ -0,0 +1,8 @@
_: {
imports = [
./foot
./hypr
./rofi
./waybar
];
}

View file

View file

@ -0,0 +1,107 @@
{
config,
...
}:
{
config = {
programs.foot = {
enable = true;
server.enable = true;
settings = {
main = {
term = "xterm-256color";
app-id = "foot";
title = "foot";
locked-title = "no";
font = "JetBrains Mono Nerd Font:size=16";
line-height = 20;
letter-spacing = 0;
horizontal-letter-offset = 0;
vertical-letter-offset = -0.75;
box-drawings-uses-font-glyphs = "no";
dpi-aware = "no";
initial-window-size-chars = "104x36";
initial-window-mode = "windowed";
pad = "5x5 center";
resize-delay-ms = 100;
notify = "notify-send -a \${app-id} -i \${app-id} \${title} \${body}";
bold-text-in-bright = "no";
word-delimiters = ",`|:\"'()[]{}<>";
selection-target = "primary";
};
bell = {
urgent = "yes";
notify = "yes";
command = "notify-send bell";
command-focused = "no";
};
scrollback = {
lines = 100000;
multiplier = 10.0;
indicator-position = "relative";
indicator-format = "line";
};
url = {
launch = "xdg-open \${url}";
label-letters = "sadfjklewcmpgh";
osc8-underline = "always";
protocols = "http, https, ftp, ftps, file, gemini, gopher, irc, ircs";
uri-characters = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789-_.,~:;/?#@!$&%*+=\"'()[]";
};
cursor = {
style = "block";
blink = "no";
};
mouse = {
hide-when-typing = "yes";
alternate-scroll-mode = "yes";
};
colors = {
alpha = 0.85;
foreground = "dee1e6";
background = "101419";
# Normal/regular colors (color palette 0-7)
regular0 = "c5c8cd"; # black
regular1 = "bd3c42"; # red
regular2 = "69b373"; # green
regular3 = "ceac67"; # yellow
regular4 = "4d82c8"; # blue
regular5 = "a367cb"; # magenta
regular6 = "519bc6"; # cyan
regular7 = "101419"; # white
# Bright colors (color palette 8-15)
bright0 = "989ba0"; # bright black
bright1 = "c24147"; # bright red
bright2 = "6eb878"; # bright green
bright3 = "d3b16c"; # bright yellow
bright4 = "5287cd"; # bright blue
bright5 = "a86cd0"; # bright magenta
bright6 = "56a0cb"; # bright cyan
bright7 = "1f2328"; # bright white
};
csd = {
preferred = "server";
};
key-bindings = {
show-urls-launch = "Control+Shift+u";
unicode-input = "Control+Shift+i";
};
mouse-bindings = {
selection-override-modifiers = "Shift";
primary-paste = "BTN_MIDDLE";
select-begin = "BTN_LEFT";
select-begin-block = "Control+BTN_LEFT";
select-extend = "BTN_RIGHT";
select-extend-character-wise = "Control+BTN_RIGHT";
select-word = "BTN_LEFT-2";
select-word-whitespace = "Control+BTN_LEFT-2";
select-row = "BTN_LEFT-3";
};
};
};
};
}

View file

@ -0,0 +1,260 @@
{
config,
inputs,
pkgs,
...
}: {
config = {
wayland.windowManager.hyprland = {
enable = true;
plugins = [
inputs.hyprland-plugins.packages.${pkgs.system}.csgo-vulkan-fix
];
extraConfig = ''
#laptop
#monitor=eDP-1,2560@1440@165,0x0,1
#workspace=eDP-1,1
#second monitor
#monitor=HDMI-A-1,2560x1440@144,2560x0,1
#workspace=HDMI-A-1,11
workspace = 1, monitor: eDP-1
workspace = 2, monitor: eDP-1
workspace = 3, monitor: eDP-1
workspace = 4, monitor: eDP-1
workspace = 5, monitor: eDP-1
workspace = 6, monitor: eDP-1
workspace = 7, monitor: eDP-1
workspace = 8, monitor: eDP-1
workspace = 9, monitor: eDP-1
workspace = 10, monitor: eDP-1
#wsbind = 11, HDMI-a-1
#wsbind = 12, HDMI-a-1
#wsbind = 13, HDMI-a-1
#wsbind = 14, HDMI-a-1
#wsbind = 15, HDMI-a-1
#wsbind = 16, HDMI-a-1
#wsbind = 17, HDMI-a-1
#wsbind = 18, HDMI-a-1
#wsbind = 19, HDMI-a-1
#wsbind = 20, HDMI-a-1
input {
kb_layout=pl
kb_variant=
kb_model=
kb_options=
kb_rules=
follow_mouse=1
touchpad {
disable_while_typing=true
}
}
general {
sensitivity=1.0 # for mouse cursor
gaps_in=5
gaps_out=5
#gaps_in=0
#gaps_out=0
border_size=2
#border_size=1
col.active_border=0xFFCC241D
col.inactive_border=0xFF928374
col.group_border_active=0xFF98971A
col.group_border=0xFF928374
apply_sens_to_raw=0 # whether to apply the sensitivity to raw input (e.g. used by games where you aim using your mouse)
#no_border_on_floating=true
}
decoration {
#rounding=0
rounding=10
blur=1
blur_size=3
blur_passes=2
blur_new_optimizations=1
drop_shadow=1
shadow_range=15
shadow_render_power=2
shadow_ignore_window=1
shadow_offset= 2 4
shadow_scale=1
col.shadow=0xAF282828
}
gestures {
workspace_swipe=1
workspace_swipe_distance=200
workspace_swipe_invert=1
workspace_swipe_min_speed_to_force=20
workspace_swipe_cancel_ratio=0.5
}
bezier=dupa, 0.1, 0.9, 0.1, 1.05
animations {
enabled=1
animation=windows,1,4,dupa,popin
animation=windowsOut,1,7,dupa,slide
animation=border,1,15,default
animation=fade,1,10,default
animation=workspaces,1,5,dupa,slidevert
}
dwindle {
no_gaps_when_only=1
}
misc {
enable_swallow=0
swallow_regex=foot
focus_on_activate=true
vrr=1
animate_manual_resizes=false
animate_mouse_windowdragging=false
}
windowrulev2 = float, class:^(Tor Browser)$
windowrulev2 = float, class:^(foot)$
windowrulev2 = float, class:^(mpv)$
windowrulev2 = float, class:^(imv)$
windowrulev2 = float, class:^(Vieb)$
windowrulev2 = float, title:^(Picture-in-Picture)$
windowrulev2 = float, class:^(code), title: ^(Open*)
windowrulev2 = size 70% 70%, class:^(code), title: ^(Open*)
windowrulev2 = center, class: ^(code), title: ^(Open*)
windowrulev2 = float, class:^(org.keepassxc.KeePassXC)$
windowrulev2 = size 960 670, title:^(ROG Control Center)$
bind = SUPER, RETURN, exec, footclient
bind = SUPER, W, exec, librewolf
bind = SUPERSHIFT, W, exec, firefox
bind = SUPER, Q, killactive
bind = SUPER, F, fullscreen, 0
bind = SUPER, M, fullscreen, 1
bind = SUPER, D, exec, rofi -show drun
bind = SUPER, SPACE, togglefloating,
bind = SUPER, C, exec, rofi -show calc -modi calc -no-show-match -no-sort
bind = SUPERSHIFT, C, centerwindow
bind = SUPER, R, bringactivetotop
binde = SUPER, H, exec, hyprsome focus l
binde = SUPER, J, exec, hyprsome focus d
binde = SUPER, K, exec, hyprsome focus u
binde = SUPER, L, exec, hyprsome focus r
binde = SUPERCTRL, J, focusmonitor, l
binde = SUPERCTRL, K, focusmonitor, r
bind = SUPER, 1, exec, hyprsome workspace 1
bind = SUPER, 2, exec, hyprsome workspace 2
bind = SUPER, 3, exec, hyprsome workspace 3
bind = SUPER, 4, exec, hyprsome workspace 4
bind = SUPER, 5, exec, hyprsome workspace 5
bind = SUPER, 6, exec, hyprsome workspace 6
bind = SUPER, 7, exec, hyprsome workspace 7
bind = SUPER, 8, exec, hyprsome workspace 8
bind = SUPER, 9, exec, hyprsome workspace 9
bind = SUPER, 0, exec, hyprsome workspace 10
bind = SUPERSHIFT, 1, exec, hyprsome move 1
bind = SUPERSHIFT, 2, exec, hyprsome move 2
bind = SUPERSHIFT, 3, exec, hyprsome move 3
bind = SUPERSHIFT, 4, exec, hyprsome move 4
bind = SUPERSHIFT, 5, exec, hyprsome move 5
bind = SUPERSHIFT, 6, exec, hyprsome move 6
bind = SUPERSHIFT, 7, exec, hyprsome move 7
bind = SUPERSHIFT, 8, exec, hyprsome move 8
bind = SUPERSHIFT, 9, exec, hyprsome move 9
bindle = , XF86MonBrightnessUp, exec, ~/Scripts/notif_brightness.sh set +5%
bindle = , XF86MonBrightnessDown, exec, ~/Scripts/notif_brightness.sh set 5%-
bindl = , XF86AudioMedia, exec, playerctl play-pause
bindl = , XF86AudioPlay, exec, playerctl play-pause
bindl = , XF86AudioStop, exec, playerctl stop
bindl = , XF86AudioPrev, exec, playerctl previous
bindl = , XF86AudioNext, exec, playerctl next
bindle = , XF86AudioRaiseVolume, exec, ~/Scripts/notif_volume.sh -ui 5
bindle = , XF86AudioLowerVolume, exec, ~/Scripts/notif_volume.sh -ud 5
bindl = , XF86AudioMute, exec, ~/Scripts/notif_volume.sh --toggle-mute
# https://github.com/n3oney/shadower
bind = SUPER, S, exec, grimblast save area - | shadower | tee "$(xdg-user-dir PICTURES)/Screenshots/$(date +'screenshot-%Y%m%d%H%M%S.png')" | wl-copy
bind = SUPERSHIFT, S, exec, grimblast save area - | swappy -f - -o - | shadower | tee "$(xdg-user-dir PICTURES)/Screenshots/$(date +'screenshot-%Y%m%d%H%M%S.png')" | wl-copy
bind = SUPERSHIFT, R, exec, hyprctl reload
bind = SUPER, P, pin
bind = , XF86Launch1, exec, rog-control-center
binde = , XF86Launch3, exec, asusctl led-mode -n
bind = , XF86Launch4, exec, asusctl profile -n; pkill -SIGRTMIN+8 waybar
binde = , XF86KbdBrightnessUp, exec, asusctl -n
binde = , XF86KbdBrightnessDown, exec, asusctl -p
bind = , XF86TouchpadToggle, exec,
bind = SUPER, T, exec, grim -g "$(slurp)" -t ppm - | tesseract -l pol - - | wl-copy && notify-send "Copied text: " "\"$(wl-paste)\""
bind = SUPER, SEMICOLON, exec, ~/.config/rofi/powermenu/type-2/powermenu.sh
bind = SUPER, X, exec, keepassxc
bind = SUPERSHIFT, M, exec, ~/Scripts/man.sh
bind = SUPER, E, exec, wl-paste | spd-say -e -w -i 10
bind = SUPERCONTROL, E, exec, wl-paste | spd-say -e -w -i 10 -l pl
bind = SUPERSHIFT, E, exec, spd-say -C
bind = SUPER, G, togglegroup
binde = SUPERSHIFT, G, changegroupactive, f
bind = SUPERCONTROL, R, exec, replay-sorcery save
bindm = SUPER, mouse:272, movewindow
bindm = SUPER, mouse:273, resizewindow
binds {
pass_mouse_when_bound=0
}
#exec=pkill -9 waybar; waybar
exec=systemctl restart --user waybar.service
exec-once=foot --server
exec-once=hyprctl setcursor Bibata-Modern-Classic 24
exec-once=wl-paste --watch cliphist store
exec-once=hyprctl dispatch exec "swww init" && sleep 0.5
exec-once=swww img -o eDP-1 ~/wall0.jpg
exec-once=swww img -o HDMI-A-1 ~/wall1.jpg
exec-once=rog-control-center
exec-once=mullvad-vpn
exec-once=gammastep-indicator
exec-once=sleep 1 && keepassxc
exec-once=/usr/lib/polkit-gnome/polkit-gnome-authentication-agent-1
#exec-once=foot -e nvim ~/todo.md
exec-once=nm-applet --indicator
exec-once=blueman-applet
exec-once=$HOME/.local/share/hyprload/hyprload.sh
# no black border on grimblast screenshots
layerrule = noanim, ^(selection)$
layerrule = blur, ^(waybar)$
# temporary fix to swaylock screenshoting rofi before locking
layerrule = noanim, ^(rofi)$
plugin {
csgo-vulkan-fix {
res_w = 2560
res_h = 1440
}
}
'';
};
};
}

View file

@ -0,0 +1,14 @@
{
config,
pkgs,
...
}: {
config = {
programs.rofi = {
enable = true;
package = pkgs.rofi-wayland;
cycle = true;
terminal = "foot";
};
};
}

View file

@ -0,0 +1,525 @@
{
config,
inputs,
pkgs,
...
}: {
config = {
programs.waybar = {
enable = true;
package = inputs.hyprland.packages.${pkgs.system}.waybar-hyprland;
systemd.enable = true;
settings.mainBar = {
gtk-layer-shell = true;
layer = "top";
modules-left = [ "custom/launcher" "custom/power_profile" "custom/xwayland" "tray" "hyprland/workspaces" ];
modules-center = [ "hyprland/window" ];
modules-right = [ "custom/dnd" "backlight" "cava" "pulseaudio" "clock" "battery" "custom/power" ];
pulseaudio = {
tooltip = false;
scroll-step = "1";
format = " {icon} {volume}%";
format-muted = " 󰸈 {volume}%";
format-icons = {
default = ["󰕿" "󰖀" "󰕾"];
};
on-click = "pactl set-sink-mute @DEFAULT_SINK@ toggle";
};
"hyprland/workspaces" = {
sort-by-name = false;
sort-by-coordinates = true;
on-click = "activate";
on-scroll = "~/Scripts/cycle_workspace.sh 1";
active-only = false;
format = "{icon}";
format-icons = {
"1" = "1";
"2" = "2";
"3" = "3";
"4" = "4";
"5" = "5";
"6" = "6";
"7" = "7";
"8" = "8";
"9" = "9";
"10" = "10";
"11" = "1";
"12" = "2";
"13" = "3";
"14" = "4";
"15" = "5";
"16" = "6";
"17" = "7";
"18" = "8";
"19" = "9";
"20" = "10";
};
persistent_workspaces = {
"1" = [ "eDP-1" ];
"2" = [ "eDP-1" ];
"3" = [ "eDP-1" ];
"4" = [ "eDP-1" ];
"5" = [ "eDP-1" ];
"6" = [ "eDP-1" ];
"7" = [ "eDP-1" ];
"8" = [ "eDP-1" ];
"9" = [ "eDP-1" ];
"10" = [ "eDP-1" ];
"11" = [ "HDMI-A-1" ];
"12" = [ "HDMI-A-1" ];
"13" = [ "HDMI-A-1" ];
"14" = [ "HDMI-A-1" ];
"15" = [ "HDMI-A-1" ];
"16" = [ "HDMI-A-1" ];
"17" = [ "HDMI-A-1" ];
"18" = [ "HDMI-A-1" ];
"19" = [ "HDMI-A-1" ];
"20" = [ "HDMI-A-1" ];
};
};
network = {
tooltip = false;
format = "{ipaddr} {icon}";
format-alt = "{icon}";
format-icons = {
wifi = [ "󰖩" ];
ethernet = [ "󰈀" ];
disconnected = [ "󰖪" ];
};
on-click-right = "foot -e nmtui";
};
backlight = {
interval = 1;
align = 0;
rotate = 0;
format = "{icon} {percent}%";
format-icons = [ "󰃚" "󰃛" "󰃜" "󰃝" "󰃞" "󰃟" "󰃠" ];
on-scroll-up = "~/Scripts/bright.sh s +1%";
on-scroll-down = "~/Scripts/bright.sh s 1%-";
smooth-scrolling-threshold = 1;
};
battery = {
interval = 1;
states = {
good = 75;
warning = 30;
critical = 20;
};
format = "{icon}{capacity}%";
format-charging = "󰚥{icon}{capacity}% 󱐋{power}";
format-discharging = "{icon}{capacity}% 󱐋{power}";
format-icons = ["󰂎" "󰁺" "󰁻" "󰁼" "󰁽" "󰁾" "󰁿" "󰂀" "󰂁" "󰂂" "󰁹"];
format-charging-icons = ["󰢟" "󰢜" "󰂆" "󰂇" "󰂈" "󰢝" "󰂉" "󰢞" "󰂊" "󰂋" "󰂅"];
};
tray = {
icon-size = 18;
spacing = 10;
};
clock = {
interval = 1;
format = "{:󱑁 %H:%M:%S 󰃰 %d/%m/%Y}";
format-alt = "{:󱑁 %H:%M:%S}";
tooltip-format = "<tt><small>{calendar}</small></tt>";
calendar = {
mode = "year";
mode-mon-col = 3;
weeks-pos = "right";
on-scroll = 1;
on-click-right = "mode";
format = {
months = "<span color='#EBDBB2'><b>{}</b></span>";
days = "<span color='#B16286'><b>{}</b></span>";
weeks = "<span color='#458588'><b>T{:%W}</b></span>";
weekdays = "<span color='#D79921'><b>{}</b></span>";
today = "<span color='#CC241D'><b><u>{}</u></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";
};
};
};
cpu = {
interval = 1;
format = "󰻠 {}%";
max-length = 10;
};
memory = {
interval = 1;
format = "󰍛 {}%";
max-length = 10;
};
"custom/media" = {
interval = 30;
format = "{icon} {}";
return-type = "json";
max-length = 20;
format-icons = {
spotify = " ";
default = " ";
};
escape = true;
exec = "$HOME/.config/system_scripts/mediaplayer.py 2> /dev/null";
on-click = "playerctl play-pause";
};
"custom/launcher" = {
format = "󰣇 ";
on-click = "~/.config/rofi/launchers/type-2/launcher.sh";
on-click-right = "pkill rofi";
};
"custom/power" = {
format = "󰐥";
on-click = "~/.config/rofi/powermenu/type-2/powermenu.sh";
};
"hyprland/window" = {
format = "{}";
separate-outputs = true;
};
gamemode = {
format = "{glyph}";
format-alt = "{glyph} {count}";
glyph = "󰊴";
hide-not-running = true;
use-icon = true;
icon-name = "input-gaming-symbolic";
icon-spacing = 4;
icon-size = 20;
tooltip = true;
tooltip-format = "Games running: {count}";
};
"custom/dnd" = {
exec = "~/Scripts/waybar-dunst.sh";
on-click = "~/Scripts/dnd.sh";
restart-interval = 1;
tooltip = false;
};
cava = {
framerate = 165;
autosens = 1;
sensitivity = 100;
bars = 14;
lower_cutoff_freq = 50;
higher_cutoff_freq = 10000;
method = "pipewire";
source = "auto";
stereo = true;
reverse = false;
bar_delimiter = 0;
monstercat = false;
waves = false;
noise_reduction = 0.77;
input_delay = 2;
format-icons = ["" "" "" "" "" "" "" "" ];
actions = {
on-click-right = "mode";
};
};
"custom/power_profile" = {
exec = "asusctl profile -p | sed s:'Active profile is'::";
interval = 30;
format = "󰈐{}";
format-alt-click = "click-right";
format-alt = "󰈐";
on-click = "asusctl profile -n; pkill -SIGRTMIN+8 waybar";
signal = 8;
};
"custom/xwayland" = {
exec = "hyprctl clients | rg -e 'xwayland: [1]' | wc -l";
interval = 1;
format = "X {}";
};
};
style = ''
@define-color base #1e1e2e;
@define-color mantle #181825;
@define-color crust #11111b;
@define-color text #cdd6f4;
@define-color subtext0 #a6adc8;
@define-color subtext1 #bac2de;
@define-color surface0 #313244;
@define-color surface1 #45475a;
@define-color surface2 #585b70;
@define-color overlay0 #6c7086;
@define-color overlay1 #7f849c;
@define-color overlay2 #9399b2;
@define-color blue #89b4fa;
@define-color lavender #b4befe;
@define-color sapphire #74c7ec;
@define-color sky #89dceb;
@define-color teal #94e2d5;
@define-color green #a6e3a1;
@define-color yellow #f9e2af;
@define-color peach #fab387;
@define-color maroon #eba0ac;
@define-color red #f38ba8;
@define-color mauve #cba6f7;
@define-color pink #f5c2e7;
@define-color flamingo #f2cdcd;
@define-color rosewater #f5e0dc;
* {
border-radius: 10px;
font-family: Material Design Icons;
font-size: 16px;
color: @text;
}
window#waybar {
background-color: alpha(@base, 0.5);
border-radius: 0px;
}
window#waybar.hidden {
opacity: 0.2;
}
#window {
margin-top: 4px;
margin-bottom: 4px;
padding-left: 5px;
padding-right: 5px;
background: @mantle;
color: @teal;
font-family: JetBrains Mono;
}
#workspaces {
padding-left: 5px;
}
#workspaces button {
border-radius: 15px;
padding-top: 0px;
padding-right: 0px;
padding-bottom: 0px;
padding-left: 0px;
margin-top: 6px;
margin-right: 3px;
margin-bottom: 6px;
margin-left: 3px;
background-color: @mantle;
min-width: 24px;
}
#workspaces button.active {
padding-top: 0px;
padding-bottom: 0px;
padding-right: 0px;
padding-left: 0px;
margin-top: 6px;
margin-right: 3px;
margin-bottom: 6px;
margin-left: 3px;
background-color: @blue;
min-width: 24px;
}
#workspaces button:hover {
background: alpha(@mantle, 0.7);
transition-property: background, min-width;
transition-duration: 0.5s;
transition-timing-function: ease;
}
#workspaces button.focused {
background-color: @yellow;
}
#workspaces button.urgent {
background-color: @red;
}
.modules-left > widget:first-child > #workspaces {
margin-left: 0;
}
.modules-right > widget:first-child > #workspaces {
margin-right: 0;
}
#pulseaudio {
margin-top: 3px;
margin-bottom: 3px;
margin-left: 8px;
padding-left: 10px;
padding-right: 10px;
transition: none;
background: @mantle;
color: @peach;
}
#cava {
margin-top: 3px;
margin-bottom: 3px;
margin-left: 8px;
margin-right: 0px;
padding-left: 10px;
padding-right: 0px;
transition: none;
background: @mantle;
color: @peach;
border-top-right-radius: 0;
border-bottom-right-radius: 0;
}
#battery {
margin-top: 3px;
margin-bottom: 3px;
margin-left: 8px;
padding-left: 10px;
padding-right: 10px;
transition: none;
background: @mantle;
color: @teal;
}
@keyframes blink {
to {
background-color: @red;
}
}
#battery.charging, #battery.plugged {
background-color: @mantle;
}
#battery.critical:not(.charging) {
background-color: @mantle;
animation-name: blink;
animation-duration: 0.5s;
animation-timing-function: linear;
animation-iteration-count: infinite;
animation-direction: alternate;
}
#backlight {
margin-top: 3px;
margin-bottom: 3px;
margin-left: 8px;
padding-left: 10px;
padding-right: 10px;
transition: none;
background: @mantle;
color: @yellow;
}
#clock {
margin-top: 3px;
margin-bottom: 3px;
margin-left: 8px;
padding-left: 10px;
padding-right: 10px;
transition-property: min-width;
transition-duration: 0.5s;
background: @mantle;
color: @pink;
}
#custom-power_profile {
margin-top: 3px;
margin-bottom: 3px;
margin-left: 8px;
padding-left: 10px;
padding-right: 10px;
transition: none;
background: @mantle;
color: @rosewater;
}
#tray {
margin-top: 3px;
margin-bottom: 3px;
margin-left: 8px;
padding-left: 10px;
padding-right: 10px;
transition: none;
background: @mantle;
}
#custom-launcher {
font-size: 16px;
margin-top: 3px;
margin-bottom: 3px;
margin-left: 8px;
padding-left: 10px;
padding-right: 5px;
transition: none;
background: @mantle;
color: @blue;
}
#custom-power {
font-size: 20px;
margin-top: 3px;
margin-bottom: 3px;
margin-left: 8px;
margin-right: 8px;
padding-left: 10px;
padding-right: 10px;
transition: none;
background: @mantle;
color: @red;
}
#custom-wallpaper {
margin-top: 3px;
margin-bottom: 3px;
margin-left: 8px;
padding-left: 10px;
padding-right: 10px;
transition: none;
background: @mantle;
}
#custom-updates {
margin-top: 3px;
margin-bottom: 3px;
margin-left: 8px;
padding-left: 10px;
padding-right: 10px;
transition: none;
background: @mantle;
}
#custom-media {
margin-top: 3px;
margin-bottom: 3px;
margin-left: 8px;
padding-left: 10px;
padding-right: 10px;
transition: none;
background: @mantle;
}
#custom-dnd {
margin-top: 3px;
margin-bottom: 3px;
margin-left: 8px;
padding-left: 10px;
padding-right: 10px;
transition: none;
background: @mantle;
color: @flamingo;
}
#custom-xwayland {
margin-top: 3px;
margin-bottom: 3px;
margin-left: 8px;
padding-left: 10px;
padding-right: 10px;
transition: none;
background: @mantle;
color: @green;
}
'';
};
};
}

View file

@ -0,0 +1,5 @@
_: {
imports = [
./dunst
];
}

View file

@ -0,0 +1,86 @@
{
config,
...
}: {
config = {
services.dunst = {
enable = true;
settings = {
global = {
monitor = 0;
follow = "mouse";
width = 300;
height = 300;
origin = "top-center";
offset = "0x15";
scale = 0;
notification_limit = 3;
idle_threshold = 120;
progress_bar = true;
progress_bar_height = 10;
progress_bar_frame_width = 0;
progress_bar_min_width = 150;
progress_bar_max_width = 300;
indicate_hidden = "yes";
transparency = 10;
separator_height = 2;
padding = 10;
frame_width = 3;
frame_color = "#98971A";
separator_color = "#689D6A";
highlight = "#458588";
sort = "yes";
font = "JetBrains Mono 12";
line_height = 0;
markup = "full";
format = "<b>%s</b>\n%b";
alignment = "right";
vertical_alignment = "center";
show_age_threshold = 60;
ellipsize = "middle";
ignore_newline = "no";
stack_duplicates = true;
hide_duplicate_count = false;
show_indicators = "yes";
icon_position = "left";
min_icon_size = 0;
max_icon_size = 32;
icon_path = "/usr/share/icons/Gruvbox-Material-Dark/16x16/status/:/usr/share/icons/Gruvbox-Material-Dark/16x16/devices/";
sticky_history = "yes";
history_length = 20;
dmenu = "/usr/bin/dmenu -p dunst:";
browser = "/usr/bin/xdg-open";
always_run_script = true;
title = "Dunst";
class = "dunst";
corner_radius = 10;
ignore_dbusclose = false;
force_xwayland = false;
force_xinerama = false;
mouse_left_click = "do_action, close_current";
mouse_middle_click = "context";
mouse_right_click = "close_all";
};
experimental = {
per_monitor_dpi = false;
};
urgency_low = {
background = "#3C3836";
foreground = "#EBDBB2";
timeout = 5;
};
urgency_normal = {
background = "#7C6F64";
foreground = "#EBDBB2";
timeout = 6;
};
urgency_critical = {
background = "#CC241D";
foreground = "#EBDBB2";
frame_color = "#DB4934";
timeout = 0;
};
};
};
};
}

View file

@ -0,0 +1,5 @@
_: {
imports = [
./neovim
];
}

View file

@ -0,0 +1,116 @@
{
config,
inputs,
pkgs,
...
}: {
xdg.configFile."nvim" = { source = ./lua; recursive = true; };
programs.neovim = {
enable = true;
viAlias = true;
vimAlias = true;
vimdiffAlias = true;
withPython3 = true;
#plugins = {
# plenary-nvim.enable = true;
# fugitive.enable = true;
# airline = {
# enable = true;
# powerline = true;
# theme = "gruvbox";
# };
# treesitter = {
# enable = true;
# grammars = [
# "bash"
# "c"
# "cmake"
# "comment"
# "cpp"
# "css"
# "git_config"
# "git_rebase"
# "gitattributes"
# "gitcommit"
# "gitignore"
# "html"
# "ini"
# "java"
# "json"
# "kotlin"
# "lua"
# "markdown"
# "markdown_inline"
# "meson"
# "ninja"
# "nix"
# "python"
# "regex"
# "ron"
# "rust"
# "sql"
# "toml"
# "typescript"
# "vim"
# "vimdoc"
# "wgsl"
# "yaml"
# ];
# };
# coq-nvim = {
# enable = true;
# autoStart = "shut-up";
# installArtifacts = true;
# recommendedKeymaps = true;
# };
# gitsigns = {
# enable = true;
# signcolumn = true;
# numhl = true;
# wordDiff = true;
# currentLineBlame = true;
# };
# lsp = {
# enable = true;
# coqSupport = true;
# servers = {
# bashls.enable = true;
# clangd.enable = true;
# cssls.enable = true;
# html.enable = true;
# kotlin-language-server.enable = true;
# ltex.enable = true;
# nil.enable = true;
# rust-analyzer.enable = true;
# };
# };
# telescope.enable = true;
# comment.enable = true;
#};
#mappings = {
#
#};
#options = {
# number = true;
# relativenumber = true;
# autoread = true;
# so = 7;
# cmdheight = 1;
# ignorecase = true;
# smartcase = true;
# showmatch = true;
# timeoutlen = 500;
# encoding = "utf8";
# smarttab = true;
# shiftwidth = 4;
# tabstop = 4;
# expandtab = true;
# linebreak = true;
# smartindent = true;
# updatetime = 300;
# hidden = true;
# background = "dark";
# mousemoveevent = true;
#};
};
}

View file

@ -0,0 +1,2 @@
vim.opt.shiftwidth=2
vim.opt.tabstop=2

View file

@ -0,0 +1,2 @@
vim.opt.shiftwidth=2
vim.opt.tabstop=2

View file

@ -0,0 +1,2 @@
vim.opt.shiftwidth=8
vim.opt.tabstop=8

View file

@ -0,0 +1,2 @@
vim.opt.shiftwidth=4
vim.opt.tabstop=4

View file

@ -0,0 +1,2 @@
vim.opt.shiftwidth=2
vim.opt.tabstop=2

View file

@ -0,0 +1,16 @@
require("global")
require("keymap")
require("plugins")
require("opts")
require("diagnostic")
require("lsp")
require("dap_conf")
-- shit I haven't been able to port yet
vim.cmd [[
if has('termguicolors')
set termguicolors
endif
filetype plugin indent on
autocmd VimEnter * hi Normal guibg=none
]]

View file

@ -0,0 +1,3 @@
{
"workspace.checkThirdParty": false
}

View file

@ -0,0 +1 @@
local dap = require("dap")

View file

@ -0,0 +1,12 @@
vim.diagnostic.config({
-- text after the erroneous line
virtual_text = true,
signs = false,
--float = { border = "single" },
})
local opts = { noremap = true, silent = true }
vim.keymap.set('n', '<leader>e', vim.diagnostic.open_float, opts)
vim.keymap.set('n', '[d', vim.diagnostic.goto_prev, opts)
vim.keymap.set('n', ']d', vim.diagnostic.goto_next, opts)
vim.keymap.set('n', '<leader>q', vim.diagnostic.setloclist, opts)

View file

@ -0,0 +1,15 @@
-- no triangles without it
vim.g.airline_powerline_fonts = true
vim.g.airline_theme="catppuccin"
-- TODO idk if these actually do anything
vim.g.mapleader = ' '
vim.g.maplocalleader = ' '
if vim.fn.exists("g:neovide") then
vim.g.neovide_refresh_rate = 165
vim.g.neovide_transparency = 0.85
vim.g.neovide_cursor_vfx_mode = "railgun"
end
vim.g.lichess_api_token = os.getenv("LICHESS_API_TOKEN")

View file

@ -0,0 +1,7 @@
--vim.keymap.set("n", "n", "h")
--vim.keymap.set("n", "e", "j")
--vim.keymap.set("n", "i", "k")
--vim.keymap.set("n", "o", "l")
--vim.keymap.set("n", "K", "N")
--vim.keymap.set("n", "k", "n")
--vim.keymap.set("n", "z", "b")

View file

@ -0,0 +1,97 @@
require("mason").setup()
require("mason-lspconfig").setup {
ensure_installed = {
"rust_analyzer",
"wgsl_analyzer",
"tsserver",
"svelte",
"lua_ls",
"clangd",
"kotlin_language_server",
"jedi_language_server",
"jdtls",
},
}
local servers = {
"tsserver",
"svelte",
"lua_ls",
"clangd",
"kotlin_language_server",
"html",
"cssls",
"bashls",
"cmake",
"jedi_language_server",
"jdtls",
"wgsl_analyzer",
"nil_ls",
}
-- shit wouldn't stop whining about an unused local variable
---@diagnostic disable-next-line: unused-local
local on_attach = function(client, bufnr)
vim.api.nvim_buf_set_option(bufnr, 'omnifunc', 'v:lua.vim.lsp.omnifunc')
local bufopts = { noremap = true, silent = true, buffer = bufnr }
vim.keymap.set('n', 'gD', vim.lsp.buf.declaration, bufopts)
vim.keymap.set('n', 'gd', vim.lsp.buf.definition, bufopts)
vim.keymap.set('n', 'K', vim.lsp.buf.hover, bufopts)
vim.keymap.set('n', 'gi', vim.lsp.buf.implementation, bufopts)
vim.keymap.set('n', '<C-k>', vim.lsp.buf.signature_help, bufopts)
vim.keymap.set('n', '<space>wa', vim.lsp.buf.add_workspace_folder, bufopts)
vim.keymap.set('n', '<space>wr', vim.lsp.buf.remove_workspace_folder, bufopts)
vim.keymap.set('n', '<space>wl', function()
print(vim.inspect(vim.lsp.buf.list_workspace_folders()))
end, bufopts)
vim.keymap.set('n', '<space>D', vim.lsp.buf.type_definition, bufopts)
vim.keymap.set('n', '<space>r', vim.lsp.buf.rename, bufopts)
vim.keymap.set('n', '<space>a', vim.lsp.buf.code_action, bufopts)
vim.keymap.set('n', 'gr', vim.lsp.buf.references, bufopts)
vim.keymap.set('n', '<C-f>', function() vim.lsp.buf.format { async = true } end, bufopts)
end
local lsp_flags = {
}
for _, server in ipairs(servers) do
require("lspconfig")[server].setup(require("coq").lsp_ensure_capabilities({
on_attach = on_attach,
flags = lsp_flags,
}))
end
require("flutter-tools").setup {
lsp = require("coq").lsp_ensure_capabilities({
on_attach = on_attach,
flags = lsp_flags,
virtual_text = true,
}),
}
local rt = require("rust-tools")
rt.setup({
tools = {
inlay_hints = {
auto = true,
only_current_line = true,
show_parameter_hints = true,
}
},
server = {
on_attach = function(client, bufnr)
on_attach(client, bufnr)
-- Hover actions
vim.keymap.set("n", "<C-space>", rt.hover_actions.hover_actions, { buffer = bufnr })
-- Code action groups
vim.keymap.set("n", "<leader>a", rt.code_action_group.code_action_group, { buffer = bufnr })
end,
-- https://github.com/simrat39/rust-tools.nvim/issues/300
settings = {
["rust-analyzer"] = {
inlayHints = { locationLinks = false },
},
},
},
})

View file

@ -0,0 +1,39 @@
-- line numbers on the left
vim.opt.number = true
-- show number relative to current line
vim.opt.relativenumber = true
-- re-reads a file when it's changed
vim.opt.autoread = true
-- it scrolls the file when the cursor is x amount of lines from the edge
vim.opt.so = 7
-- show cmd even if not used
vim.opt.cmdheight = 1
-- ignores the case when searching
vim.opt.ignorecase = true
-- IDK do :help options and read the part about this I don't understand
vim.opt.smartcase = true
-- when you type a closing bracket it briefly jump to the opening one
vim.opt.showmatch = true
-- time in millis how long it wauts for another key in a sequence
vim.opt.timeoutlen = 500
-- yeah
vim.opt.encoding = "utf8"
-- IDK read the manual
vim.opt.smarttab = true
-- insert 4 spaces instead of tab
vim.opt.shiftwidth = 4
vim.opt.tabstop = 4
vim.opt.expandtab = true
-- breaks line when too long
vim.opt.linebreak = true
-- indents but smart !
vim.opt.smartindent = true
-- saves the swap file to disk after this many millis
vim.opt.updatetime = 300
-- to keep the terminals from toggleterm on when hidden
vim.opt.hidden = true
vim.opt.background = "dark"
-- for bufferline hover shit
vim.opt.mousemoveevent = true
-- true color
--vim.opt.termguicolors = true

View file

@ -0,0 +1,186 @@
require "paq" {
-- the paq:
"savq/paq-nvim",
-- tj lib
"nvim-lua/plenary.nvim",
-- TODO do I need this
"cdelledonne/vim-cmake",
-- TODO do I need this
"tpope/vim-fugitive",
-- the line on the bottom
"vim-airline/vim-airline",
"vim-airline/vim-airline-themes",
-- switch between .c and .h
"nacitar/a.vim",
-- sitting on the tree
"nvim-treesitter/nvim-treesitter",
-- fast as FUCK completion
"ms-jpq/coq_nvim",
"ms-jpq/coq.artifacts",
-- file explorer
{ "ms-jpq/chadtree", run = "python3 -m chadtree deps" },
-- better term
"akinsho/toggleterm.nvim",
-- hide secrets and shit
"laytan/cloak.nvim",
-- some cool icons for other plugins
"nvim-tree/nvim-web-devicons",
-- shows git changes at the start of the line
"lewis6991/gitsigns.nvim",
-- lsp manager
"williamboman/mason.nvim",
"williamboman/mason-lspconfig.nvim",
-- the one and only
"neovim/nvim-lspconfig",
-- flutter takes up too much space man
"akinsho/flutter-tools.nvim",
-- <3
"simrat39/rust-tools.nvim",
-- s to jump to what you see on the screen
"ggandor/leap.nvim",
-- color picker
"uga-rosa/ccc.nvim",
-- some fun shit
"Eandrju/cellular-automaton.nvim",
-- progress thingy for lsp loading
{ "j-hui/fidget.nvim", branch = "legacy" },
-- better lsp for nvim config
"folke/neodev.nvim",
-- zen like me kernel
"folke/zen-mode.nvim",
-- dims inactive code
"folke/twilight.nvim",
-- the scope:
"nvim-telescope/telescope.nvim",
-- the comment:
"numToStr/Comment.nvim",
-- needed for cheat sheet
"RishabhRD/popfix",
-- cheat sheet
"RishabhRD/nvim-cheat.sh",
-- rust :3
"Saecki/crates.nvim",
-- chess :3
"luk400/vim-lichess",
--
"mfussenegger/nvim-dap",
"lrangell/theme-cycler.nvim",
{ "catppuccin/nvim", as="catppuccin" },
}
vim.filetype.add({extension = {wgsl = "wgsl"}})
require("nvim-treesitter.configs").setup {
highlight = { enable = true, },
incremental_selection = {
enable = true,
keymaps = {
init_selection = "gnn",
node_incremental = "gzn",
node_decremental = "gzm",
scope_incremental = "gzb",
},
},
}
vim.wo.foldmethod = "expr"
vim.wo.foldexpr = "nvim_treesitter#foldexpr()"
vim.o.foldlevelstart = 99
require("toggleterm").setup {
size = 10,
open_mapping = [[<C-\>]],
shade_terminals = true,
shading_factor = 2,
auto_scroll = true,
direction = "float",
}
-- cock
vim.g.coq_settings = {
auto_start = "shut-up",
display = {
pum = {
fast_close = true,
},
},
completion = {
always = false,
},
}
vim.keymap.set("n", "<space>v", vim.cmd.CHADopen)
require("neodev").setup()
require("cloak").setup({
cloak_character = "",
})
vim.keymap.set("n", "<C-c>", require("cloak").toggle)
require("gitsigns").setup {
signcolumn = true,
numhl = true,
word_diff = true,
current_line_blame = true,
}
require("leap").add_default_mappings()
require("fidget").setup()
require("ccc").setup({
highlighter = {
auto_enable = true
}
})
local opts = { noremap = true, silent = true }
local builtin = require("telescope.builtin")
vim.keymap.set("n", "<leader>ff", builtin.find_files, opts)
vim.keymap.set("n", "<leader>fg", builtin.live_grep, opts)
vim.keymap.set("n", "<leader>fb", builtin.buffers, opts)
vim.keymap.set("n", "<leader>fh", builtin.help_tags, opts)
require("Comment").setup()
local chadtree_settings = {
keymap = {
tertiary = { "<leader>t", "<middlemouse>" }
}
}
vim.api.nvim_set_var("chadtree_settings", chadtree_settings)
local crates = require("crates")
crates.setup {
src = {
coq = {
enabled = true,
name = "crates.nvim",
}
}
}
vim.keymap.set('n', '<leader>ct', crates.toggle, opts)
vim.keymap.set('n', '<leader>cr', crates.reload, opts)
vim.keymap.set('n', '<leader>cv', crates.show_versions_popup, opts)
vim.keymap.set('n', '<leader>cf', crates.show_features_popup, opts)
vim.keymap.set('n', '<leader>cd', crates.show_dependencies_popup, opts)
vim.keymap.set('n', '<leader>cu', crates.update_crate, opts)
vim.keymap.set('v', '<leader>cu', crates.update_crates, opts)
vim.keymap.set('n', '<leader>ca', crates.update_all_crates, opts)
vim.keymap.set('n', '<leader>cU', crates.upgrade_crate, opts)
vim.keymap.set('v', '<leader>cU', crates.upgrade_crates, opts)
vim.keymap.set('n', '<leader>cA', crates.upgrade_all_crates, opts)
vim.keymap.set('n', '<leader>cH', crates.open_homepage, opts)
vim.keymap.set('n', '<leader>cR', crates.open_repository, opts)
vim.keymap.set('n', '<leader>cD', crates.open_documentation, opts)
vim.keymap.set('n', '<leader>cC', crates.open_crates_io, opts)
vim.keymap.set("n", "<leader>t", require("themeCycler").open_lazy)

View file

@ -0,0 +1,49 @@
{
config,
pkgs,
inputs,
...
}: {
# fuck broadcom
nixpkgs.config.allowUnfree = true;
# Use the systemd-boot EFI boot loader.
boot.loader.systemd-boot.enable = true;
boot.loader.efi.canTouchEfiVariables = true;
networking.hostName = "chmura";
time.timeZone = "Europe/Warsaw";
nix.settings = {
experimental-features = [
"flakes"
"nix-command"
];
};
programs.zsh.enable = true;
users.users.jacek = {
isNormalUser = true;
extraGroups = ["wheel" "networkmanager"];
shell = pkgs.zsh;
};
environment = {
shells = with pkgs; [zsh];
pathsToLink = [ "/share/zsh" ];
sessionVariables = rec {
EDITOR = "nvim";
};
};
services.openssh = {
enable = true;
passwordAuthentication = true;
};
networking.firewall.allowedTCPPorts = [ 80 443 22 ];
system.stateVersion = "23.11";
}

6
hosts/chmura/default.nix Normal file
View file

@ -0,0 +1,6 @@
_: {
imports = [
./configuration.nix
./hardware-configuration.nix
];
}

View file

@ -0,0 +1,46 @@
# Do not modify this file! It was generated by nixos-generate-config
# and may be overwritten by future invocations. Please make changes
# to /etc/nixos/configuration.nix instead.
{ config, lib, pkgs, modulesPath, ... }:
{
imports =
[ (modulesPath + "/installer/scan/not-detected.nix")
];
boot.initrd.availableKernelModules = [ "xhci_pci" "ahci" "ohci_pci" "ehci_pci" "usb_storage" "usbhid" "sd_mod" ];
boot.initrd.kernelModules = [ ];
boot.kernelModules = [ "kvm-amd" "wl" ];
boot.extraModulePackages = [ config.boot.kernelPackages.broadcom_sta ];
fileSystems."/" =
{ device = "/dev/disk/by-uuid/ba9b94f8-7c2e-43e4-ae8b-d48836819321";
fsType = "btrfs";
};
fileSystems."/boot" =
{ device = "/dev/disk/by-uuid/43B9-A358";
fsType = "vfat";
};
swapDevices =
[ { device = "/dev/disk/by-uuid/8553092f-8960-4326-97d8-43af396eef82"; }
];
# Enables DHCP on each ethernet and wireless interface. In case of scripted networking
# (the default) this is the recommended approach. When using systemd-networkd it's
# still possible to use this option, but it's recommended to use it in conjunction
# with explicit per-interface declarations with `networking.interfaces.<interface>.useDHCP`.
networking.useDHCP = lib.mkDefault true;
# networking.interfaces.enp3s0f0.useDHCP = lib.mkDefault true;
# networking.interfaces.enp3s0f1.useDHCP = lib.mkDefault true;
# networking.interfaces.enp4s0f0.useDHCP = lib.mkDefault true;
# networking.interfaces.enp4s0f1.useDHCP = lib.mkDefault true;
# networking.interfaces.enp6s0.useDHCP = lib.mkDefault true;
nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux";
powerManagement.cpuFreqGovernor = lib.mkDefault "ondemand";
hardware.cpu.amd.updateMicrocode = lib.mkDefault config.hardware.enableRedistributableFirmware;
# high-resolution display
hardware.video.hidpi.enable = lib.mkDefault true;
}

View file

@ -11,13 +11,11 @@ in {
niksos = lib.nixosSystem {
system = "x86_64-linux";
specialArgs = {inherit lib inputs self;};
modules =
[
modules = [
{networking.hostName = "niksos";}
./niksos
]
++ [
# this concatenates to lists
# this list includes an alias for the home-manager module, and another for the global home-manager configuration directory
home-manager
home-configs

View file

@ -3,7 +3,18 @@
pkgs,
inputs,
...
}: {
}:
let
swayConfig = pkgs.writeText "greetd-sway-config" ''
exec "${pkgs.greetd.gtkgreet}/bin/gtkgreet -l; swaymsg exit"
bindsym Mod4+shift+e exec swaynag \
-t warning \
-m 'What do you want to do?' \
-b 'Poweroff' 'systemctl poweroff' \
-b 'Reboot' 'systemctl reboot'
'';
in
{
nixpkgs.config.allowUnfree = true;
# Use the GRUB 2 boot loader.
@ -22,8 +33,14 @@
"flakes"
"nix-command"
];
substituters = ["https://hyprland.cachix.org"];
trusted-public-keys = ["hyprland.cachix.org-1:a7pgxzMz7+chwVL3/pzj6jIBMioiJM7ypFP8PwtkuGc="];
substituters = [
"https://hyprland.cachix.org"
"https://neovim-nightly.cachix.org/"
];
trusted-public-keys = [
"hyprland.cachix.org-1:a7pgxzMz7+chwVL3/pzj6jIBMioiJM7ypFP8PwtkuGc="
"neovim-nightly.cachix.org-1:feIoInHRevVEplgdZvQDjhp11kYASYCE2NGY9hNrwxY="
];
};
# Enable sound.
@ -44,6 +61,11 @@
nvidiaPatches = false;
};
fonts.fonts = with pkgs; [
material-design-icons
(nerdfonts.override { fonts = [ "JetBrainsMono" ]; })
];
users.users.jacek = {
isNormalUser = true;
extraGroups = ["wheel" "networkmanager"];
@ -53,7 +75,8 @@
environment = {
shells = with pkgs; [zsh];
pathsToLink = [ "/share/zsh" ];
sessionVariables = rec {
enableAllTerminfo = true;
sessionVariables = {
TERM = "foot";
EDITOR = "nvim";
SSH_AUTH_SOCK = "\$XDG_RUNTIME_DIR/ssh-agent.socket";
@ -66,7 +89,7 @@
QT_STYLE_OVERRIDE = "kvantum";
QT_QPA_PLATFORMTHEME = "qt5ct";
#GOPATH = "${config.xdg.dataHome}/go";
GOPATH = "\$HOME/.local/share/go";
XDG_CURRENT_DESKTOP = "Hyprland";
XDG_SESSION_TYPE = "wayland";
@ -89,19 +112,35 @@
SYSTEMD_TIMEDATED_NTP_SERVICES = "chronyd.service:systemd-timesyncd.service";
};
etc."greetd/environments".text = ''
Hyprland
sway
zsh
shutdown now
'';
};
services.pipewire = {
services = {
pipewire = {
enable = true;
alsa.enable = true;
alsa.support32Bit = true;
pulse.enable = true;
};
services.openssh = {
openssh = {
enable = true;
settings.PasswordAuthentication = true;
};
greetd = {
enable = true;
settings = {
default_session = {
command = "${pkgs.sway}/bin/sway --config ${swayConfig}";
};
};
};
};
#environment.systemPackages = with pkgs; [
# neovim