forked from poz/niksos
feat: huge
This commit is contained in:
parent
b07966a102
commit
cdafce17bc
86 changed files with 5091 additions and 2614 deletions
2323
flake.lock
2323
flake.lock
File diff suppressed because it is too large
Load diff
12
flake.nix
12
flake.nix
|
@ -18,10 +18,7 @@
|
|||
|
||||
hyprland.url = "github:hyprwm/Hyprland";
|
||||
|
||||
hyprcontrib = {
|
||||
url = "github:hyprwm/contrib";
|
||||
inputs.hyprland.follows = "hyprland";
|
||||
};
|
||||
hyprcontrib.url = "github:hyprwm/contrib";
|
||||
|
||||
hyprland-plugins = {
|
||||
url = "github:hyprwm/hyprland-plugins";
|
||||
|
@ -29,7 +26,7 @@
|
|||
};
|
||||
|
||||
split-monitor-workspaces = {
|
||||
url = "github:jacekpoz/split-monitor-workspaces";
|
||||
url = "github:NotAShelf/split-monitor-workspaces";
|
||||
inputs.hyprland.follows = "hyprland";
|
||||
};
|
||||
|
||||
|
@ -74,5 +71,10 @@
|
|||
neovim-nightly-overlay.url = "github:nix-community/neovim-nightly-overlay";
|
||||
|
||||
helix.url = "github:helix-editor/helix";
|
||||
|
||||
neovim-flake = {
|
||||
url = "github:NotAShelf/neovim-flake";
|
||||
inputs.nixpkgs.follows = "nixpkgs";
|
||||
};
|
||||
};
|
||||
}
|
||||
|
|
|
@ -1,38 +0,0 @@
|
|||
{
|
||||
config,
|
||||
inputs,
|
||||
lib,
|
||||
pkgs,
|
||||
...
|
||||
}: {
|
||||
|
||||
imports = [
|
||||
];
|
||||
|
||||
config = {
|
||||
programs = {
|
||||
home-manager.enable = true;
|
||||
};
|
||||
|
||||
home = {
|
||||
username = "chmura";
|
||||
packages = with pkgs; [
|
||||
git
|
||||
exa
|
||||
ripgrep
|
||||
btop
|
||||
firejail
|
||||
zellij
|
||||
cargo
|
||||
rustc
|
||||
nodejs
|
||||
unzip
|
||||
cmake
|
||||
gcc
|
||||
trash-cli
|
||||
];
|
||||
|
||||
stateVersion = lib.mkDefault "23.11";
|
||||
};
|
||||
};
|
||||
}
|
|
@ -1,21 +0,0 @@
|
|||
{
|
||||
inputs,
|
||||
pkgs,
|
||||
self,
|
||||
...
|
||||
}: let
|
||||
mkNixPak = inputs.nixpak.lib.nixpak {
|
||||
inherit (pkgs) lib;
|
||||
inherit pkgs;
|
||||
};
|
||||
in {
|
||||
home-manager = {
|
||||
useUserPackages = true;
|
||||
useGlobalPkgs = true;
|
||||
extraSpecialArgs = {inherit inputs self mkNixPak;}; # let home-manager access inputs and self
|
||||
users = {
|
||||
jacek = import ./jacek;
|
||||
#chmura = import ./chmura;
|
||||
};
|
||||
};
|
||||
}
|
|
@ -1,22 +0,0 @@
|
|||
{
|
||||
config,
|
||||
pkgs,
|
||||
...
|
||||
}:
|
||||
{
|
||||
config = {
|
||||
programs.git = {
|
||||
enable = true;
|
||||
userName = "jacekpoz";
|
||||
userEmail = "jacekpoz@cock.li";
|
||||
includes = [
|
||||
{
|
||||
contents = { core.editor = "${pkgs.neovim}/bin/nvim"; };
|
||||
}
|
||||
{
|
||||
contents = { init.defaultBranch = "master"; };
|
||||
}
|
||||
];
|
||||
};
|
||||
};
|
||||
}
|
|
@ -1,24 +0,0 @@
|
|||
{
|
||||
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 = "";
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
|
@ -1,11 +0,0 @@
|
|||
{
|
||||
config,
|
||||
...
|
||||
}: {
|
||||
config = {
|
||||
programs.zoxide = {
|
||||
enable = true;
|
||||
enableZshIntegration = true;
|
||||
};
|
||||
};
|
||||
}
|
|
@ -1,54 +0,0 @@
|
|||
{
|
||||
config,
|
||||
pkgs,
|
||||
...
|
||||
}: {
|
||||
config = {
|
||||
programs.zsh = {
|
||||
enable = true;
|
||||
shellAliases = {
|
||||
cl = "clear";
|
||||
cp = "cp -ivr";
|
||||
mv = "mv -iv";
|
||||
rm = "trash -v";
|
||||
l = "ls -A --color=auto";
|
||||
e = "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=";
|
||||
};
|
||||
}
|
||||
];
|
||||
};
|
||||
};
|
||||
}
|
|
@ -1,184 +0,0 @@
|
|||
{
|
||||
config,
|
||||
inputs,
|
||||
lib,
|
||||
pkgs,
|
||||
...
|
||||
}: {
|
||||
|
||||
imports = [
|
||||
inputs.hyprland.homeManagerModules.default
|
||||
inputs.anyrun.homeManagerModules.default
|
||||
./gui
|
||||
./tui
|
||||
./cli
|
||||
./services
|
||||
./other
|
||||
];
|
||||
|
||||
config = {
|
||||
programs = {
|
||||
home-manager.enable = true;
|
||||
direnv = {
|
||||
enable = true;
|
||||
nix-direnv.enable = true;
|
||||
};
|
||||
};
|
||||
|
||||
home = {
|
||||
username = "jacek";
|
||||
homeDirectory = "/home/jacek";
|
||||
packages = let
|
||||
hyprcontrib = inputs.hyprcontrib.packages.${pkgs.system};
|
||||
shadower = inputs.shadower.packages.${pkgs.system};
|
||||
nix-gaming = inputs.nix-gaming.packages.${pkgs.system};
|
||||
fenix = inputs.fenix.packages.${pkgs.system};
|
||||
nixpkgs-wayland = inputs.nixpkgs-wayland.packages.${pkgs.system};
|
||||
in with pkgs; [
|
||||
git
|
||||
librewolf-wayland
|
||||
keepassxc
|
||||
exa
|
||||
ripgrep
|
||||
libnotify
|
||||
rofi-wayland
|
||||
rofi-calc
|
||||
webcord-vencord
|
||||
session-desktop
|
||||
signal-desktop-beta
|
||||
schildichat-desktop
|
||||
obs-studio
|
||||
heroic
|
||||
steam
|
||||
ungoogled-chromium
|
||||
amdgpu_top
|
||||
tor-browser-bundle-bin
|
||||
mullvad-browser
|
||||
thunderbird
|
||||
telegram-desktop
|
||||
livecaptions
|
||||
gimp
|
||||
helvum
|
||||
ddccontrol
|
||||
ddccontrol-db
|
||||
bluez
|
||||
blueman
|
||||
easyeffects
|
||||
fcitx5
|
||||
fcitx5-gtk
|
||||
fcitx5-skk
|
||||
fcitx5-configtool
|
||||
firejail
|
||||
lbry
|
||||
#libreoffice-fresh
|
||||
minetest
|
||||
airshipper
|
||||
onionshare-gui
|
||||
prismlauncher
|
||||
qbittorrent
|
||||
retroarchFull
|
||||
ventoy-full
|
||||
zathura
|
||||
zellij
|
||||
nodejs
|
||||
unzip
|
||||
cmake
|
||||
gcc
|
||||
nixpkgs-wayland.sway-unwrapped
|
||||
caprine-bin
|
||||
libsForQt5.kdenlive
|
||||
telegram-desktop
|
||||
waypipe
|
||||
trash-cli
|
||||
bibata-cursors
|
||||
nixpkgs-wayland.swww
|
||||
opentabletdriver
|
||||
networkmanagerapplet
|
||||
nixpkgs-wayland.wl-clipboard
|
||||
nixpkgs-wayland.wlsunset
|
||||
xdg-utils
|
||||
hyprpicker
|
||||
hyprcontrib.hyprprop
|
||||
hyprcontrib.grimblast
|
||||
shadower.shadower
|
||||
pamixer
|
||||
brightnessctl
|
||||
dig
|
||||
bottles
|
||||
lutris
|
||||
|
||||
nodePackages_latest.pnpm
|
||||
nodePackages_latest.prisma
|
||||
prisma-engines
|
||||
openssl
|
||||
pkg-config
|
||||
docker
|
||||
docker-compose
|
||||
postgresql
|
||||
nix-gaming.osu-stable
|
||||
nix-gaming.osu-lazer-bin
|
||||
swappy
|
||||
nixpkgs-wayland.imv
|
||||
pcmanfm
|
||||
anytype
|
||||
xdg-ninja
|
||||
auto-cpufreq
|
||||
gnupg
|
||||
pinentry-qt
|
||||
age
|
||||
rage
|
||||
fd
|
||||
udisks
|
||||
ffmpeg
|
||||
xdg-desktop-portal-gtk
|
||||
ghc
|
||||
ghcid
|
||||
cabal-install
|
||||
yt-dlp
|
||||
filelight
|
||||
(fenix.complete.withComponents [
|
||||
"cargo"
|
||||
"clippy"
|
||||
"rust-src"
|
||||
"rustc"
|
||||
"rustfmt"
|
||||
])
|
||||
wayland
|
||||
showmethekey
|
||||
polkit
|
||||
libsForQt5.polkit-kde-agent
|
||||
asciinema
|
||||
asciinema-agg
|
||||
du-dust
|
||||
mullvad-vpn
|
||||
appimage-run
|
||||
file
|
||||
virt-manager
|
||||
weechat
|
||||
flowblade
|
||||
hyfetch
|
||||
git-annex
|
||||
gamemode
|
||||
croc
|
||||
linuxKernel.packages.linux_xanmod_latest.cpupower
|
||||
uutils-coreutils
|
||||
anki
|
||||
alsa-utils
|
||||
speechd
|
||||
arcanPackages.espeak
|
||||
ezquake
|
||||
imagemagick
|
||||
weston
|
||||
pavucontrol
|
||||
psmisc
|
||||
mesa-demos
|
||||
nnn
|
||||
aseprite-unfree
|
||||
jq
|
||||
nixpkgs-wayland.eww-wayland
|
||||
];
|
||||
|
||||
stateVersion = lib.mkDefault "23.11";
|
||||
};
|
||||
};
|
||||
}
|
|
@ -1,54 +0,0 @@
|
|||
* {
|
||||
all: unset; //Unsets everything so you can style everything from scratch
|
||||
}
|
||||
|
||||
//Global Styles
|
||||
.bar {
|
||||
background-color: #3a3a3a;
|
||||
color: #b0b4bc;
|
||||
padding: 10px;
|
||||
}
|
||||
|
||||
// Styles on classes (see eww.yuck for more information)
|
||||
|
||||
.sidestuff slider {
|
||||
all: unset;
|
||||
color: #ffd5cd;
|
||||
}
|
||||
|
||||
.metric scale trough highlight {
|
||||
all: unset;
|
||||
background-color: #D35D6E;
|
||||
color: #000000;
|
||||
border-radius: 10px;
|
||||
}
|
||||
.metric scale trough {
|
||||
all: unset;
|
||||
background-color: #4e4e4e;
|
||||
border-radius: 50px;
|
||||
min-height: 3px;
|
||||
min-width: 50px;
|
||||
margin-left: 10px;
|
||||
margin-right: 20px;
|
||||
}
|
||||
.metric scale trough highlight {
|
||||
all: unset;
|
||||
background-color: #D35D6E;
|
||||
color: #000000;
|
||||
border-radius: 10px;
|
||||
}
|
||||
.metric scale trough {
|
||||
all: unset;
|
||||
background-color: #4e4e4e;
|
||||
border-radius: 50px;
|
||||
min-height: 3px;
|
||||
min-width: 50px;
|
||||
margin-left: 10px;
|
||||
margin-right: 20px;
|
||||
}
|
||||
.label-ram {
|
||||
font-size: large;
|
||||
}
|
||||
.workspaces button:hover {
|
||||
color: #D35D6E;
|
||||
}
|
|
@ -1,75 +0,0 @@
|
|||
(defwidget bar []
|
||||
(centerbox :orientation "h"
|
||||
(workspaces)
|
||||
(music)
|
||||
(sidestuff)))
|
||||
|
||||
(defwidget sidestuff []
|
||||
(box :class "sidestuff" :orientation "h" :space-evenly false :halign "end"
|
||||
(metric :label "🔊"
|
||||
:value volume
|
||||
:onchange "amixer -D pulse sset Master {}%")
|
||||
(metric :label ""
|
||||
:value {EWW_RAM.used_mem_perc}
|
||||
:onchange "")
|
||||
(metric :label "💾"
|
||||
:value {round((1 - (EWW_DISK["/"].free / EWW_DISK["/"].total)) * 100, 0)}
|
||||
:onchange "")
|
||||
time))
|
||||
|
||||
(defwidget workspaces []
|
||||
(box :class "workspaces"
|
||||
:orientation "h"
|
||||
:space-evenly true
|
||||
:halign "start"
|
||||
:spacing 10
|
||||
(button :onclick "wmctrl -s 0" 1)
|
||||
(button :onclick "wmctrl -s 1" 2)
|
||||
(button :onclick "wmctrl -s 2" 3)
|
||||
(button :onclick "wmctrl -s 3" 4)
|
||||
(button :onclick "wmctrl -s 4" 5)
|
||||
(button :onclick "wmctrl -s 5" 6)
|
||||
(button :onclick "wmctrl -s 6" 7)
|
||||
(button :onclick "wmctrl -s 7" 8)
|
||||
(button :onclick "wmctrl -s 8" 9)))
|
||||
|
||||
(defwidget music []
|
||||
(box :class "music"
|
||||
:orientation "h"
|
||||
:space-evenly false
|
||||
:halign "center"
|
||||
{music != "" ? "🎵${music}" : ""}))
|
||||
|
||||
|
||||
(defwidget metric [label value onchange]
|
||||
(box :orientation "h"
|
||||
:class "metric"
|
||||
:space-evenly false
|
||||
(box :class "label" label)
|
||||
(scale :min 0
|
||||
:max 101
|
||||
:active {onchange != ""}
|
||||
:value value
|
||||
:onchange onchange)))
|
||||
|
||||
|
||||
|
||||
(deflisten music :initial ""
|
||||
"playerctl --follow metadata --format '{{ artist }} - {{ title }}' || true")
|
||||
|
||||
(defpoll volume :interval "1s"
|
||||
"scripts/getvol")
|
||||
|
||||
(defpoll time :interval "10s"
|
||||
"date '+%H:%M %b %d, %Y'")
|
||||
|
||||
(defwindow bar
|
||||
:monitor 0
|
||||
:windowtype "dock"
|
||||
:geometry (geometry :x "0%"
|
||||
:y "0%"
|
||||
:width "90%"
|
||||
:height "10px"
|
||||
:anchor "top center")
|
||||
:reserve (struts :side "top" :distance "4%")
|
||||
(bar))
|
|
@ -1,333 +0,0 @@
|
|||
{
|
||||
config,
|
||||
lib,
|
||||
inputs,
|
||||
pkgs,
|
||||
mkNixPak,
|
||||
...
|
||||
}: {
|
||||
config = let
|
||||
buildFirefoxXpiAddon = lib.makeOverridable ({
|
||||
stdenv ? pkgs.stdenv,
|
||||
fetchurl ? pkgs.fetchurl,
|
||||
pname,
|
||||
version,
|
||||
addonId,
|
||||
url,
|
||||
sha256,
|
||||
...
|
||||
}:
|
||||
stdenv.mkDerivation {
|
||||
name = "${pname}-${version}";
|
||||
src = fetchurl {inherit url sha256;};
|
||||
preferLocalBuild = true;
|
||||
allowSubstitutes = true;
|
||||
buildCommand = ''
|
||||
dst="$out/share/mozilla/extensions/{ec8030f7-c20a-464f-9b0e-13a3a9397384}"
|
||||
mkdir -p "$dst"
|
||||
install -v -m644 "$src" "$dst/${addonId}.xpi"
|
||||
'';
|
||||
});
|
||||
|
||||
extra-addons = {
|
||||
yomichan = buildFirefoxXpiAddon {
|
||||
pname = "yomichan";
|
||||
version = "20.5.22.1";
|
||||
addonId = "{a9226ee9-7998-47bd-b72e-a1b56df7f77b}";
|
||||
url = "https://addons.mozilla.org/firefox/downloads/file/3585060/yomichan-20.5.22.1.xpi";
|
||||
sha256 = "sha256-/icvPD/nCJYS31owfYMD25QzFjsxAqapy/UAehhxsy8=";
|
||||
};
|
||||
};
|
||||
in {
|
||||
programs.firefox = {
|
||||
enable = true;
|
||||
package = pkgs.firefox-devedition;
|
||||
profiles = {
|
||||
"schizo.dev-edition-default" = {
|
||||
id = 0;
|
||||
name = "dev-edition-default";
|
||||
isDefault = true;
|
||||
search = {
|
||||
default = "SearXNG Sapti";
|
||||
engines = {
|
||||
"SearXNG Sapti" = {
|
||||
urls = [{ template = "https://search.sapti.me/search?q={searchTerms}"; }];
|
||||
iconUpdateURL = "https://search.sapti.me/favicon.ico";
|
||||
updateInterval = 24 * 60 * 60 * 1000;
|
||||
definedAliases = [ "@sx" ];
|
||||
};
|
||||
"NixOS Packages" = {
|
||||
urls = [{
|
||||
template = "https://search.nixos.org/packages";
|
||||
params = [
|
||||
{ name = "channel"; value = "unstable"; }
|
||||
{ name = "query"; value = "{searchTerms}"; }
|
||||
];
|
||||
}];
|
||||
icon = "${pkgs.nixos-icons}/share/icons/hicolor/scalable/apps/nix-snowflake.svg";
|
||||
definedAliases = [ "@np" ];
|
||||
};
|
||||
"NixOS Options" = {
|
||||
urls = [{
|
||||
template = "https://search.nixos.org/options";
|
||||
params = [
|
||||
{ name = "channel"; value = "unstable"; }
|
||||
{ name = "query"; value = "{searchTerms}"; }
|
||||
];
|
||||
}];
|
||||
icon = "${pkgs.nixos-icons}/share/icons/hicolor/scalable/apps/nix-snowflake.svg";
|
||||
definedAliases = [ "@no" ];
|
||||
};
|
||||
"NixOS Wiki" = {
|
||||
urls = [{ template = "https://nixos.wiki/index.php?search={searchTerms}"; }];
|
||||
iconUpdateURL = "https://nixos.wiki/favicon.png";
|
||||
updateInterval = 24 * 60 * 60 * 1000;
|
||||
definedAliases = [ "@nw" ];
|
||||
};
|
||||
"Home Manager Option Search" = {
|
||||
urls = [{ template = "https://mipmip.github.io/home-manager-option-search/?query={searchTerms}"; }];
|
||||
icon = "${pkgs.nixos-icons}/share/icons/hicolor/scalable/apps/nix-snowflake.svg";
|
||||
definedAliases = [ "@hm" ];
|
||||
};
|
||||
};
|
||||
force = true;
|
||||
};
|
||||
extensions = with pkgs.nur.repos.rycee.firefox-addons; [
|
||||
ublock-origin
|
||||
sponsorblock
|
||||
tridactyl
|
||||
violentmonkey
|
||||
darkreader
|
||||
keepassxc-browser
|
||||
redirector
|
||||
auto-tab-discard
|
||||
extra-addons.yomichan
|
||||
];
|
||||
settings = {
|
||||
"browser.aboutConfig.showWarning" = false;
|
||||
"browser.startup.page" = 0;
|
||||
"browser.startup.homepage" = "about:home";
|
||||
"browser.newtabpage.enabled" = true;
|
||||
"browser.newtabpage.activity-stream.showSponsored" = false;
|
||||
"browser.newtabpage.activity-stream.showSponsoredTopSites" = false;
|
||||
"browser.newtabpage.activity-stream.default.sites" = "";
|
||||
"geo.provider.network.url" = "";
|
||||
"geo.provider.network.logging.enabled" = false;
|
||||
"geo.provider.ms-windows-location" = false;
|
||||
"geo.provider.use_corelocation" = false;
|
||||
"geo.provider.use_gpsd" = false;
|
||||
"geo.provider.use_geoclue" = false;
|
||||
"intl.accept_langauges" = "en-US";
|
||||
"javascript.use_us_english_locale" = true;
|
||||
"extensions.getAddons.showPane" = false;
|
||||
"extensions.htmlaboutaddons.recommendations.enabled" = false;
|
||||
"browser.discovery.enabled" = false;
|
||||
# this shit doesn't work thanks to firefox's
|
||||
# fucking retarded ass decisions
|
||||
# but I'm gonna keep it anyway
|
||||
"extensions.unifiedExtensions.enabled" = false;
|
||||
"datareporting.policy.dataSubmissionEnabled" = false;
|
||||
"datareporting.healthreport.uploadEnabled" = false;
|
||||
"toolkit.telemetry.unified" = false;
|
||||
"toolkit.telemetry.enabled" = false;
|
||||
"toolkit.telemetry.server" = "data:,";
|
||||
"toolkit.telemetry.archive.enabled" = false;
|
||||
"toolkit.telemetry.newProfilePing.enabled" = false;
|
||||
"toolkit.telemetry.shutdownPingSender.enabled" = false;
|
||||
"toolkit.telemetry.updatePing.enabled" = false;
|
||||
"toolkit.telemetry.bhrPing.enabled" = false;
|
||||
"toolkit.telemetry.firstShutdownPing.enabled" = false;
|
||||
"toolkit.telemetry.coverage.opt-out" = true;
|
||||
"toolkit.coverage.endpoint.base" = "";
|
||||
"browser.ping-centre.telemetry" = false;
|
||||
"browser.newtabpage.activity-stream.feeds.telemetry" = false;
|
||||
"browser.newtabpage.activity-stream.telemetry" = false;
|
||||
"app.shield.optoutstudies.enabled" = false;
|
||||
"app.normandy.enabled" = false;
|
||||
"app.normandy.api_url" = "";
|
||||
"breakpad.reportURL" = "";
|
||||
"browser.tabs.crashReporting.sendReport" = false;
|
||||
"browser.crashReports.unsubmittedCheck.enabled" = false;
|
||||
"browser.crashReports.unsubmittedCheck.autoSubmit2" = false;
|
||||
"captivedetect.canonicalURL" = "";
|
||||
"network.captive-portal-service.enabled" = false;
|
||||
"network.connectivity-service.enabled" = false;
|
||||
"browser.safebrowsing.malware.enabled" = false;
|
||||
"browser.safebrowsing.phishing.enabled" = false;
|
||||
"browser.safebrowsing.downloads.enabled" = false;
|
||||
"browser.safebrowsing.downloads.remote.enabled" = false;
|
||||
"browser.safebrowsing.downloads.remote.url" = "";
|
||||
"browser.safebrowsing.downloads.remote.block_potentially_unwanted" = false;
|
||||
"browser.safebrowsing.downloads.remote.block_uncommon" = false;
|
||||
"browser.safebrowsing.allowOverride" = false;
|
||||
"network.prefetch-next" = false;
|
||||
"network.dns.disablePrefetch" = true;
|
||||
"network.dns.disablePrefetchFromHTTPS" = true;
|
||||
"network.predictor.enabled" = false;
|
||||
"network.predictor.enable-prefetch" = false;
|
||||
"network.http.speculative.parallel-limit" = 0;
|
||||
"browser.places.speculativeConnect.enabled" = false;
|
||||
"browser.send_pings" = false;
|
||||
"network.dns.disableIPv6" = true;
|
||||
"network.proxy.socks_remote_dns" = true;
|
||||
"network.file.disable_unc_paths" = true;
|
||||
"network.gio.supported-protocols" = "";
|
||||
"network.proxy.failover_direct" = false;
|
||||
"network.proxy.allow_bypass" = false;
|
||||
# "network.trr.mode" = 5; TODO read about this
|
||||
"browser.fixup.alternate.enabled" = false;
|
||||
# TODO do I want this
|
||||
"browser.search.suggest.enabled" = true;
|
||||
"browser.urlbar.suggest.searches" = true;
|
||||
"browser.urlbar.speculativeConnect.enabled" = false;
|
||||
"browser.urlbar.dnsResolveSingleWordsAfterSearch" = 0;
|
||||
"browser.urlbar.suggest.quicksuggest.nonsponsored" = false;
|
||||
"browser.urlbar.suggest.quicksuggest.sponsored" = false;
|
||||
"browser.formfill.enable" = false;
|
||||
"layout.css.visited_links_enabled" = false;
|
||||
"signon.autofillForms" = false;
|
||||
"signon.formlessCapture.enabled" = false;
|
||||
# TODO find some info about this
|
||||
"network.auth.subresource-http-auth-allow" = 0;
|
||||
"network.http.windows-sso.enabled" = false;
|
||||
# TODO read about these until...
|
||||
"browser.cache.disk.enable" = true;
|
||||
"browser.privatebrowsing.forceMediaMemoryCache" = true;
|
||||
"media.memory_cache_max_size" = 65536;
|
||||
"browser.sessionstore.privacy_level" = 2;
|
||||
# here
|
||||
"toolkit.winRegisterApplicationRestart" = false;
|
||||
# TODO favicons might be cool though
|
||||
"browser.shell.shortcutFavicons" = false;
|
||||
"security.ssl.require_safe_negotiation" = true;
|
||||
"security.tls.enable_0rtt_data" = true;
|
||||
# TODO read and think about it
|
||||
"security.OCSP.enabled" = 1;
|
||||
"security.OCSP.require" = true;
|
||||
"security.family_safety.mode" = 0;
|
||||
"security.cert_pinning.enforcement_level" = 2;
|
||||
# TODO read about the next 2
|
||||
"security.remote_settings.crlite_filters.enabled" = true;
|
||||
"security.pki.crlite_mode" = 2;
|
||||
# TODO if images break it's probably this
|
||||
"security.mixed_content.block_display_content" = true;
|
||||
"dom.security.https_only_mode" = true;
|
||||
"dom.security.https_only_mode_pbm" = true;
|
||||
"dom.security.https_only_mode.upgrade_local" = true;
|
||||
"dom.security.https_only_mode_send_http_background_request" = false;
|
||||
"security.ssl.treat_unsafe_negotiation_as_broken" = true;
|
||||
"browser.xul.error_pages.expert_bad_cert" = true;
|
||||
"network.http.referer.XOriginPolicy" = 2;
|
||||
"network.http.referer.XOriginTrimmingPolicy" = 2;
|
||||
"privacy.userContext.enabled" = true;
|
||||
"privacy.userContext.ui.enabled" = true;
|
||||
"privacy.userContext.newTabContainerOnLeftClick.enabled" = true;
|
||||
# TODO read about these 2
|
||||
"media.peerconnection.ice.proxy_only_if_behind_proxy" = true;
|
||||
"media.peerconnection.ice.default_address_only" = true;
|
||||
"media.peerconnection.ice.no_host" = true;
|
||||
# TODO remove this if some codecs or shit don't work
|
||||
"media.gmp-provider.enabled" = false;
|
||||
# I think this is for netflix and shit
|
||||
"media.gmp-widevinecdm.enabled" = false;
|
||||
# disables DRM in general
|
||||
"media.eme.enabled" = false;
|
||||
# and the ui for it just in case
|
||||
"browser.eme.ui.enabled" = false;
|
||||
"dom.disable_window_move_resize" = true;
|
||||
"accessibility.force_disabled" = 1;
|
||||
"browser.helperApps.deleteTempFileOnExit" = true;
|
||||
# TODO what the fuck is uitour
|
||||
"browser.uitour.enabled" = false;
|
||||
"browser.uitour.url" = "";
|
||||
"devtools.debugger.remote-enabled" = false;
|
||||
"middlemouse.contentLoadURL" = false;
|
||||
"permissions.default.shortcuts" = 2;
|
||||
"permissions.manager.defaultsUrl" = "";
|
||||
# TODO what is this
|
||||
"webchannel.allowObject.urlWhitelist" = "";
|
||||
"network.IDN_show_punycode" = true;
|
||||
"pdfjs.disabled" = false;
|
||||
"pdfjs.enableScripting" = false;
|
||||
"network.protocol-handler.external.ms-windows-store" = false;
|
||||
"permissions.delegation.enabled" = false;
|
||||
"browser.download.useDownloadDir" = true;
|
||||
"browser.download.alwaysOpenPanel" = false;
|
||||
"browser.download.manager.addToRecentDocs" = true;
|
||||
"browser.download.always_ask_before_handling_new_types" = true;
|
||||
# if extensions break go here
|
||||
"extensions.enabledScopes" = 5;
|
||||
"extensions.autoDisableScopes" = 15;
|
||||
# TODO rethink this
|
||||
"extensions.postDownloadThirdPartyPrompt" = true;
|
||||
"extensions.webextensions.restrictedDomains" = "";
|
||||
"browser.contentblocking.category" = "strict";
|
||||
"privacy.antitracking.enableWebcompat" = false;
|
||||
"privacy.partition.serviceWorkers" = true;
|
||||
"privacy.partition.always_partition_third_party_non_cookie_storage" = true;
|
||||
"privacy.partition.always_partition_third_party_non_cookie_storage.exempt_sessionstorage" = false;
|
||||
"privacy.sanitize.sanitizeOnShutdown" = true;
|
||||
"privacy.clearOnShutdown.cache" = true;
|
||||
"privacy.clearOnShutdown.downloads" = true;
|
||||
"privacy.clearOnShutdown.formdata" = true;
|
||||
"privacy.clearOnShutdown.history" = true;
|
||||
"privacy.clearOnShutdown.sessions" = true;
|
||||
"privacy.clearOnShutdown.siteSettings" = true;
|
||||
# if true I can't recover from crashes according to arkenfox
|
||||
"privacy.clearOnShutdown.openWindows" = false;
|
||||
"privacy.clearOnShutdown.cookies" = true;
|
||||
"privacy.clearOnShutdown.offlineApps" = true;
|
||||
"privacy.clearsitedata.cache.enabled" = true;
|
||||
"privacy.cpd.cache" = true;
|
||||
"privacy.cpd.formdata" = true;
|
||||
"privacy.cpd.history" = true;
|
||||
"privacy.cpd.sessions" = true;
|
||||
"privacy.cpd.offlineApps" = true;
|
||||
"privacy.cpd.cookies" = true;
|
||||
"privacy.cpd.downloads" = true;
|
||||
"privacy.cpd.openWindows" = false;
|
||||
"privacy.cpd.passwords" = true;
|
||||
"privacy.cpd.siteSettings" = true;
|
||||
"privacy.sanitize.timeSpan" = 0;
|
||||
"privacy.resistFingerprint" = false;
|
||||
# we won't be installing extensions through mozilla's website I don't think
|
||||
"privacy.resistFingerprinting.block_mozAddonManager" = true;
|
||||
"privacy.resistFingerprinting.letterboxing" = true;
|
||||
"layout.css.font-visibility.resistFingerprinting" = 1;
|
||||
"browser.display.use_system_colors" = false;
|
||||
"widget.non-native-theme.enabled" = true;
|
||||
"browser.link.open_newwindow" = 3;
|
||||
"browser.link.open_newwindow.restriction" = 0;
|
||||
"webgl.disabled" = false;
|
||||
"signon.rememberSignons" = false;
|
||||
"permissions.memory_only" = true;
|
||||
"security.nocertdb" = true;
|
||||
"browser.chrome.site_icons" = true;
|
||||
"browser.session.max_tabs_undo" = 0;
|
||||
"browser.sessionstore.resume_from_crash" = true;
|
||||
"browser.urlbar.autoFill" = false;
|
||||
"places.history.enabled" = false;
|
||||
"extensions.formautofill.addresses.enabled" = false;
|
||||
"extensions.formautofill.creditCards.enabled" = false;
|
||||
"extensions.formautofill.heuristics.enabled" = false;
|
||||
"dom.popup_allowed_events" = "click dblclick mousedown pointerdown";
|
||||
"javascript.options.ion" = false;
|
||||
"javascript.options.baselinejit" = false;
|
||||
"javascript.options.jit_trustedprincipals" = true;
|
||||
"javascript.options.wasm" = false;
|
||||
"extensions.blocklist.enabled" = true;
|
||||
"network.http.referer.spoofSource" = false;
|
||||
"security.dialog_enable_delay" = 1000;
|
||||
"privacy.firstparty.isolate" = false;
|
||||
"extensions.webcompat.enable_shims" = true;
|
||||
"security.tls.version.enable-deprecated" = false;
|
||||
"extensions.webcompat-reporter.enabled" = false;
|
||||
|
||||
"gfx.webrender.all" = true;
|
||||
"media.ffmpeg.vaapi.enabled" = true;
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
|
@ -1,110 +0,0 @@
|
|||
{
|
||||
config,
|
||||
inputs,
|
||||
pkgs,
|
||||
...
|
||||
}:
|
||||
{
|
||||
config = {
|
||||
programs.foot = {
|
||||
enable = true;
|
||||
package = inputs.nixpkgs-wayland.packages.${pkgs.system}.foot;
|
||||
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";
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
|
@ -1,42 +0,0 @@
|
|||
{
|
||||
config,
|
||||
inputs,
|
||||
pkgs,
|
||||
...
|
||||
}: {
|
||||
config = {
|
||||
gtk = {
|
||||
enable = true;
|
||||
theme = {
|
||||
name = "Catppuccin-Mocha-Standard-Green-dark";
|
||||
package = pkgs.catppuccin-gtk.override {
|
||||
size = "standard";
|
||||
accents = [ "green" ];
|
||||
variant = "mocha";
|
||||
tweaks = [ "normal" ];
|
||||
};
|
||||
};
|
||||
iconTheme = {
|
||||
name = "Papirus-Dark";
|
||||
package = pkgs.catppuccin-papirus-folders.override {
|
||||
accent = "green";
|
||||
flavor = "mocha";
|
||||
};
|
||||
};
|
||||
};
|
||||
home = {
|
||||
sessionVariables = {
|
||||
GTK_THEME = "${config.gtk.theme.name}";
|
||||
|
||||
GTK_USE_PORTAL = "1";
|
||||
};
|
||||
pointerCursor = {
|
||||
package = pkgs.bibata-cursors;
|
||||
name = "Bibata-Modern-Classic";
|
||||
size = 24;
|
||||
gtk.enable = true;
|
||||
x11.enable = true;
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
|
@ -1,300 +0,0 @@
|
|||
{
|
||||
config,
|
||||
inputs,
|
||||
pkgs,
|
||||
...
|
||||
}: {
|
||||
config = {
|
||||
wayland.windowManager.hyprland = {
|
||||
enable = true;
|
||||
package = inputs.hyprland.packages.${pkgs.system}.hyprland;
|
||||
plugins = [
|
||||
inputs.hyprland-plugins.packages.${pkgs.system}.csgo-vulkan-fix
|
||||
inputs.split-monitor-workspaces.packages.${pkgs.system}.split-monitor-workspaces
|
||||
];
|
||||
extraConfig = ''
|
||||
#laptop
|
||||
monitor=eDP-1,2560@1440@165,0x0,1
|
||||
#second monitor
|
||||
monitor=HDMI-A-1,2560x1440@144,2560x0,1
|
||||
|
||||
workspace = 1, monitor:eDP-1, default:true
|
||||
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
|
||||
|
||||
workspace = 11, monitor:HDMI-A-1, default:true
|
||||
workspace = 12, monitor:HDMI-A-1
|
||||
workspace = 13, monitor:HDMI-A-1
|
||||
workspace = 14, monitor:HDMI-A-1
|
||||
workspace = 15, monitor:HDMI-A-1
|
||||
workspace = 16, monitor:HDMI-A-1
|
||||
workspace = 17, monitor:HDMI-A-1
|
||||
workspace = 18, monitor:HDMI-A-1
|
||||
workspace = 19, monitor:HDMI-A-1
|
||||
workspace = 20, monitor:HDMI-A-1
|
||||
|
||||
workspace = special:btop, allpseudo
|
||||
workspace = special:amdgpu_top, allpseudo
|
||||
workspace = special:helvum, allpseudo
|
||||
workspace = special:nixos, allpseudo, gapsin:0, gapsout:0
|
||||
|
||||
input {
|
||||
kb_layout=pl
|
||||
kb_variant=
|
||||
kb_model=
|
||||
kb_options=
|
||||
kb_rules=
|
||||
|
||||
follow_mouse=1
|
||||
touchpad {
|
||||
disable_while_typing=true
|
||||
}
|
||||
|
||||
repeat_rate = 50
|
||||
repeat_delay = 250
|
||||
}
|
||||
|
||||
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
|
||||
|
||||
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 {
|
||||
enabled=1
|
||||
size=3
|
||||
passes=2
|
||||
}
|
||||
|
||||
drop_shadow=1
|
||||
shadow_range=15
|
||||
shadow_render_power=2
|
||||
shadow_ignore_window=1
|
||||
shadow_offset= 2 4
|
||||
shadow_scale=1
|
||||
}
|
||||
|
||||
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, title:^(.*)(Tor Browser)(.*)$
|
||||
windowrulev2 = float, class:^(mullvadbrowser)$
|
||||
windowrulev2 = float, class:^(foot)$
|
||||
windowrulev2 = float, class:^(mpv)$
|
||||
windowrulev2 = float, class:^(imv)$
|
||||
windowrulev2 = float, class:^(Vieb)$
|
||||
windowrulev2 = float, title:^(Picture-in-Picture)$
|
||||
windowrulev2 = float, title:^(.*)(Choose User Profile)(.*)$
|
||||
|
||||
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, foot
|
||||
bind = SUPER, W, exec, firefox
|
||||
bind = SUPERSHIFT, W, exec, librewolf
|
||||
bind = SUPER, Q, killactive
|
||||
bind = SUPER, F, fullscreen, 0
|
||||
bind = SUPER, M, fullscreen, 1
|
||||
bind = SUPER, D, exec, pkill anyrun || anyrun
|
||||
bind = SUPER, SPACE, togglefloating,
|
||||
bind = SUPERSHIFT, C, centerwindow
|
||||
bind = SUPER, R, bringactivetotop
|
||||
binde = SUPER, H, movefocus, l
|
||||
binde = SUPER, J, movefocus, d
|
||||
binde = SUPER, K, movefocus, u
|
||||
binde = SUPER, L, movefocus, r
|
||||
binde = SUPERCTRL, J, focusmonitor, l
|
||||
binde = SUPERCTRL, K, focusmonitor, r
|
||||
bind = SUPER, 1, split-workspace, 1
|
||||
bind = SUPER, 2, split-workspace, 2
|
||||
bind = SUPER, 3, split-workspace, 3
|
||||
bind = SUPER, 4, split-workspace, 4
|
||||
bind = SUPER, 5, split-workspace, 5
|
||||
bind = SUPER, 6, split-workspace, 6
|
||||
bind = SUPER, 7, split-workspace, 7
|
||||
bind = SUPER, 8, split-workspace, 8
|
||||
bind = SUPER, 9, split-workspace, 9
|
||||
bind = SUPER, 0, split-workspace, 10
|
||||
bind = SUPERSHIFT, 1, split-movetoworkspacesilent, 1
|
||||
bind = SUPERSHIFT, 2, split-movetoworkspacesilent, 2
|
||||
bind = SUPERSHIFT, 3, split-movetoworkspacesilent, 3
|
||||
bind = SUPERSHIFT, 4, split-movetoworkspacesilent, 4
|
||||
bind = SUPERSHIFT, 5, split-movetoworkspacesilent, 5
|
||||
bind = SUPERSHIFT, 6, split-movetoworkspacesilent, 6
|
||||
bind = SUPERSHIFT, 7, split-movetoworkspacesilent, 7
|
||||
bind = SUPERSHIFT, 8, split-movetoworkspacesilent, 8
|
||||
bind = SUPERSHIFT, 9, split-movetoworkspacesilent, 9
|
||||
bind = SUPERSHIFT, 0, split-movetoworkspacesilent, 10
|
||||
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 && notify-send "Screenshot taken"
|
||||
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 && notify-send "Screenshot taken"
|
||||
bind = SUPERCONTROL, S, exec, grimblast save area - | tee "$(xdg-user-dir PICTURES)/Screenshots/$(date +'screenshot-%Y%m%d%H%M%S.png')" | wl-copy && notify-send "Screenshot taken"
|
||||
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
|
||||
bind = SUPERCONTROL, X, exec, ${pkgs.xdg-desktop-portal-hyprland}/libexec/xdg-desktop-portal-hyprland -r
|
||||
bind = SUPERSHIFT, X, exec, hyprctl kill
|
||||
bind = SUPER, B, togglespecialworkspace, btop
|
||||
bind = SUPER, A, togglespecialworkspace, amdgpu_top
|
||||
bind = SUPER, V, togglespecialworkspace, helvum
|
||||
bind = SUPER, N, togglespecialworkspace, nixos
|
||||
|
||||
|
||||
bindm = SUPER, mouse:272, movewindow
|
||||
bindm = SUPER, mouse:273, resizewindow
|
||||
|
||||
binds {
|
||||
pass_mouse_when_bound=0
|
||||
}
|
||||
|
||||
exec=systemctl restart --user waybar.service
|
||||
|
||||
exec=pkill btop
|
||||
exec=pkill amdgpu_top
|
||||
exec=pkill helvum
|
||||
|
||||
exec=[workspace special:btop silent;tile] foot btop
|
||||
exec=[workspace special:amdgpu_top silent] amdgpu_top --gui -i 0
|
||||
exec=[workspace special:amdgpu_top silent] amdgpu_top --gui -i 1
|
||||
exec=[workspace special:helvum silent] helvum
|
||||
exec-once=[workspace special:nixos silent;tile] cd niksos; foot
|
||||
|
||||
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=swww img -o eDP-1 ~/catppuccin-wall0.png
|
||||
exec=swww img -o HDMI-A-1 ~/catppuccin-wall1.png
|
||||
|
||||
exec-once=rog-control-center
|
||||
exec-once=wlsunset -S 06:00 -s 20:00
|
||||
|
||||
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
|
||||
|
||||
#exec-once=fcitx5 -d
|
||||
|
||||
exec-once=systemctl --user import-environment WAYLAND_DISPLAY XDG_CURRENT_DESKTOP
|
||||
exec-once=dbus-update-activation-environment --systemd WAYLAND_DISPLAY XDG_CURRENT_DESKTOP=$XDG_CURRENT_DESKTOP
|
||||
|
||||
# no black border on grimblast screenshots
|
||||
layerrule = noanim, ^(selection)$
|
||||
|
||||
layerrule = blur, ^(waybar)$
|
||||
|
||||
# temporary fix to swaylock screenshoting rofi before locking
|
||||
layerrule = noanim, ^(rofi)$
|
||||
|
||||
layerrule = blur, ^(anyrun)$
|
||||
|
||||
general {
|
||||
col.active_border=0xFFF5C2E7
|
||||
col.inactive_border=0xFF45475A
|
||||
col.group_border_active=0xFFA6E3A1
|
||||
col.group_border=0xFF45475A
|
||||
}
|
||||
|
||||
decoration {
|
||||
col.shadow=0xAF1E1E2E
|
||||
}
|
||||
|
||||
plugin {
|
||||
csgo-vulkan-fix {
|
||||
res_w = 2560
|
||||
res_h = 1440
|
||||
}
|
||||
split-monitor-workspaces {
|
||||
count = 10
|
||||
}
|
||||
}
|
||||
'';
|
||||
};
|
||||
};
|
||||
}
|
|
@ -1,27 +0,0 @@
|
|||
{
|
||||
config,
|
||||
pkgs,
|
||||
...
|
||||
}: {
|
||||
config = {
|
||||
programs.mpv = {
|
||||
enable = true;
|
||||
config = {
|
||||
vo = "gpu-next";
|
||||
hwdec = "auto";
|
||||
gpu-api = "vulkan";
|
||||
vulkan-device = "AMD Radeon RX 6800M (RADV NAVI22)";
|
||||
volume = 50;
|
||||
osc = "no";
|
||||
osd-bar = "no";
|
||||
border = "no";
|
||||
};
|
||||
scripts = with pkgs.mpvScripts; [
|
||||
mpris
|
||||
thumbfast
|
||||
sponsorblock
|
||||
uosc
|
||||
];
|
||||
};
|
||||
};
|
||||
}
|
|
@ -1,57 +0,0 @@
|
|||
{
|
||||
config,
|
||||
inputs,
|
||||
pkgs,
|
||||
...
|
||||
}: {
|
||||
# thanks raf :3 https://github.com/NotAShelf/nyx/blob/main/homes/notashelf/themes/qt.nix
|
||||
config = {
|
||||
qt = {
|
||||
enable = true;
|
||||
#platformTheme = "qtct";
|
||||
style = {
|
||||
name = "Catppuccin-Mocha-Dark";
|
||||
package = pkgs.catppuccin-kde.override {
|
||||
flavour = "mocha";
|
||||
accents = [ "green" ];
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
home = {
|
||||
packages = with pkgs; [
|
||||
qt5.qttools
|
||||
qt6Packages.qtstyleplugin-kvantum
|
||||
libsForQt5.qtstyleplugin-kvantum
|
||||
libsForQt5.qt5ct
|
||||
breeze-icons
|
||||
];
|
||||
|
||||
sessionVariables = {
|
||||
QT_STYLE_OVERRIDE = "kvantum";
|
||||
QT_AUTO_SCREEN_SCALE_FACTOR = "1";
|
||||
QT_QPA_PLATFORM = "wayland;xcb";
|
||||
QT_WAYLAND_DISABLE_WINDOWDECORATION = "1";
|
||||
DISABLE_QT_COMPAT = "0";
|
||||
};
|
||||
};
|
||||
|
||||
xdg.configFile = {
|
||||
"Kvantum/catppuccin/catppuccin.kvconfig".source = builtins.fetchurl {
|
||||
url = "https://raw.githubusercontent.com/catppuccin/Kvantum/main/src/Catppuccin-Mocha-Green/Catppuccin-Mocha-Green.kvconfig";
|
||||
sha256 = "16ry4k09nf5w1gyawwz2ny14zn6infqk40l35lqlg30lhgbdmr5f";
|
||||
};
|
||||
"Kvantum/catppuccin/catppuccin.svg".source = builtins.fetchurl {
|
||||
url = "https://raw.githubusercontent.com/catppuccin/Kvantum/main/src/Catppuccin-Mocha-Green/Catppuccin-Mocha-Green.svg";
|
||||
sha256 = "1djh625qag34rjsp7y67nzbi9nbmiwgq63ydfizsh65n3fyfakf1";
|
||||
};
|
||||
"Kvantum/kvantum.kvconfig".text = ''
|
||||
[General]
|
||||
theme=catppuccin
|
||||
|
||||
[Applications]
|
||||
catppuccin=qt5ct, org.qbittorrent.qBittorrent, hyprland-share-picker
|
||||
'';
|
||||
};
|
||||
};
|
||||
}
|
|
@ -1,14 +0,0 @@
|
|||
{
|
||||
config,
|
||||
pkgs,
|
||||
...
|
||||
}: {
|
||||
config = {
|
||||
programs.rofi = {
|
||||
enable = true;
|
||||
package = pkgs.rofi-wayland;
|
||||
cycle = true;
|
||||
terminal = "foot";
|
||||
};
|
||||
};
|
||||
}
|
|
@ -1,58 +0,0 @@
|
|||
{
|
||||
config,
|
||||
inputs,
|
||||
pkgs,
|
||||
...
|
||||
}: {
|
||||
config = {
|
||||
programs.swaylock = {
|
||||
enable = true;
|
||||
package = inputs.nixpkgs-wayland.packages.${pkgs.system}.swaylock-effects;
|
||||
settings = {
|
||||
daemonize = true;
|
||||
show-failed-attempts = true;
|
||||
clock = true;
|
||||
screenshots = true;
|
||||
effect-blur = "9x5";
|
||||
effect-vignette = "0.5:0.5";
|
||||
indicator = true;
|
||||
indicator-radius = 200;
|
||||
indicator-thickness = 20;
|
||||
color = "1e1e2e";
|
||||
bs-hl-color = "f5e0dc";
|
||||
caps-lock-bs-hl-color = "f5e0dc";
|
||||
caps-lock-key-hl-color = "a6e3a1";
|
||||
inside-color = "00000000";
|
||||
inside-clear-color = "00000000";
|
||||
inside-caps-lock-color = "00000000";
|
||||
inside-ver-color = "00000000";
|
||||
inside-wrong-color = "00000000";
|
||||
key-hl-color = "a6e3a1";
|
||||
layout-bg-color = "00000000";
|
||||
layout-border-color = "00000000";
|
||||
layout-text-color = "cdd6f4";
|
||||
line-color = "00000000";
|
||||
line-clear-color = "00000000";
|
||||
line-caps-lock-color = "00000000";
|
||||
line-ver-color = "00000000";
|
||||
line-wrong-color = "00000000";
|
||||
ring-color = "b4befe";
|
||||
ring-clear-color = "f5e0dc";
|
||||
ring-caps-lock-color = "fab387";
|
||||
ring-ver-color = "89b4fa";
|
||||
ring-wrong-color = "eba0ac";
|
||||
separator-color = "00000000";
|
||||
text-color = "cdd6f4";
|
||||
text-clear-color = "f5e0dc";
|
||||
text-caps-lock-color = "fab387";
|
||||
text-ver-color = "89b4fa";
|
||||
text-wrong-color = "eba0ac";
|
||||
grace = 2;
|
||||
grace-no-mouse = true;
|
||||
grace-no-touch = true;
|
||||
fade-in = 0.2;
|
||||
ignore-empty-password = true;
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
|
@ -1,527 +0,0 @@
|
|||
{
|
||||
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/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";
|
||||
};
|
||||
"wlr/workspaces" = {
|
||||
sort-by-name = true;
|
||||
sort-by-coordinates = false;
|
||||
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: 0px;
|
||||
padding-left: 0px;
|
||||
padding-right: 10px;
|
||||
transition: none;
|
||||
background: @mantle;
|
||||
color: @peach;
|
||||
border-top-left-radius: 0;
|
||||
border-bottom-left-radius: 0;
|
||||
}
|
||||
|
||||
#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;
|
||||
}
|
||||
'';
|
||||
};
|
||||
};
|
||||
}
|
|
@ -1,58 +0,0 @@
|
|||
{
|
||||
config,
|
||||
pkgs,
|
||||
...
|
||||
}: let
|
||||
primary_browser = "firefox.desktop";
|
||||
secondary_browser = "librewolf.desktop";
|
||||
mail_client = "thunderbird.desktop";
|
||||
file_manager = "pcmanfm.desktop";
|
||||
media_player = "mpv.desktop";
|
||||
image_viewer = "imv.desktop";
|
||||
text_editor = "nvim.desktop";
|
||||
in {
|
||||
config = {
|
||||
xdg.mimeApps = {
|
||||
enable = true;
|
||||
defaultApplications = {
|
||||
"text/html" = [ primary_browser secondary_browser ];
|
||||
"x-scheme-handler/http" = [ primary_browser secondary_browser ];
|
||||
"x-scheme-handler/https" = [ primary_browser secondary_browser ];
|
||||
"x-scheme-handler/about" = [ primary_browser secondary_browser ];
|
||||
"x-scheme-handler/unknown" = [ primary_browser secondary_browser ];
|
||||
"x-scheme-handler/mailto" = [ mail_client ];
|
||||
"message/rfc822" = [ mail_client ];
|
||||
"x-scheme-handler/mid" = [ mail_client ];
|
||||
"inode/directory" = [ file_manager ];
|
||||
"x-scheme-handler/heroic" = [ "heroic.desktop" ];
|
||||
"audio/mp3" = [ media_player ];
|
||||
"audio/ogg" = [ media_player ];
|
||||
"audio/mpeg" = [ media_player ];
|
||||
"audio/aac" = [ media_player ];
|
||||
"audio/opus" = [ media_player ];
|
||||
"audio/wav" = [ media_player ];
|
||||
"audio/webm" = [ media_player ];
|
||||
"audio/3gpp" = [ media_player ];
|
||||
"audio/3gpp2" = [ media_player ];
|
||||
"video/mp4" = [ media_player ];
|
||||
"video/x-msvideo" = [ media_player ];
|
||||
"video/mpeg" = [ media_player ];
|
||||
"video/ogg" = [ media_player ];
|
||||
"video/mp2t" = [ media_player ];
|
||||
"video/webm" = [ media_player ];
|
||||
"video/3gpp" = [ media_player ];
|
||||
"video/3gpp2" = [ media_player ];
|
||||
"image/png" = [ image_viewer ];
|
||||
"image/jpeg" = [ image_viewer ];
|
||||
"image/gif" = [ image_viewer ];
|
||||
"image/avif" = [ image_viewer ];
|
||||
"image/bmp" = [ image_viewer ];
|
||||
"image/vnd.microsoft.icon" = [ image_viewer ];
|
||||
"image/svg+xml" = [ image_viewer ];
|
||||
"image/tiff" = [ image_viewer ];
|
||||
"image/webp" = [ image_viewer ];
|
||||
"text/plain" = [ text_editor ];
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
|
@ -1,88 +0,0 @@
|
|||
{
|
||||
config,
|
||||
inputs,
|
||||
pkgs,
|
||||
...
|
||||
}: {
|
||||
config = {
|
||||
services.dunst = {
|
||||
enable = true;
|
||||
package = inputs.nixpkgs-wayland.packages.${pkgs.system}.dunst;
|
||||
settings = {
|
||||
global = {
|
||||
monitor = 1;
|
||||
follow = "none";
|
||||
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 = "#89B4FA";
|
||||
separator_color = "frame";
|
||||
highlight = "#89DCEB";
|
||||
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;
|
||||
sticky_history = "yes";
|
||||
history_length = 20;
|
||||
dmenu = "${pkgs.rofi-wayland}/bin/rofi";
|
||||
browser = "${pkgs.xdg-utils}/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 = "#1E1E2E";
|
||||
foreground = "#CDD6F4";
|
||||
timeout = 5;
|
||||
};
|
||||
urgency_normal = {
|
||||
background = "#1E1E2E";
|
||||
foreground = "#CDD6F4";
|
||||
timeout = 6;
|
||||
};
|
||||
urgency_critical = {
|
||||
background = "#1E1E2E";
|
||||
foreground = "#CDD6F4";
|
||||
frame_color = "#FAB387";
|
||||
timeout = 0;
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
|
@ -1,22 +0,0 @@
|
|||
{
|
||||
config,
|
||||
...
|
||||
}: {
|
||||
config = {
|
||||
programs.btop = {
|
||||
enable = true;
|
||||
settings = {
|
||||
theme_background = false;
|
||||
vim_keys = true;
|
||||
update_ms = 100;
|
||||
cpu_single_graph = true;
|
||||
clock_format = "%X";
|
||||
use_fstab = true;
|
||||
io_mode = true;
|
||||
net_sync = true;
|
||||
net_iface = "enp4s0";
|
||||
log_level = "WARNING";
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
|
@ -1,52 +0,0 @@
|
|||
{
|
||||
config,
|
||||
lib,
|
||||
inputs,
|
||||
pkgs,
|
||||
...
|
||||
}: {
|
||||
programs.helix = {
|
||||
enable = true;
|
||||
package = inputs.helix.packages.${pkgs.system}.helix;
|
||||
settings = {
|
||||
theme = "catppuccin_mocha";
|
||||
editor = {
|
||||
scrolloff = 7;
|
||||
mouse = false;
|
||||
middle-click-paste = false;
|
||||
line-number = "relative";
|
||||
auto-completion = false;
|
||||
auto-format = false;
|
||||
completion-replace = true;
|
||||
true-color = true;
|
||||
undercurl = true;
|
||||
rulers = [ 80 ];
|
||||
bufferline = "multiple";
|
||||
color-modes = true;
|
||||
lsp = {
|
||||
display-messages = true;
|
||||
display-inlay-hints = true;
|
||||
};
|
||||
cursor-shape = {
|
||||
normal = "block";
|
||||
insert = "bar";
|
||||
select = "underline";
|
||||
};
|
||||
auto-pairs = false;
|
||||
whitespace.render.newline = "all";
|
||||
indent-guides.render = true;
|
||||
};
|
||||
};
|
||||
languages = {
|
||||
language-server = {
|
||||
nil.command = lib.getExe pkgs.nil;
|
||||
};
|
||||
language = [
|
||||
{
|
||||
name = "rust";
|
||||
auto-format = false;
|
||||
}
|
||||
];
|
||||
};
|
||||
};
|
||||
}
|
|
@ -1,116 +0,0 @@
|
|||
{
|
||||
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;
|
||||
#};
|
||||
};
|
||||
}
|
|
@ -1,8 +1,4 @@
|
|||
{
|
||||
config,
|
||||
pkgs,
|
||||
...
|
||||
}: {
|
||||
_: {
|
||||
services.ankisyncd = {
|
||||
enable = true;
|
||||
};
|
||||
|
|
|
@ -1,5 +1,4 @@
|
|||
{
|
||||
config,
|
||||
pkgs,
|
||||
inputs,
|
||||
...
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
{
|
||||
config,
|
||||
pkgs,
|
||||
inputs,
|
||||
hostname,
|
||||
username,
|
||||
...
|
||||
}: {
|
||||
# fuck broadcom
|
||||
|
@ -21,10 +21,12 @@
|
|||
];
|
||||
trusted-users = [
|
||||
"root"
|
||||
"chmura"
|
||||
username
|
||||
];
|
||||
};
|
||||
|
||||
networking.hostName = hostname;
|
||||
|
||||
programs.zsh.enable = true;
|
||||
|
||||
programs.direnv = {
|
||||
|
@ -32,7 +34,7 @@
|
|||
nix-direnv.enable = true;
|
||||
};
|
||||
|
||||
users.users.chmura = {
|
||||
users.users.${username} = {
|
||||
isNormalUser = true;
|
||||
extraGroups = [ "wheel" "docker" ];
|
||||
shell = pkgs.zsh;
|
||||
|
|
25
hosts/chmura/freshrss.nix
Normal file
25
hosts/chmura/freshrss.nix
Normal file
|
@ -0,0 +1,25 @@
|
|||
_: {
|
||||
services.freshrss = {
|
||||
enable = true;
|
||||
baseUrl = "https://f.jacekpoz.pl:4834";
|
||||
database = {
|
||||
port = 7425;
|
||||
tableprefix = "freshrss";
|
||||
type = "pgsql";
|
||||
};
|
||||
defaultUser = "jacek";
|
||||
language = "pl";
|
||||
passwordFile = "/run/secrets/freshrss";
|
||||
virtualHost = null;
|
||||
};
|
||||
|
||||
services.caddy = {
|
||||
enable = true;
|
||||
virtualHosts."f.jacekpoz.pl".extraConfig = ''
|
||||
reverse_proxy * localhost:4834
|
||||
'';
|
||||
};
|
||||
|
||||
networking.firewall.allowedTCPPorts = [ 4834 ];
|
||||
networking.firewall.allowedUDPPorts = [ 4834 ];
|
||||
}
|
|
@ -1,9 +1,4 @@
|
|||
{
|
||||
config,
|
||||
pkgs,
|
||||
inputs,
|
||||
...
|
||||
}: {
|
||||
_: {
|
||||
services.grafana = {
|
||||
enable = true;
|
||||
settings.server = {
|
||||
|
|
115
hosts/chmura/home-manager.nix
Normal file
115
hosts/chmura/home-manager.nix
Normal file
|
@ -0,0 +1,115 @@
|
|||
{
|
||||
lib,
|
||||
inputs,
|
||||
pkgs,
|
||||
self,
|
||||
username,
|
||||
...
|
||||
}: let
|
||||
mkNixPak = inputs.nixpak.lib.nixpak {
|
||||
inherit (pkgs) lib;
|
||||
inherit pkgs;
|
||||
};
|
||||
in {
|
||||
home-manager = {
|
||||
useUserPackages = true;
|
||||
useGlobalPkgs = true;
|
||||
extraSpecialArgs = {inherit inputs self mkNixPak;};
|
||||
users.${username} = {
|
||||
imports = [
|
||||
inputs.neovim-flake.homeManagerModules.default
|
||||
../../modules/cli/starship.nix
|
||||
../../modules/cli/zsh.nix
|
||||
../../modules/tui/btop.nix
|
||||
../../modules/tui/neovim
|
||||
];
|
||||
|
||||
programs = {
|
||||
home-manager.enable = true;
|
||||
direnv = {
|
||||
enable = true;
|
||||
nix-direnv.enable = true;
|
||||
};
|
||||
};
|
||||
|
||||
home = {
|
||||
inherit username;
|
||||
homeDirectory = "/home/${username}";
|
||||
packages = let
|
||||
fenix = inputs.fenix.packages.${pkgs.system};
|
||||
in with pkgs; [
|
||||
git
|
||||
eza
|
||||
ripgrep
|
||||
firejail
|
||||
zellij
|
||||
nodejs
|
||||
unzip
|
||||
cmake
|
||||
gcc
|
||||
trash-cli
|
||||
dig
|
||||
|
||||
nodePackages_latest.pnpm
|
||||
nodePackages_latest.prisma
|
||||
prisma-engines
|
||||
openssl
|
||||
pkg-config
|
||||
docker
|
||||
docker-compose
|
||||
postgresql
|
||||
|
||||
xdg-ninja
|
||||
auto-cpufreq
|
||||
gnupg
|
||||
age
|
||||
rage
|
||||
fd
|
||||
udisks
|
||||
ffmpeg
|
||||
ghc
|
||||
ghcid
|
||||
cabal-install
|
||||
yt-dlp
|
||||
(fenix.complete.withComponents [
|
||||
"cargo"
|
||||
"clippy"
|
||||
"rust-src"
|
||||
"rustc"
|
||||
"rustfmt"
|
||||
])
|
||||
polkit
|
||||
asciinema
|
||||
asciinema-agg
|
||||
du-dust
|
||||
appimage-run
|
||||
file
|
||||
weechat
|
||||
hyfetch
|
||||
git-annex
|
||||
croc
|
||||
uutils-coreutils
|
||||
imagemagick
|
||||
psmisc
|
||||
nnn
|
||||
jq
|
||||
fq
|
||||
gnumake
|
||||
gdb
|
||||
tea
|
||||
codeberg-cli
|
||||
progress
|
||||
parallel
|
||||
p7zip
|
||||
xxd
|
||||
meson
|
||||
lshw
|
||||
tree
|
||||
smartmontools
|
||||
];
|
||||
|
||||
stateVersion = lib.mkDefault "23.11";
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
|
@ -1,8 +1,4 @@
|
|||
{
|
||||
config,
|
||||
pkgs,
|
||||
...
|
||||
}: {
|
||||
_: {
|
||||
services.i2pd = {
|
||||
enable = true;
|
||||
ifname = "enp6s0";
|
||||
|
|
|
@ -1,5 +1,4 @@
|
|||
{
|
||||
config,
|
||||
pkgs,
|
||||
...
|
||||
}: {
|
||||
|
|
12
hosts/chmura/transmission.nix
Normal file
12
hosts/chmura/transmission.nix
Normal file
|
@ -0,0 +1,12 @@
|
|||
_: {
|
||||
services.transmission = {
|
||||
enable = true;
|
||||
home = "/media/Torrent";
|
||||
openFirewall = true;
|
||||
openRPCPort = true;
|
||||
|
||||
settings = {
|
||||
rpc-bind-address = "0.0.0.0";
|
||||
};
|
||||
};
|
||||
}
|
|
@ -3,33 +3,35 @@
|
|||
inputs,
|
||||
...
|
||||
}: let
|
||||
self = inputs.self;
|
||||
inherit (inputs) self;
|
||||
|
||||
home-manager = inputs.home-manager.nixosModules.home-manager;
|
||||
home-configs = import ../homes;
|
||||
inherit (inputs.home-manager.nixosModules) home-manager;
|
||||
|
||||
laptopHostname = "niks";
|
||||
serverHostname = "chmura";
|
||||
in {
|
||||
niks = lib.nixosSystem {
|
||||
${laptopHostname} = lib.nixosSystem {
|
||||
system = "x86_64-linux";
|
||||
specialArgs = {inherit lib inputs self;};
|
||||
specialArgs = {
|
||||
inherit lib inputs self;
|
||||
hostname = laptopHostname;
|
||||
username = "jacek";
|
||||
};
|
||||
modules = [
|
||||
{networking.hostName = "niks";}
|
||||
./niks
|
||||
]
|
||||
++ [
|
||||
./${laptopHostname}
|
||||
home-manager
|
||||
home-configs
|
||||
];
|
||||
};
|
||||
chmura = lib.nixosSystem {
|
||||
${serverHostname} = lib.nixosSystem {
|
||||
system = "x86_86-linux";
|
||||
specialArgs = {inherit lib inputs self;};
|
||||
specialArgs = {
|
||||
inherit lib inputs self;
|
||||
hostname = serverHostname;
|
||||
username = "chmura";
|
||||
};
|
||||
modules = [
|
||||
{networking.hostName = "chmura";}
|
||||
./chmura
|
||||
]
|
||||
++ [
|
||||
./${serverHostname}
|
||||
home-manager
|
||||
home-configs
|
||||
];
|
||||
};
|
||||
}
|
||||
|
|
|
@ -1,7 +1,10 @@
|
|||
{
|
||||
config,
|
||||
pkgs,
|
||||
lib,
|
||||
inputs,
|
||||
hostname,
|
||||
username,
|
||||
...
|
||||
}: {
|
||||
nixpkgs = {
|
||||
|
@ -19,7 +22,10 @@
|
|||
|
||||
boot = {
|
||||
loader = {
|
||||
systemd-boot.enable = true;
|
||||
systemd-boot = {
|
||||
enable = true;
|
||||
memtest86.enable = true;
|
||||
};
|
||||
efi.canTouchEfiVariables = true;
|
||||
};
|
||||
kernelPackages = pkgs.linuxPackages_xanmod_latest;
|
||||
|
@ -40,41 +46,80 @@
|
|||
];
|
||||
};
|
||||
|
||||
documentation = {
|
||||
enable = true;
|
||||
dev.enable = true;
|
||||
doc.enable = true;
|
||||
info.enable = true;
|
||||
man = {
|
||||
enable = true;
|
||||
generateCaches = true;
|
||||
man-db.enable = false;
|
||||
mandoc.enable = true;
|
||||
};
|
||||
nixos = {
|
||||
includeAllModules = true;
|
||||
};
|
||||
};
|
||||
|
||||
networking = {
|
||||
hostName = hostname;
|
||||
networkmanager.enable = true;
|
||||
firewall.checkReversePath = "loose";
|
||||
};
|
||||
|
||||
time.timeZone = "Europe/Warsaw";
|
||||
|
||||
nix.settings = {
|
||||
experimental-features = [
|
||||
"flakes"
|
||||
"nix-command"
|
||||
];
|
||||
substituters = [
|
||||
"https://hyprland.cachix.org"
|
||||
"https://nix-gaming.cachix.org"
|
||||
"https://anyrun.cachix.org"
|
||||
"https://nix-community.cachix.org"
|
||||
"https://nixpkgs-wayland.cachix.org"
|
||||
"https://helix.cachix.org"
|
||||
];
|
||||
trusted-public-keys = [
|
||||
"hyprland.cachix.org-1:a7pgxzMz7+chwVL3/pzj6jIBMioiJM7ypFP8PwtkuGc="
|
||||
"nix-gaming.cachix.org-1:nbjlureqMbRAxR1gJ/f3hxemL9svXaZF/Ees8vCUUs4="
|
||||
"anyrun.cachix.org-1:pqBobmOjI7nKlsUMV25u9QHa9btJK65/C8vnO3p346s="
|
||||
"nix-community.cachix.org-1:mB9FSh9qf2dCimDSUo8Zy7bkq5CX+/rkCWyvRCYg3Fs="
|
||||
"nixpkgs-wayland.cachix.org-1:3lwxaILxMRkVhehr5StQprHdEo4IrE8sRho9R9HOLYA="
|
||||
"helix.cachix.org-1:ejp9KQpR1FBI2onstMQ34yogDm4OgU2ru6lIwPvuCVs="
|
||||
];
|
||||
keep-outputs = true;
|
||||
keep-derivations = true;
|
||||
# don't wait for network to boot faster
|
||||
# https://old.reddit.com/r/NixOS/comments/vdz86j/how_to_remove_boot_dependency_on_network_for_a
|
||||
systemd = {
|
||||
targets.network-online.wantedBy = lib.mkForce []; # default is [ "multi-user.target" ]
|
||||
services.NetworkManager-wait-online.wantedBy = lib.mkForce []; # default is [ "network-online.target" ]
|
||||
};
|
||||
|
||||
programs.zsh.enable = true;
|
||||
systemd.oomd = {
|
||||
enable = true;
|
||||
enableUserServices = true;
|
||||
};
|
||||
|
||||
virtualisation.libvirtd.enable = true;
|
||||
time.timeZone = "Europe/Warsaw";
|
||||
|
||||
nix = {
|
||||
settings = {
|
||||
experimental-features = [
|
||||
"flakes"
|
||||
"nix-command"
|
||||
];
|
||||
substituters = [
|
||||
"https://hyprland.cachix.org"
|
||||
"https://nix-gaming.cachix.org"
|
||||
"https://anyrun.cachix.org"
|
||||
"https://nix-community.cachix.org"
|
||||
"https://nixpkgs-wayland.cachix.org"
|
||||
"https://helix.cachix.org"
|
||||
];
|
||||
trusted-public-keys = [
|
||||
"hyprland.cachix.org-1:a7pgxzMz7+chwVL3/pzj6jIBMioiJM7ypFP8PwtkuGc="
|
||||
"nix-gaming.cachix.org-1:nbjlureqMbRAxR1gJ/f3hxemL9svXaZF/Ees8vCUUs4="
|
||||
"anyrun.cachix.org-1:pqBobmOjI7nKlsUMV25u9QHa9btJK65/C8vnO3p346s="
|
||||
"nix-community.cachix.org-1:mB9FSh9qf2dCimDSUo8Zy7bkq5CX+/rkCWyvRCYg3Fs="
|
||||
"nixpkgs-wayland.cachix.org-1:3lwxaILxMRkVhehr5StQprHdEo4IrE8sRho9R9HOLYA="
|
||||
"helix.cachix.org-1:ejp9KQpR1FBI2onstMQ34yogDm4OgU2ru6lIwPvuCVs="
|
||||
];
|
||||
keep-outputs = true;
|
||||
keep-derivations = true;
|
||||
};
|
||||
};
|
||||
|
||||
virtualisation = {
|
||||
libvirtd = {
|
||||
enable = true;
|
||||
onBoot = "ignore";
|
||||
qemu = {
|
||||
ovmf.enable = true;
|
||||
runAsRoot = false;
|
||||
swtpm.enable = true;
|
||||
};
|
||||
};
|
||||
};
|
||||
programs.dconf.enable = true;
|
||||
|
||||
# https://github.com/NixOS/nixpkgs/issues/158025
|
||||
|
@ -84,21 +129,26 @@
|
|||
|
||||
fonts.packages = with pkgs; [
|
||||
material-design-icons
|
||||
(nerdfonts.override { fonts = [ "JetBrainsMono" ]; })
|
||||
(nerdfonts.override { fonts = [
|
||||
"JetBrainsMono"
|
||||
"Iosevka"
|
||||
]; })
|
||||
noto-fonts
|
||||
noto-fonts-cjk-sans
|
||||
noto-fonts-cjk-serif
|
||||
noto-fonts-emoji
|
||||
];
|
||||
|
||||
users.users.jacek = {
|
||||
users.users.${username} = {
|
||||
isNormalUser = true;
|
||||
extraGroups = [ "wheel" "networkmanager" "libvirtd" ];
|
||||
shell = pkgs.zsh;
|
||||
};
|
||||
|
||||
programs.zsh.enable = true;
|
||||
|
||||
environment = {
|
||||
shells = with pkgs; [zsh];
|
||||
shells = [ pkgs.zsh ];
|
||||
pathsToLink = [ "/share/zsh" ];
|
||||
enableAllTerminfo = true;
|
||||
sessionVariables = {
|
||||
|
@ -144,6 +194,10 @@
|
|||
|
||||
CHROME_EXECUTABLE = "${pkgs.ungoogled-chromium}/bin/chromium";
|
||||
};
|
||||
systemPackages = with pkgs; [
|
||||
man-pages
|
||||
man-pages-posix
|
||||
];
|
||||
};
|
||||
|
||||
services = {
|
||||
|
@ -155,6 +209,7 @@
|
|||
udev.packages = [ pkgs.yubikey-personalization ];
|
||||
|
||||
udisks2.enable = true;
|
||||
dbus.enable = true;
|
||||
};
|
||||
|
||||
programs.gnupg.agent = {
|
||||
|
@ -176,21 +231,25 @@
|
|||
};
|
||||
};
|
||||
|
||||
virtualisation.docker = {
|
||||
xdg.portal = {
|
||||
enable = true;
|
||||
storageDriver = "btrfs";
|
||||
rootless = {
|
||||
extraPortals = with pkgs; [
|
||||
xdg-desktop-portal-hyprland
|
||||
xdg-desktop-portal-gtk
|
||||
];
|
||||
};
|
||||
|
||||
services.btrfs = {
|
||||
autoScrub = {
|
||||
enable = true;
|
||||
setSocketVariable = true;
|
||||
interval = "weekly";
|
||||
};
|
||||
};
|
||||
|
||||
swapDevices = [
|
||||
{
|
||||
device = "/var/lib/swapfile";
|
||||
size = 16*1024;
|
||||
}
|
||||
];
|
||||
services.psd = {
|
||||
enable = true;
|
||||
resyncTimer = "30m";
|
||||
};
|
||||
|
||||
system.stateVersion = "23.11";
|
||||
}
|
||||
|
|
|
@ -3,6 +3,7 @@ _: {
|
|||
./configuration.nix
|
||||
./greetd.nix
|
||||
./hardware-configuration.nix
|
||||
./home-manager.nix
|
||||
#./mullvad.nix
|
||||
./pipewire.nix
|
||||
./ssh
|
||||
|
|
|
@ -1,35 +1,31 @@
|
|||
{
|
||||
config,
|
||||
inputs,
|
||||
pkgs,
|
||||
username,
|
||||
...
|
||||
}: let
|
||||
greeter = "gtkgreet";
|
||||
|
||||
swayConfig = pkgs.writeText "greetd-sway-config" ''
|
||||
# https://github.com/swaywm/sway/issues/5732#issuecomment-1583336383
|
||||
exec systemctl --user import-environment DISPLAY WAYLAND_DISPLAY SWAYSOCK XDG_CURRENT_DESKTOP
|
||||
exec hash dbus-update-activation-environment 2>/dev/null && \
|
||||
dbus-update-activation-environment --systemd DISPLAY WAYLAND_DISPLAY SWAYSOCK XDG_CURRENT_DESKTOP
|
||||
hyprlandConfig = pkgs.writeText "greetd-hyprland-config" ''
|
||||
workspace=1,default:true,gapsout:0,gapsin:0,border:false,decorate:false
|
||||
|
||||
exec "${pkgs.greetd.${greeter}}/bin/${greeter} -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'
|
||||
exec-once=systemctl --user stop waybar.service
|
||||
exec-once=[workspace 1;fullscreen;noanim] ${pkgs.greetd.${greeter}}/bin/${greeter} -l; hyprctl dispatch exit
|
||||
exec-once=hyprctl dispatch focuswindow gtkgreet
|
||||
'';
|
||||
in {
|
||||
services.greetd = {
|
||||
enable = true;
|
||||
settings.default_session = {
|
||||
command = "${pkgs.sway}/bin/sway --config ${swayConfig}";
|
||||
user = "jacek";
|
||||
command = "${inputs.hyprland.packages.${pkgs.system}.hyprland}/bin/Hyprland --config ${hyprlandConfig}";
|
||||
user = username;
|
||||
};
|
||||
};
|
||||
|
||||
environment.etc = {
|
||||
"greetd/environments".text = ''
|
||||
Hyprland
|
||||
sway
|
||||
zsh
|
||||
shutdown now
|
||||
'';
|
||||
|
|
|
@ -18,6 +18,11 @@
|
|||
fsType = "btrfs";
|
||||
};
|
||||
|
||||
fileSystems."/run/media/data" =
|
||||
{ device = "/dev/disk/by-uuid/32cf9449-1cd5-4328-974f-52d4e0a564cc";
|
||||
fsType = "btrfs";
|
||||
};
|
||||
|
||||
fileSystems."/boot" =
|
||||
{ device = "/dev/disk/by-uuid/52D3-DEAB";
|
||||
fsType = "vfat";
|
||||
|
|
213
hosts/niks/home-manager.nix
Normal file
213
hosts/niks/home-manager.nix
Normal file
|
@ -0,0 +1,213 @@
|
|||
{
|
||||
lib,
|
||||
inputs,
|
||||
pkgs,
|
||||
self,
|
||||
username,
|
||||
...
|
||||
}: let
|
||||
mkNixPak = inputs.nixpak.lib.nixpak {
|
||||
inherit (pkgs) lib;
|
||||
inherit pkgs;
|
||||
};
|
||||
in {
|
||||
home-manager = {
|
||||
useUserPackages = true;
|
||||
useGlobalPkgs = true;
|
||||
extraSpecialArgs = {inherit inputs self mkNixPak;};
|
||||
users.${username} = {
|
||||
imports = [
|
||||
inputs.hyprland.homeManagerModules.default
|
||||
inputs.anyrun.homeManagerModules.default
|
||||
inputs.neovim-flake.homeManagerModules.default
|
||||
../../modules/cli
|
||||
../../modules/gui
|
||||
../../modules/tui
|
||||
../../modules/other
|
||||
../../modules/services
|
||||
];
|
||||
|
||||
programs = {
|
||||
home-manager.enable = true;
|
||||
direnv = {
|
||||
enable = true;
|
||||
nix-direnv.enable = true;
|
||||
};
|
||||
};
|
||||
|
||||
home = {
|
||||
inherit username;
|
||||
homeDirectory = "/home/${username}";
|
||||
packages = let
|
||||
hyprcontrib = inputs.hyprcontrib.packages.${pkgs.system};
|
||||
shadower = inputs.shadower.packages.${pkgs.system};
|
||||
nix-gaming = inputs.nix-gaming.packages.${pkgs.system};
|
||||
fenix = inputs.fenix.packages.${pkgs.system};
|
||||
nixpkgs-wayland = inputs.nixpkgs-wayland.packages.${pkgs.system};
|
||||
in with pkgs; [
|
||||
git
|
||||
librewolf-wayland
|
||||
keepassxc
|
||||
eza
|
||||
ripgrep
|
||||
libnotify
|
||||
rofi-wayland
|
||||
rofi-calc
|
||||
webcord-vencord
|
||||
session-desktop
|
||||
signal-desktop-beta
|
||||
schildichat-desktop
|
||||
obs-studio
|
||||
heroic
|
||||
steam
|
||||
ungoogled-chromium
|
||||
amdgpu_top
|
||||
tor-browser-bundle-bin
|
||||
mullvad-browser
|
||||
thunderbird
|
||||
telegram-desktop
|
||||
livecaptions
|
||||
gimp
|
||||
helvum
|
||||
ddccontrol
|
||||
ddccontrol-db
|
||||
bluez
|
||||
blueman
|
||||
easyeffects
|
||||
firejail
|
||||
lbry
|
||||
libreoffice-fresh
|
||||
minetest
|
||||
airshipper
|
||||
onionshare-gui
|
||||
prismlauncher
|
||||
qbittorrent
|
||||
retroarchFull
|
||||
ventoy-full
|
||||
zathura
|
||||
zellij
|
||||
nodejs
|
||||
unzip
|
||||
cmake
|
||||
gcc
|
||||
nixpkgs-wayland.sway-unwrapped
|
||||
caprine-bin
|
||||
libsForQt5.kdenlive
|
||||
telegram-desktop
|
||||
waypipe
|
||||
trash-cli
|
||||
bibata-cursors
|
||||
nixpkgs-wayland.swww
|
||||
opentabletdriver
|
||||
networkmanagerapplet
|
||||
nixpkgs-wayland.wl-clipboard
|
||||
nixpkgs-wayland.wlsunset
|
||||
xdg-utils
|
||||
hyprpicker
|
||||
hyprcontrib.hyprprop
|
||||
hyprcontrib.grimblast
|
||||
shadower.shadower
|
||||
pamixer
|
||||
brightnessctl
|
||||
dig
|
||||
bottles
|
||||
lutris
|
||||
|
||||
nodePackages_latest.pnpm
|
||||
nodePackages_latest.prisma
|
||||
prisma-engines
|
||||
openssl
|
||||
pkg-config
|
||||
docker
|
||||
docker-compose
|
||||
postgresql
|
||||
nix-gaming.osu-stable
|
||||
nix-gaming.osu-lazer-bin
|
||||
swappy
|
||||
nixpkgs-wayland.imv
|
||||
pcmanfm
|
||||
anytype
|
||||
xdg-ninja
|
||||
auto-cpufreq
|
||||
gnupg
|
||||
pinentry-qt
|
||||
age
|
||||
rage
|
||||
fd
|
||||
udisks
|
||||
ffmpeg
|
||||
ghc
|
||||
ghcid
|
||||
cabal-install
|
||||
yt-dlp
|
||||
filelight
|
||||
(fenix.complete.withComponents [
|
||||
"cargo"
|
||||
"clippy"
|
||||
"rust-src"
|
||||
"rustc"
|
||||
"rustfmt"
|
||||
])
|
||||
wayland
|
||||
showmethekey
|
||||
polkit
|
||||
libsForQt5.polkit-kde-agent
|
||||
asciinema
|
||||
asciinema-agg
|
||||
du-dust
|
||||
mullvad-vpn
|
||||
appimage-run
|
||||
file
|
||||
virt-manager
|
||||
weechat
|
||||
flowblade
|
||||
hyfetch
|
||||
git-annex
|
||||
gamemode
|
||||
croc
|
||||
linuxKernel.packages.linux_xanmod_latest.cpupower
|
||||
uutils-coreutils
|
||||
anki
|
||||
alsa-utils
|
||||
speechd
|
||||
arcanPackages.espeak
|
||||
ezquake
|
||||
imagemagick
|
||||
weston
|
||||
pavucontrol
|
||||
psmisc
|
||||
mesa-demos
|
||||
nnn
|
||||
aseprite-unfree
|
||||
jq
|
||||
fq
|
||||
nixpkgs-wayland.eww-wayland
|
||||
gnumake
|
||||
gdb
|
||||
tea
|
||||
codeberg-cli
|
||||
progress
|
||||
parallel
|
||||
p7zip
|
||||
famistudio
|
||||
milkytracker
|
||||
furnace
|
||||
xxd
|
||||
tldr
|
||||
mpc-cli
|
||||
playerctl
|
||||
xdg-user-dirs
|
||||
meson
|
||||
wiki-tui
|
||||
lshw
|
||||
tree
|
||||
ydotool
|
||||
piper
|
||||
smartmontools
|
||||
];
|
||||
|
||||
stateVersion = lib.mkDefault "23.11";
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
|
@ -1,8 +1,9 @@
|
|||
{
|
||||
config,
|
||||
pkgs,
|
||||
...
|
||||
}: {
|
||||
hardware.pulseaudio.enable = false;
|
||||
|
||||
services.pipewire = {
|
||||
enable = true;
|
||||
alsa.enable = true;
|
||||
|
|
|
@ -1,12 +1,46 @@
|
|||
{
|
||||
config,
|
||||
pkgs,
|
||||
...
|
||||
}: {
|
||||
_: {
|
||||
imports = [ ./ssh-agent.nix ];
|
||||
|
||||
services.openssh = {
|
||||
enable = true;
|
||||
settings.PasswordAuthentication = false;
|
||||
};
|
||||
|
||||
programs.ssh.extraConfig = ''
|
||||
AddKeysToAgent yes
|
||||
|
||||
Host github
|
||||
HostName github.com
|
||||
User git
|
||||
IdentityFile ~/.ssh/githubkey
|
||||
IdentitiesOnly yes
|
||||
Host git.dupa.edu.pl
|
||||
HostName git.dupa.edu.pl
|
||||
User git
|
||||
IdentityFile ~/.ssh/gitdupaedupl
|
||||
IdentitiesOnly yes
|
||||
Host codeberg
|
||||
HostName codeberg.org
|
||||
User git
|
||||
IdentityFile ~/.ssh/codeberg
|
||||
IdentitiesOnly yes
|
||||
Host gitlab
|
||||
HostName gitlab.com
|
||||
User git
|
||||
IdentityFile ~/.ssh/gitlab
|
||||
IdentitiesOnly yes
|
||||
Host aur
|
||||
IdentityFile ~/.ssh/aur
|
||||
User aur
|
||||
Host chmura
|
||||
HostName 192.168.15.17
|
||||
User chmura
|
||||
IdentityFile ~/.ssh/chmura
|
||||
IdentitiesOnly yes
|
||||
Host malina
|
||||
HostName 192.168.15.13
|
||||
User malina
|
||||
IdentityFile ~/.ssh/malina
|
||||
IdentitiesOnly yes
|
||||
'';
|
||||
}
|
||||
|
|
|
@ -1,5 +1,4 @@
|
|||
{
|
||||
config,
|
||||
pkgs,
|
||||
...
|
||||
}: {
|
||||
|
|
|
@ -1,8 +1,4 @@
|
|||
{
|
||||
config,
|
||||
pkgs,
|
||||
...
|
||||
}: {
|
||||
_: {
|
||||
virtualisation = {
|
||||
waydroid.enable = true;
|
||||
lxd.enable = true;
|
||||
|
|
|
@ -2,7 +2,6 @@ _: {
|
|||
imports = [
|
||||
./git.nix
|
||||
./starship.nix
|
||||
./zoxide.nix
|
||||
./zsh.nix
|
||||
];
|
||||
}
|
25
modules/cli/git.nix
Normal file
25
modules/cli/git.nix
Normal file
|
@ -0,0 +1,25 @@
|
|||
{
|
||||
pkgs,
|
||||
...
|
||||
}: {
|
||||
programs.git = {
|
||||
enable = true;
|
||||
userName = "jacekpoz";
|
||||
userEmail = "jacekpoz@cock.li";
|
||||
signing = {
|
||||
key = "0EEE6B0C9A8CC06820E59C3894E812A8B12AAE3C";
|
||||
signByDefault = true;
|
||||
};
|
||||
includes = [
|
||||
{
|
||||
contents = { core.editor = "${pkgs.neovim-nightly}/bin/nvim"; };
|
||||
}
|
||||
{
|
||||
contents = { init.defaultBranch = "master"; };
|
||||
}
|
||||
{
|
||||
contents = { push.autoSetupRemote = true; };
|
||||
}
|
||||
];
|
||||
};
|
||||
}
|
18
modules/cli/starship.nix
Normal file
18
modules/cli/starship.nix
Normal file
|
@ -0,0 +1,18 @@
|
|||
_: {
|
||||
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 = "…/";
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
64
modules/cli/zsh.nix
Normal file
64
modules/cli/zsh.nix
Normal file
|
@ -0,0 +1,64 @@
|
|||
{
|
||||
config,
|
||||
pkgs,
|
||||
...
|
||||
}: {
|
||||
programs.zsh = {
|
||||
enable = true;
|
||||
shellAliases = {
|
||||
cl = "clear";
|
||||
cp = "cp -ivr";
|
||||
mv = "mv -iv";
|
||||
rm = "trash -v";
|
||||
l = "eza -a";
|
||||
e = "eza -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";
|
||||
woman = "man";
|
||||
};
|
||||
initExtra = ''
|
||||
bindkey -e
|
||||
'';
|
||||
history = {
|
||||
path = "${config.xdg.dataHome}/zsh/zsh_history";
|
||||
size = 9999999999;
|
||||
save = 9999999999;
|
||||
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=";
|
||||
};
|
||||
}
|
||||
{
|
||||
name = "zsh-nix-shell";
|
||||
file = "nix-shell.plugin.zsh";
|
||||
src = pkgs.fetchFromGitHub {
|
||||
owner = "chisui";
|
||||
repo = "zsh-nix-shell";
|
||||
rev = "v0.7.0";
|
||||
sha256 = "0za4aiwwrlawnia4f29msk822rj9bgcygw6a8a6iikiwzjjz0g91";
|
||||
};
|
||||
}
|
||||
];
|
||||
};
|
||||
}
|
|
@ -1,5 +1,4 @@
|
|||
{
|
||||
config,
|
||||
inputs,
|
||||
pkgs,
|
||||
...
|
||||
|
@ -22,55 +21,65 @@
|
|||
closeOnClick = true;
|
||||
showResultsImmediately = true;
|
||||
maxEntries = 50;
|
||||
width.fraction = 0.3;
|
||||
y.absolute = 15;
|
||||
};
|
||||
|
||||
extraCss = ''
|
||||
window {
|
||||
background: transparent;
|
||||
* {
|
||||
all: unset;
|
||||
font-family: Lexend;
|
||||
font-size: 1.3rem;
|
||||
}
|
||||
|
||||
#window,
|
||||
#match,
|
||||
#entry,
|
||||
#plugin,
|
||||
#main {
|
||||
background: transparent;
|
||||
}
|
||||
#main { background: transparent; }
|
||||
|
||||
#match.activatable {
|
||||
padding: 6px;
|
||||
border-radius: 16px;
|
||||
padding: .3rem .9rem;
|
||||
margin-top: .01rem;
|
||||
}
|
||||
#match.activatable:first-child { margin-top: .7rem; }
|
||||
#match.activatable:last-child { margin-bottom: .6rem; }
|
||||
|
||||
#plugin:hover #match.activatable {
|
||||
border-radius: 10px;
|
||||
color: white;
|
||||
margin-top: 4px;
|
||||
padding: .3rem;
|
||||
margin-top: .01rem;
|
||||
margin-bottom: 0;
|
||||
}
|
||||
|
||||
#match.activatable:selected {
|
||||
background: red;
|
||||
color: black;
|
||||
}
|
||||
|
||||
#match-title, #match-desc {
|
||||
color: inherit;
|
||||
#match:selected, #match:hover, #plugin:hover {
|
||||
background: rgba(255, 255, 255, .1);
|
||||
}
|
||||
|
||||
#entry {
|
||||
color: white;
|
||||
box-shadow: none;
|
||||
border-radius: 10px;
|
||||
border: 2px solid red;
|
||||
background: rgba(255,255,255,.05);
|
||||
border: 1px solid rgba(255,255,255,.1);
|
||||
border-radius: 16px;
|
||||
margin: .3rem;
|
||||
padding: .3rem 1rem;
|
||||
}
|
||||
|
||||
list > #plugin {
|
||||
border-radius: 16px;
|
||||
margin: 0 .3rem;
|
||||
}
|
||||
list > #plugin:first-child { margin-top: .3rem; }
|
||||
list > #plugin:last-child { margin-bottom: .3rem; }
|
||||
list > #plugin:hover { padding: .6rem; }
|
||||
|
||||
box#main {
|
||||
background: rgba(36, 39, 58, 0.7);
|
||||
border-radius: 16px;
|
||||
padding: 8px;
|
||||
box-shadow: 0px 2px 33px -5px rgba(0, 0, 0, 0.5);
|
||||
}
|
||||
|
||||
row:first-child {
|
||||
margin-top: 6px;
|
||||
background: rgba(0, 0, 0, .5);
|
||||
box-shadow: inset 0 0 0 1px rgba(255, 255, 255, .1), 0 0 0 1px rgba(0, 0, 0, .5);
|
||||
border-radius: 24px;
|
||||
padding: .3rem;
|
||||
}
|
||||
'';
|
||||
|
||||
extraConfigFiles = {
|
||||
"applications.ron".text = ''
|
||||
Config(
|
||||
|
@ -86,7 +95,7 @@
|
|||
'';
|
||||
"symbols.ron".text = ''
|
||||
Config(
|
||||
prefix: ":u",
|
||||
prefix: ":s",
|
||||
)
|
||||
'';
|
||||
"translate.ron".text = ''
|
|
@ -1,7 +1,7 @@
|
|||
_: {
|
||||
imports = [
|
||||
./anyrun.nix
|
||||
./eww
|
||||
./anyrun.nix
|
||||
./firefox.nix
|
||||
./foot.nix
|
||||
./gtk.nix
|
||||
|
@ -11,5 +11,6 @@ _: {
|
|||
./rofi.nix
|
||||
./swaylock.nix
|
||||
./waybar.nix
|
||||
./zathura.nix
|
||||
];
|
||||
}
|
43
modules/gui/eww/config/eww.scss
Normal file
43
modules/gui/eww/config/eww.scss
Normal file
|
@ -0,0 +1,43 @@
|
|||
* {
|
||||
all: unset; //Unsets everything so you can style everything from scratch
|
||||
border-radius: 10px;
|
||||
font-family: Material Design Icons;
|
||||
font-size: 16px;
|
||||
color: #cdd6f4;
|
||||
}
|
||||
|
||||
//Global Styles
|
||||
.bar {
|
||||
padding: 10px;
|
||||
background-color: rgba(#1e1e2e, 0.5);
|
||||
border-radius: 0px;
|
||||
}
|
||||
|
||||
.time {
|
||||
color: #f5c2e7;
|
||||
}
|
||||
|
||||
tooltip.background {
|
||||
background-color: #11111b;
|
||||
border-radius: 10px;
|
||||
color: #cdd6f4;
|
||||
}
|
||||
|
||||
tooltip label {
|
||||
margin: 6px;
|
||||
}
|
||||
|
||||
.workspaces button {
|
||||
font-size: 12px;
|
||||
background-color: #181825;
|
||||
border-radius: 15px;
|
||||
padding-top: 5px;
|
||||
padding-right: 5px;
|
||||
padding-bottom: 5px;
|
||||
padding-left: 5px;
|
||||
}
|
||||
|
||||
.workspaces button.active {
|
||||
background-color: #89b4fa;
|
||||
}
|
||||
|
126
modules/gui/eww/config/eww.yuck
Normal file
126
modules/gui/eww/config/eww.yuck
Normal file
|
@ -0,0 +1,126 @@
|
|||
(defwidget bar []
|
||||
(centerbox :orientation "v"
|
||||
(topstuff)
|
||||
(centerstuff)
|
||||
(bottomstuff)))
|
||||
|
||||
(defwidget topstuff []
|
||||
(box :class "topstuff" :orientation "v" :valign "start"
|
||||
(systray)
|
||||
(workspaces)))
|
||||
|
||||
(defwidget centerstuff []
|
||||
(box :class "centerstuff" :orientation "v" :valign "center"
|
||||
;(label :text windowtitle)
|
||||
))
|
||||
|
||||
(defwidget bottomstuff []
|
||||
(box :class "bottomstuff" :orientation "v" :valign "end"
|
||||
;(backlight)
|
||||
(volume :volume {3})
|
||||
(battery :capacity {EWW_BATTERY.BAT0.capacity} :status {EWW_BATTERY.BAT0.status})
|
||||
(time)
|
||||
(date)
|
||||
))
|
||||
|
||||
(defwidget systray []
|
||||
(label :text "st"))
|
||||
|
||||
(defwidget workspaces []
|
||||
(box :class "workspaces"
|
||||
:orientation "v"
|
||||
:valign "start"
|
||||
:spacing 10
|
||||
(button :onclick "hyprctl dispatch split-workspace 1" 1)
|
||||
(button :onclick "hyprctl dispatch split-workspace 2" 2)
|
||||
(button :onclick "hyprctl dispatch split-workspace 3" 3)
|
||||
(button :onclick "hyprctl dispatch split-workspace 4" 4)
|
||||
(button :onclick "hyprctl dispatch split-workspace 5" 5)
|
||||
(button :onclick "hyprctl dispatch split-workspace 6" 6)
|
||||
(button :onclick "hyprctl dispatch split-workspace 7" 7)
|
||||
(button :onclick "hyprctl dispatch split-workspace 8" 8)
|
||||
(button :onclick "hyprctl dispatch split-workspace 9" 9)
|
||||
(button :onclick "hyprctl dispatch split-workspace 10" 10)))
|
||||
|
||||
(defwidget volume [volume]
|
||||
(box :orientation "v" :class "volume" :valign "center"
|
||||
(label :text {
|
||||
volume == 0 ? "" :
|
||||
volume < 34 ? "" :
|
||||
volume < 67 ? "" :
|
||||
""
|
||||
})
|
||||
(label :text volume)))
|
||||
|
||||
(defwidget battery [capacity status]
|
||||
(box :orientation "v" :class "battery" :valign "center" :tooltip {status}
|
||||
(label :text {status == 'Charging' ?
|
||||
(capacity < 10 ? "" :
|
||||
capacity < 20 ? "" :
|
||||
capacity < 30 ? "" :
|
||||
capacity < 40 ? "" :
|
||||
capacity < 50 ? "" :
|
||||
capacity < 60 ? "" :
|
||||
capacity < 70 ? "" :
|
||||
capacity < 80 ? "" :
|
||||
capacity < 90 ? "" :
|
||||
capacity < 100 ? "" :
|
||||
"") :
|
||||
(capacity < 10 ? "" :
|
||||
capacity < 20 ? "" :
|
||||
capacity < 30 ? "" :
|
||||
capacity < 40 ? "" :
|
||||
capacity < 50 ? "" :
|
||||
capacity < 60 ? "" :
|
||||
capacity < 70 ? "" :
|
||||
capacity < 80 ? "" :
|
||||
capacity < 90 ? "" :
|
||||
capacity < 100 ? "" :
|
||||
"")
|
||||
})
|
||||
(label :text capacity)))
|
||||
|
||||
(defwidget time []
|
||||
(box :orientation "v" :class "time" :valign "center"
|
||||
(label :text "")
|
||||
(label :text hour)
|
||||
(label :text minute)
|
||||
(label :text second)))
|
||||
|
||||
(defpoll hour :interval "1s"
|
||||
"date '+%H'")
|
||||
|
||||
(defpoll minute :interval "1s"
|
||||
"date '+%M'")
|
||||
|
||||
(defpoll second :interval "1s"
|
||||
"date '+%S'")
|
||||
|
||||
(defwidget date []
|
||||
(box :orientation "v" :class "date" :valign "center"
|
||||
(label :text "")
|
||||
(label :text day)
|
||||
(label :text month)
|
||||
(label :text year)))
|
||||
|
||||
(defpoll day :interval "1s"
|
||||
"date '+%d'")
|
||||
|
||||
(defpoll month :interval "1s"
|
||||
"date '+%m'")
|
||||
|
||||
(defpoll year :interval "1s"
|
||||
"date '+%y'")
|
||||
|
||||
(defwindow bar
|
||||
:monitor 0
|
||||
:windowtype "dock"
|
||||
:geometry (geometry :x "0%"
|
||||
:y "0%"
|
||||
:height "100%"
|
||||
:width "20px"
|
||||
:anchor "center right")
|
||||
:stacking "fg"
|
||||
:namespace "eww"
|
||||
:exclusive true
|
||||
(bar))
|
|
@ -1,5 +1,4 @@
|
|||
{
|
||||
config,
|
||||
inputs,
|
||||
pkgs,
|
||||
...
|
469
modules/gui/firefox.nix
Normal file
469
modules/gui/firefox.nix
Normal file
|
@ -0,0 +1,469 @@
|
|||
{
|
||||
lib,
|
||||
pkgs,
|
||||
...
|
||||
}: let
|
||||
buildFirefoxXpiAddon = lib.makeOverridable ({
|
||||
stdenv ? pkgs.stdenv,
|
||||
fetchurl ? pkgs.fetchurl,
|
||||
pname,
|
||||
version,
|
||||
addonId,
|
||||
url,
|
||||
sha256,
|
||||
...
|
||||
}:
|
||||
stdenv.mkDerivation {
|
||||
name = "${pname}-${version}";
|
||||
src = fetchurl {inherit url sha256;};
|
||||
preferLocalBuild = true;
|
||||
allowSubstitutes = true;
|
||||
buildCommand = ''
|
||||
dst="$out/share/mozilla/extensions/{ec8030f7-c20a-464f-9b0e-13a3a9397384}"
|
||||
mkdir -p "$dst"
|
||||
install -v -m644 "$src" "$dst/${addonId}.xpi"
|
||||
'';
|
||||
});
|
||||
|
||||
extra-addons = {
|
||||
yomichan = buildFirefoxXpiAddon {
|
||||
pname = "yomichan";
|
||||
version = "20.5.22.1";
|
||||
addonId = "{a9226ee9-7998-47bd-b72e-a1b56df7f77b}";
|
||||
url = "https://addons.mozilla.org/firefox/downloads/file/3585060/yomichan-20.5.22.1.xpi";
|
||||
sha256 = "sha256-/icvPD/nCJYS31owfYMD25QzFjsxAqapy/UAehhxsy8=";
|
||||
};
|
||||
};
|
||||
|
||||
searxng-name = "SearXNG Sapti";
|
||||
|
||||
searxng = {
|
||||
urls = [{ template = "https://search.sapti.me/search?q={searchTerms}"; }];
|
||||
iconUpdateURL = "https://search.sapti.me/favicon.ico";
|
||||
updateInterval = 24 * 60 * 60 * 1000;
|
||||
definedAliases = [ "@sx" ];
|
||||
};
|
||||
|
||||
logo = builtins.fetchurl {
|
||||
url = "https://raw.githubusercontent.com/schizofox/assets/main/logo/logo.png";
|
||||
sha256 = "1wjzivdmppbzrwdxhza5dzzljl3z59vfgggxim9xjb2rzr0wqyyf";
|
||||
};
|
||||
in {
|
||||
xdg.desktopEntries = {
|
||||
firefox-schizo = {
|
||||
name = "Schizofox";
|
||||
genericName = "Web Browser";
|
||||
exec = "firefox --name firefox-schizo --profile /home/jacek/.mozilla/firefox/schizo %U";
|
||||
icon = "${logo}";
|
||||
terminal = false;
|
||||
categories = [ "Network" "WebBrowser" ];
|
||||
mimeType = [ "text/html" "text/xml" "application/xhtml+xml" "application/vnd.mozilla.xul+xml" "x-scheme-handler/http" "x-scheme-handler/https" ];
|
||||
type = "Application";
|
||||
startupNotify = true;
|
||||
settings = {
|
||||
StartupWMClass = "firefox-schizo";
|
||||
};
|
||||
};
|
||||
firefox-unschizo = {
|
||||
name = "Sanefox";
|
||||
genericName = "Web Browser";
|
||||
exec = "firefox --name firefox-sane --profile /home/jacek/.mozilla/firefox/unschizo %U";
|
||||
icon = "${logo}";
|
||||
terminal = false;
|
||||
categories = [ "Network" "WebBrowser" ];
|
||||
mimeType = [ "text/html" "text/xml" "application/xhtml+xml" "application/vnd.mozilla.xul+xml" "x-scheme-handler/http" "x-scheme-handler/https" ];
|
||||
type = "Application";
|
||||
startupNotify = true;
|
||||
settings = {
|
||||
StartupWMClass = "firefox-sane";
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
programs.firefox = {
|
||||
enable = true;
|
||||
package = pkgs.firefox-devedition;
|
||||
profiles = {
|
||||
"schizo" = {
|
||||
id = 0;
|
||||
isDefault = true;
|
||||
search = {
|
||||
default = "${searxng-name}";
|
||||
force = true;
|
||||
engines = {
|
||||
"${searxng-name}" = searxng;
|
||||
"NixOS Packages" = {
|
||||
urls = [{
|
||||
template = "https://search.nixos.org/packages";
|
||||
params = [
|
||||
{ name = "channel"; value = "unstable"; }
|
||||
{ name = "query"; value = "{searchTerms}"; }
|
||||
];
|
||||
}];
|
||||
icon = "${pkgs.nixos-icons}/share/icons/hicolor/scalable/apps/nix-snowflake.svg";
|
||||
definedAliases = [ "@np" ];
|
||||
};
|
||||
"NixOS Options" = {
|
||||
urls = [{
|
||||
template = "https://search.nixos.org/options";
|
||||
params = [
|
||||
{ name = "channel"; value = "unstable"; }
|
||||
{ name = "query"; value = "{searchTerms}"; }
|
||||
];
|
||||
}];
|
||||
icon = "${pkgs.nixos-icons}/share/icons/hicolor/scalable/apps/nix-snowflake.svg";
|
||||
definedAliases = [ "@no" ];
|
||||
};
|
||||
"NixOS Wiki" = {
|
||||
urls = [{ template = "https://nixos.wiki/index.php?search={searchTerms}"; }];
|
||||
iconUpdateURL = "https://nixos.wiki/favicon.png";
|
||||
updateInterval = 24 * 60 * 60 * 1000;
|
||||
definedAliases = [ "@nw" ];
|
||||
};
|
||||
"Home Manager Option Search" = {
|
||||
urls = [{ template = "https://mipmip.github.io/home-manager-option-search/?query={searchTerms}"; }];
|
||||
icon = "${pkgs.nixos-icons}/share/icons/hicolor/scalable/apps/nix-snowflake.svg";
|
||||
definedAliases = [ "@hm" ];
|
||||
};
|
||||
"Arch Wiki" = {
|
||||
url = [{ template = "https://wiki.archlinux.org/index.php?search={searchTerms}"; }];
|
||||
iconUpdateURL = "https://archlinux.org/favicon.ico";
|
||||
updateInterval = 24 * 60 * 60 * 1000;
|
||||
definedAliases = [ "@aw" ];
|
||||
};
|
||||
"Gentoo Wiki" = {
|
||||
url = [{ template = "https://wiki.gentoo.org/index.php?search={searchTerms}"; }];
|
||||
iconUpdateURL = "https://www.gentoo.org/favicon.ico";
|
||||
updateInterval = 24 * 60 * 60 * 1000;
|
||||
definedAliases = [ "@gw" ];
|
||||
};
|
||||
"Debian Wiki" = {
|
||||
url = [{ template = "https://wiki.debian.org/FrontPage?action=fullsearch&value={searchTerms}"; }];
|
||||
iconUpdateURL = "https://www.debian.org/favicon.ico";
|
||||
updateInterval = 24 * 60 * 60 * 1000;
|
||||
definedAliases = [ "@dw" ];
|
||||
};
|
||||
# GTFO
|
||||
"Google".metaData.hidden = true;
|
||||
"Bing".metaData.hidden = true;
|
||||
"DuckDuckGo".metaData.hidden = true;
|
||||
"Amazon.com".metaData.hidden = true;
|
||||
};
|
||||
};
|
||||
extensions = with pkgs.nur.repos.rycee.firefox-addons; [
|
||||
ublock-origin
|
||||
sponsorblock
|
||||
tridactyl
|
||||
violentmonkey
|
||||
darkreader
|
||||
keepassxc-browser
|
||||
redirector
|
||||
auto-tab-discard
|
||||
extra-addons.yomichan
|
||||
];
|
||||
settings = {
|
||||
"browser.aboutConfig.showWarning" = false;
|
||||
"browser.startup.page" = 0;
|
||||
"browser.startup.homepage" = "about:home";
|
||||
"browser.newtabpage.enabled" = true;
|
||||
"browser.newtabpage.activity-stream.showSponsored" = false;
|
||||
"browser.newtabpage.activity-stream.showSponsoredTopSites" = false;
|
||||
"browser.newtabpage.activity-stream.default.sites" = "";
|
||||
"geo.provider.network.url" = "";
|
||||
"geo.provider.network.logging.enabled" = false;
|
||||
"geo.provider.ms-windows-location" = false;
|
||||
"geo.provider.use_corelocation" = false;
|
||||
"geo.provider.use_gpsd" = false;
|
||||
"geo.provider.use_geoclue" = false;
|
||||
"intl.accept_langauges" = "en-US";
|
||||
"javascript.use_us_english_locale" = true;
|
||||
"extensions.getAddons.showPane" = false;
|
||||
"extensions.htmlaboutaddons.recommendations.enabled" = false;
|
||||
"browser.discovery.enabled" = false;
|
||||
# this shit doesn't work thanks to firefox's
|
||||
# fucking retarded ass decisions
|
||||
# but I'm gonna keep it anyway
|
||||
"extensions.unifiedExtensions.enabled" = false;
|
||||
"datareporting.policy.dataSubmissionEnabled" = false;
|
||||
"datareporting.healthreport.uploadEnabled" = false;
|
||||
"toolkit.telemetry.unified" = false;
|
||||
"toolkit.telemetry.enabled" = false;
|
||||
"toolkit.telemetry.server" = "data:,";
|
||||
"toolkit.telemetry.archive.enabled" = false;
|
||||
"toolkit.telemetry.newProfilePing.enabled" = false;
|
||||
"toolkit.telemetry.shutdownPingSender.enabled" = false;
|
||||
"toolkit.telemetry.updatePing.enabled" = false;
|
||||
"toolkit.telemetry.bhrPing.enabled" = false;
|
||||
"toolkit.telemetry.firstShutdownPing.enabled" = false;
|
||||
"toolkit.telemetry.coverage.opt-out" = true;
|
||||
"toolkit.coverage.endpoint.base" = "";
|
||||
"browser.ping-centre.telemetry" = false;
|
||||
"browser.newtabpage.activity-stream.feeds.telemetry" = false;
|
||||
"browser.newtabpage.activity-stream.telemetry" = false;
|
||||
"app.shield.optoutstudies.enabled" = false;
|
||||
"app.normandy.enabled" = false;
|
||||
"app.normandy.api_url" = "";
|
||||
"breakpad.reportURL" = "";
|
||||
"browser.tabs.crashReporting.sendReport" = false;
|
||||
"browser.crashReports.unsubmittedCheck.enabled" = false;
|
||||
"browser.crashReports.unsubmittedCheck.autoSubmit2" = false;
|
||||
"captivedetect.canonicalURL" = "";
|
||||
"network.captive-portal-service.enabled" = false;
|
||||
"network.connectivity-service.enabled" = false;
|
||||
"browser.safebrowsing.malware.enabled" = false;
|
||||
"browser.safebrowsing.phishing.enabled" = false;
|
||||
"browser.safebrowsing.downloads.enabled" = false;
|
||||
"browser.safebrowsing.downloads.remote.enabled" = false;
|
||||
"browser.safebrowsing.downloads.remote.url" = "";
|
||||
"browser.safebrowsing.downloads.remote.block_potentially_unwanted" = false;
|
||||
"browser.safebrowsing.downloads.remote.block_uncommon" = false;
|
||||
"browser.safebrowsing.allowOverride" = false;
|
||||
"network.prefetch-next" = false;
|
||||
"network.dns.disablePrefetch" = true;
|
||||
"network.dns.disablePrefetchFromHTTPS" = true;
|
||||
"network.predictor.enabled" = false;
|
||||
"network.predictor.enable-prefetch" = false;
|
||||
"network.http.speculative.parallel-limit" = 0;
|
||||
"browser.places.speculativeConnect.enabled" = false;
|
||||
"browser.send_pings" = false;
|
||||
"network.dns.disableIPv6" = true;
|
||||
"network.proxy.socks_remote_dns" = true;
|
||||
"network.file.disable_unc_paths" = true;
|
||||
"network.gio.supported-protocols" = "";
|
||||
"network.proxy.failover_direct" = false;
|
||||
"network.proxy.allow_bypass" = false;
|
||||
# "network.trr.mode" = 5; TODO read about this
|
||||
"browser.fixup.alternate.enabled" = false;
|
||||
# TODO do I want this
|
||||
"browser.search.suggest.enabled" = true;
|
||||
"browser.urlbar.suggest.searches" = true;
|
||||
"browser.urlbar.speculativeConnect.enabled" = false;
|
||||
"browser.urlbar.dnsResolveSingleWordsAfterSearch" = 0;
|
||||
"browser.urlbar.suggest.quicksuggest.nonsponsored" = false;
|
||||
"browser.urlbar.suggest.quicksuggest.sponsored" = false;
|
||||
"browser.formfill.enable" = false;
|
||||
"layout.css.visited_links_enabled" = false;
|
||||
"signon.autofillForms" = false;
|
||||
"signon.formlessCapture.enabled" = false;
|
||||
# TODO find some info about this
|
||||
"network.auth.subresource-http-auth-allow" = 0;
|
||||
"network.http.windows-sso.enabled" = false;
|
||||
# TODO read about these until...
|
||||
"browser.cache.disk.enable" = true;
|
||||
"browser.privatebrowsing.forceMediaMemoryCache" = true;
|
||||
"media.memory_cache_max_size" = 65536;
|
||||
"browser.sessionstore.privacy_level" = 2;
|
||||
# here
|
||||
"toolkit.winRegisterApplicationRestart" = false;
|
||||
# TODO favicons might be cool though
|
||||
"browser.shell.shortcutFavicons" = false;
|
||||
"security.ssl.require_safe_negotiation" = true;
|
||||
"security.tls.enable_0rtt_data" = true;
|
||||
# TODO read and think about it
|
||||
"security.OCSP.enabled" = 1;
|
||||
"security.OCSP.require" = true;
|
||||
"security.family_safety.mode" = 0;
|
||||
"security.cert_pinning.enforcement_level" = 2;
|
||||
# TODO read about the next 2
|
||||
"security.remote_settings.crlite_filters.enabled" = true;
|
||||
"security.pki.crlite_mode" = 2;
|
||||
# TODO if images break it's probably this
|
||||
"security.mixed_content.block_display_content" = true;
|
||||
"dom.security.https_only_mode" = true;
|
||||
"dom.security.https_only_mode_pbm" = true;
|
||||
"dom.security.https_only_mode.upgrade_local" = true;
|
||||
"dom.security.https_only_mode_send_http_background_request" = false;
|
||||
"security.ssl.treat_unsafe_negotiation_as_broken" = true;
|
||||
"browser.xul.error_pages.expert_bad_cert" = true;
|
||||
"network.http.referer.XOriginPolicy" = 2;
|
||||
"network.http.referer.XOriginTrimmingPolicy" = 2;
|
||||
"privacy.userContext.enabled" = true;
|
||||
"privacy.userContext.ui.enabled" = true;
|
||||
"privacy.userContext.newTabContainerOnLeftClick.enabled" = true;
|
||||
# TODO read about these 2
|
||||
"media.peerconnection.ice.proxy_only_if_behind_proxy" = true;
|
||||
"media.peerconnection.ice.default_address_only" = true;
|
||||
"media.peerconnection.ice.no_host" = true;
|
||||
# TODO remove this if some codecs or shit don't work
|
||||
"media.gmp-provider.enabled" = false;
|
||||
# I think this is for netflix and shit
|
||||
"media.gmp-widevinecdm.enabled" = false;
|
||||
# disables DRM in general
|
||||
"media.eme.enabled" = false;
|
||||
# and the ui for it just in case
|
||||
"browser.eme.ui.enabled" = false;
|
||||
"dom.disable_window_move_resize" = true;
|
||||
"accessibility.force_disabled" = 1;
|
||||
"browser.helperApps.deleteTempFileOnExit" = true;
|
||||
# TODO what the fuck is uitour
|
||||
"browser.uitour.enabled" = false;
|
||||
"browser.uitour.url" = "";
|
||||
"devtools.debugger.remote-enabled" = false;
|
||||
"middlemouse.contentLoadURL" = false;
|
||||
"permissions.default.shortcuts" = 2;
|
||||
"permissions.manager.defaultsUrl" = "";
|
||||
# TODO what is this
|
||||
"webchannel.allowObject.urlWhitelist" = "";
|
||||
"network.IDN_show_punycode" = true;
|
||||
"pdfjs.disabled" = false;
|
||||
"pdfjs.enableScripting" = false;
|
||||
"network.protocol-handler.external.ms-windows-store" = false;
|
||||
"permissions.delegation.enabled" = false;
|
||||
"browser.download.useDownloadDir" = true;
|
||||
"browser.download.alwaysOpenPanel" = false;
|
||||
"browser.download.manager.addToRecentDocs" = true;
|
||||
"browser.download.always_ask_before_handling_new_types" = true;
|
||||
# if extensions break go here
|
||||
"extensions.enabledScopes" = 5;
|
||||
"extensions.autoDisableScopes" = 15;
|
||||
# TODO rethink this
|
||||
"extensions.postDownloadThirdPartyPrompt" = true;
|
||||
"extensions.webextensions.restrictedDomains" = "";
|
||||
"browser.contentblocking.category" = "strict";
|
||||
"privacy.antitracking.enableWebcompat" = false;
|
||||
"privacy.partition.serviceWorkers" = true;
|
||||
"privacy.partition.always_partition_third_party_non_cookie_storage" = true;
|
||||
"privacy.partition.always_partition_third_party_non_cookie_storage.exempt_sessionstorage" = false;
|
||||
"privacy.sanitize.sanitizeOnShutdown" = true;
|
||||
"privacy.clearOnShutdown.cache" = true;
|
||||
"privacy.clearOnShutdown.downloads" = true;
|
||||
"privacy.clearOnShutdown.formdata" = true;
|
||||
"privacy.clearOnShutdown.history" = true;
|
||||
"privacy.clearOnShutdown.sessions" = true;
|
||||
"privacy.clearOnShutdown.siteSettings" = true;
|
||||
# if true I can't recover from crashes according to arkenfox
|
||||
"privacy.clearOnShutdown.openWindows" = false;
|
||||
"privacy.clearOnShutdown.cookies" = true;
|
||||
"privacy.clearOnShutdown.offlineApps" = true;
|
||||
"privacy.clearsitedata.cache.enabled" = true;
|
||||
"privacy.cpd.cache" = true;
|
||||
"privacy.cpd.formdata" = true;
|
||||
"privacy.cpd.history" = true;
|
||||
"privacy.cpd.sessions" = true;
|
||||
"privacy.cpd.offlineApps" = true;
|
||||
"privacy.cpd.cookies" = true;
|
||||
"privacy.cpd.downloads" = true;
|
||||
"privacy.cpd.openWindows" = false;
|
||||
"privacy.cpd.passwords" = true;
|
||||
"privacy.cpd.siteSettings" = true;
|
||||
"privacy.sanitize.timeSpan" = 0;
|
||||
"privacy.resistFingerprint" = false;
|
||||
# we won't be installing extensions through mozilla's website I don't think
|
||||
"privacy.resistFingerprinting.block_mozAddonManager" = true;
|
||||
"privacy.resistFingerprinting.letterboxing" = true;
|
||||
"layout.css.font-visibility.resistFingerprinting" = 1;
|
||||
"browser.display.use_system_colors" = false;
|
||||
"widget.non-native-theme.enabled" = true;
|
||||
"browser.link.open_newwindow" = 3;
|
||||
"browser.link.open_newwindow.restriction" = 0;
|
||||
"webgl.disabled" = false;
|
||||
"signon.rememberSignons" = false;
|
||||
"permissions.memory_only" = true;
|
||||
"security.nocertdb" = true;
|
||||
"browser.chrome.site_icons" = true;
|
||||
"browser.session.max_tabs_undo" = 0;
|
||||
"browser.sessionstore.resume_from_crash" = true;
|
||||
"browser.urlbar.autoFill" = false;
|
||||
"places.history.enabled" = false;
|
||||
"extensions.formautofill.addresses.enabled" = false;
|
||||
"extensions.formautofill.creditCards.enabled" = false;
|
||||
"extensions.formautofill.heuristics.enabled" = false;
|
||||
"dom.popup_allowed_events" = "click dblclick mousedown pointerdown";
|
||||
"javascript.options.ion" = false;
|
||||
"javascript.options.baselinejit" = false;
|
||||
"javascript.options.jit_trustedprincipals" = true;
|
||||
"javascript.options.wasm" = false;
|
||||
"extensions.blocklist.enabled" = true;
|
||||
"network.http.referer.spoofSource" = false;
|
||||
"security.dialog_enable_delay" = 1000;
|
||||
"privacy.firstparty.isolate" = false;
|
||||
"extensions.webcompat.enable_shims" = true;
|
||||
"security.tls.version.enable-deprecated" = false;
|
||||
"extensions.webcompat-reporter.enabled" = false;
|
||||
|
||||
"gfx.webrender.all" = true;
|
||||
"media.ffmpeg.vaapi.enabled" = true;
|
||||
};
|
||||
};
|
||||
"unschizo" = {
|
||||
id = 1;
|
||||
isDefault = false;
|
||||
search = {
|
||||
default = "${searxng-name}";
|
||||
force = true;
|
||||
engines = {
|
||||
"${searxng-name}" = searxng;
|
||||
# GTFO
|
||||
"Google".metaData.hidden = true;
|
||||
"Bing".metaData.hidden = true;
|
||||
"DuckDuckGo".metaData.hidden = true;
|
||||
"Amazon.com".metaData.hidden = true;
|
||||
};
|
||||
};
|
||||
extensions = with pkgs.nur.repos.rycee.firefox-addons; [
|
||||
ublock-origin
|
||||
sponsorblock
|
||||
dearrow
|
||||
tridactyl
|
||||
violentmonkey
|
||||
darkreader
|
||||
keepassxc-browser
|
||||
auto-tab-discard
|
||||
extra-addons.yomichan
|
||||
];
|
||||
settings = {
|
||||
"browser.aboutConfig.showWarning" = false;
|
||||
"browser.startup.page" = 0;
|
||||
"browser.startup.homepage" = "about:home";
|
||||
"browser.newtabpage.enabled" = true;
|
||||
"browser.newtabpage.activity-stream.showSponsored" = false;
|
||||
"browser.newtabpage.activity-stream.showSponsoredTopSites" = false;
|
||||
"browser.newtabpage.activity-stream.default.sites" = "";
|
||||
"extensions.getAddons.showPane" = false;
|
||||
"extensions.htmlaboutaddons.recommendations.enabled" = false;
|
||||
"browser.discovery.enabled" = false;
|
||||
"extensions.unifiedExtensions.enabled" = false;
|
||||
"datareporting.policy.dataSubmissionEnabled" = false;
|
||||
"datareporting.healthreport.uploadEnabled" = false;
|
||||
"toolkit.telemetry.unified" = false;
|
||||
"toolkit.telemetry.enabled" = false;
|
||||
"toolkit.telemetry.server" = "data:,";
|
||||
"toolkit.telemetry.archive.enabled" = false;
|
||||
"toolkit.telemetry.newProfilePing.enabled" = false;
|
||||
"toolkit.telemetry.shutdownPingSender.enabled" = false;
|
||||
"toolkit.telemetry.updatePing.enabled" = false;
|
||||
"toolkit.telemetry.bhrPing.enabled" = false;
|
||||
"toolkit.telemetry.firstShutdownPing.enabled" = false;
|
||||
"toolkit.telemetry.coverage.opt-out" = true;
|
||||
"toolkit.coverage.endpoint.base" = "";
|
||||
"browser.ping-centre.telemetry" = false;
|
||||
"browser.newtabpage.activity-stream.feeds.telemetry" = false;
|
||||
"browser.newtabpage.activity-stream.telemetry" = false;
|
||||
"app.shield.optoutstudies.enabled" = false;
|
||||
"app.normandy.enabled" = false;
|
||||
"app.normandy.api_url" = "";
|
||||
"breakpad.reportURL" = "";
|
||||
"browser.tabs.crashReporting.sendReport" = false;
|
||||
"browser.crashReports.unsubmittedCheck.enabled" = false;
|
||||
"browser.crashReports.unsubmittedCheck.autoSubmit2" = false;
|
||||
"captivedetect.canonicalURL" = "";
|
||||
"network.captive-portal-service.enabled" = false;
|
||||
"network.connectivity-service.enabled" = false;
|
||||
"browser.safebrowsing.malware.enabled" = false;
|
||||
"browser.safebrowsing.phishing.enabled" = false;
|
||||
"browser.safebrowsing.downloads.enabled" = false;
|
||||
"browser.safebrowsing.downloads.remote.enabled" = false;
|
||||
"browser.safebrowsing.downloads.remote.url" = "";
|
||||
"browser.safebrowsing.downloads.remote.block_potentially_unwanted" = false;
|
||||
"browser.safebrowsing.downloads.remote.block_uncommon" = false;
|
||||
"browser.safebrowsing.allowOverride" = false;
|
||||
"privacy.resistFingerprinting.block_mozAddonManager" = true;
|
||||
"signon.rememberSignons" = false;
|
||||
|
||||
"gfx.webrender.all" = true;
|
||||
"media.ffmpeg.vaapi.enabled" = true;
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
106
modules/gui/foot.nix
Normal file
106
modules/gui/foot.nix
Normal file
|
@ -0,0 +1,106 @@
|
|||
{
|
||||
inputs,
|
||||
pkgs,
|
||||
...
|
||||
}: {
|
||||
programs.foot = {
|
||||
enable = true;
|
||||
package = inputs.nixpkgs-wayland.packages.${pkgs.system}.foot;
|
||||
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";
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
39
modules/gui/gtk.nix
Normal file
39
modules/gui/gtk.nix
Normal file
|
@ -0,0 +1,39 @@
|
|||
{
|
||||
config,
|
||||
pkgs,
|
||||
...
|
||||
}: {
|
||||
gtk = {
|
||||
enable = true;
|
||||
theme = {
|
||||
name = "Catppuccin-Mocha-Standard-Green-dark";
|
||||
package = pkgs.catppuccin-gtk.override {
|
||||
size = "standard";
|
||||
accents = [ "green" ];
|
||||
variant = "mocha";
|
||||
tweaks = [ "normal" ];
|
||||
};
|
||||
};
|
||||
iconTheme = {
|
||||
name = "Papirus-Dark";
|
||||
package = pkgs.catppuccin-papirus-folders.override {
|
||||
accent = "green";
|
||||
flavor = "mocha";
|
||||
};
|
||||
};
|
||||
};
|
||||
home = {
|
||||
sessionVariables = {
|
||||
GTK_THEME = "${config.gtk.theme.name}";
|
||||
|
||||
GTK_USE_PORTAL = "1";
|
||||
};
|
||||
pointerCursor = {
|
||||
package = pkgs.bibata-cursors;
|
||||
name = "Bibata-Modern-Classic";
|
||||
size = 24;
|
||||
gtk.enable = true;
|
||||
x11.enable = true;
|
||||
};
|
||||
};
|
||||
}
|
303
modules/gui/hypr.nix
Normal file
303
modules/gui/hypr.nix
Normal file
|
@ -0,0 +1,303 @@
|
|||
{
|
||||
config,
|
||||
inputs,
|
||||
lib,
|
||||
pkgs,
|
||||
...
|
||||
}: {
|
||||
wayland.windowManager.hyprland = {
|
||||
enable = true;
|
||||
package = inputs.hyprland.packages.${pkgs.system}.hyprland;
|
||||
plugins = [
|
||||
inputs.hyprland-plugins.packages.${pkgs.system}.csgo-vulkan-fix
|
||||
inputs.split-monitor-workspaces.packages.${pkgs.system}.split-monitor-workspaces
|
||||
];
|
||||
extraConfig = ''
|
||||
#laptop
|
||||
monitor=eDP-1,2560@1440@165,0x0,1
|
||||
#second monitor
|
||||
monitor=HDMI-A-1,2560x1440@144,2560x0,1
|
||||
|
||||
workspace = 1, monitor:eDP-1, default:true
|
||||
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
|
||||
|
||||
workspace = 11, monitor:HDMI-A-1, default:true
|
||||
workspace = 12, monitor:HDMI-A-1
|
||||
workspace = 13, monitor:HDMI-A-1
|
||||
workspace = 14, monitor:HDMI-A-1
|
||||
workspace = 15, monitor:HDMI-A-1
|
||||
workspace = 16, monitor:HDMI-A-1
|
||||
workspace = 17, monitor:HDMI-A-1
|
||||
workspace = 18, monitor:HDMI-A-1
|
||||
workspace = 19, monitor:HDMI-A-1
|
||||
workspace = 20, monitor:HDMI-A-1
|
||||
|
||||
workspace = special:btop, allpseudo
|
||||
workspace = special:amdgpu_top, allpseudo
|
||||
workspace = special:helvum, allpseudo
|
||||
workspace = special:nixos, allpseudo, gapsin:0, gapsout:0
|
||||
|
||||
input {
|
||||
kb_layout=pl,ru
|
||||
kb_variant=
|
||||
kb_model=
|
||||
kb_options=grp:alt_shift_toggle
|
||||
kb_rules=
|
||||
|
||||
follow_mouse=1
|
||||
touchpad {
|
||||
disable_while_typing=false
|
||||
}
|
||||
|
||||
repeat_rate = 50
|
||||
repeat_delay = 250
|
||||
}
|
||||
|
||||
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
|
||||
|
||||
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 {
|
||||
enabled=1
|
||||
size=3
|
||||
passes=2
|
||||
}
|
||||
|
||||
drop_shadow=1
|
||||
shadow_range=15
|
||||
shadow_render_power=2
|
||||
shadow_ignore_window=1
|
||||
shadow_offset= 2 4
|
||||
shadow_scale=1
|
||||
}
|
||||
|
||||
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, title:^(.*)(Tor Browser)(.*)$
|
||||
windowrulev2 = float, class:^(mullvadbrowser)$
|
||||
windowrulev2 = float, class:^(foot)$
|
||||
windowrulev2 = float, class:^(mpv)$
|
||||
windowrulev2 = float, class:^(imv)$
|
||||
windowrulev2 = float, class:^(Vieb)$
|
||||
windowrulev2 = float, title:^(Picture-in-Picture)$
|
||||
windowrulev2 = float, title:^(.*)(Choose User Profile)(.*)$
|
||||
|
||||
windowrulev2 = float, class:^(xdg-desktop-portal-gtk)$
|
||||
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, foot
|
||||
bind = SUPER, W, exec, ${lib.removeSuffix " %U" config.xdg.desktopEntries.firefox-schizo.exec}
|
||||
bind = SUPERSHIFT, W, exec, ${lib.removeSuffix " %U" config.xdg.desktopEntries.firefox-unschizo.exec}
|
||||
bind = SUPER, Q, killactive
|
||||
bind = SUPER, F, fullscreen, 0
|
||||
bind = SUPER, M, fullscreen, 1
|
||||
bind = SUPER, D, exec, pkill anyrun || anyrun
|
||||
bind = SUPER, SPACE, togglefloating,
|
||||
bind = SUPERSHIFT, C, centerwindow
|
||||
bind = SUPER, R, bringactivetotop
|
||||
binde = SUPER, H, movefocus, l
|
||||
binde = SUPER, J, movefocus, d
|
||||
binde = SUPER, K, movefocus, u
|
||||
binde = SUPER, L, movefocus, r
|
||||
binde = SUPERCTRL, J, focusmonitor, l
|
||||
binde = SUPERCTRL, K, focusmonitor, r
|
||||
bind = SUPER, 1, split-workspace, 1
|
||||
bind = SUPER, 2, split-workspace, 2
|
||||
bind = SUPER, 3, split-workspace, 3
|
||||
bind = SUPER, 4, split-workspace, 4
|
||||
bind = SUPER, 5, split-workspace, 5
|
||||
bind = SUPER, 6, split-workspace, 6
|
||||
bind = SUPER, 7, split-workspace, 7
|
||||
bind = SUPER, 8, split-workspace, 8
|
||||
bind = SUPER, 9, split-workspace, 9
|
||||
bind = SUPER, 0, split-workspace, 10
|
||||
bind = SUPERSHIFT, 1, split-movetoworkspacesilent, 1
|
||||
bind = SUPERSHIFT, 2, split-movetoworkspacesilent, 2
|
||||
bind = SUPERSHIFT, 3, split-movetoworkspacesilent, 3
|
||||
bind = SUPERSHIFT, 4, split-movetoworkspacesilent, 4
|
||||
bind = SUPERSHIFT, 5, split-movetoworkspacesilent, 5
|
||||
bind = SUPERSHIFT, 6, split-movetoworkspacesilent, 6
|
||||
bind = SUPERSHIFT, 7, split-movetoworkspacesilent, 7
|
||||
bind = SUPERSHIFT, 8, split-movetoworkspacesilent, 8
|
||||
bind = SUPERSHIFT, 9, split-movetoworkspacesilent, 9
|
||||
bind = SUPERSHIFT, 0, split-movetoworkspacesilent, 10
|
||||
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 && notify-send "Screenshot taken"
|
||||
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 && notify-send "Screenshot taken"
|
||||
bind = SUPERCONTROL, S, exec, grimblast save area - | tee "$(xdg-user-dir PICTURES)/Screenshots/$(date +'screenshot-%Y%m%d%H%M%S.png')" | wl-copy && notify-send "Screenshot taken"
|
||||
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
|
||||
bind = SUPERCONTROL, X, exec, ${pkgs.xdg-desktop-portal-hyprland}/libexec/xdg-desktop-portal-hyprland -r
|
||||
bind = SUPERSHIFT, X, exec, hyprctl kill
|
||||
bind = SUPER, B, togglespecialworkspace, btop
|
||||
bind = SUPER, A, togglespecialworkspace, amdgpu_top
|
||||
bind = SUPER, V, togglespecialworkspace, helvum
|
||||
bind = SUPER, N, togglespecialworkspace, nixos
|
||||
bind = SUPER, C, exec, swaylock
|
||||
|
||||
|
||||
bindm = SUPER, mouse:272, movewindow
|
||||
bindm = SUPER, mouse:273, resizewindow
|
||||
|
||||
binds {
|
||||
pass_mouse_when_bound=0
|
||||
}
|
||||
|
||||
exec-once=systemctl start --user waybar.service
|
||||
exec=systemctl restart --user waybar.service
|
||||
|
||||
exec=pkill btop
|
||||
exec=pkill amdgpu_top
|
||||
exec=pkill helvum
|
||||
|
||||
exec=[workspace special:btop silent;tile] foot btop
|
||||
exec=[workspace special:amdgpu_top silent] amdgpu_top --gui -i 0
|
||||
exec=[workspace special:amdgpu_top silent] amdgpu_top --gui -i 1
|
||||
exec=[workspace special:helvum silent] helvum
|
||||
exec-once=[workspace special:nixos silent;tile] cd niksos; foot
|
||||
|
||||
exec-once=foot --server
|
||||
exec-once=hyprctl setcursor Bibata-Modern-Classic 24
|
||||
|
||||
exec-once=wl-paste --watch cliphist store
|
||||
|
||||
exec-once=swww init && sleep 0.5
|
||||
exec=swww img -o eDP-1 ~/catppuccin-wall0.png
|
||||
exec=swww img -o HDMI-A-1 ~/catppuccin-wall1.png
|
||||
|
||||
exec-once=rog-control-center
|
||||
exec-once=wlsunset -S 06:00 -s 20:00
|
||||
|
||||
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
|
||||
|
||||
#exec-once=fcitx5 -d
|
||||
|
||||
exec-once=systemctl --user import-environment WAYLAND_DISPLAY XDG_CURRENT_DESKTOP
|
||||
exec-once=dbus-update-activation-environment --systemd WAYLAND_DISPLAY XDG_CURRENT_DESKTOP=$XDG_CURRENT_DESKTOP
|
||||
|
||||
# no black border on grimblast screenshots
|
||||
layerrule = noanim, ^(selection)$
|
||||
|
||||
layerrule = blur, ^(waybar)$
|
||||
layerrule = blur, ^(eww)$
|
||||
|
||||
# temporary fix to swaylock screenshoting rofi before locking
|
||||
layerrule = noanim, ^(rofi)$
|
||||
|
||||
layerrule = blur, ^(anyrun)$
|
||||
|
||||
general {
|
||||
col.active_border=0xFFF5C2E7
|
||||
col.inactive_border=0xFF45475A
|
||||
col.group_border_active=0xFFA6E3A1
|
||||
col.group_border=0xFF45475A
|
||||
}
|
||||
|
||||
decoration {
|
||||
col.shadow=0xAF1E1E2E
|
||||
}
|
||||
|
||||
plugin {
|
||||
csgo-vulkan-fix {
|
||||
res_w = 2560
|
||||
res_h = 1440
|
||||
}
|
||||
split-monitor-workspaces {
|
||||
count = 10
|
||||
}
|
||||
}
|
||||
'';
|
||||
};
|
||||
}
|
24
modules/gui/mpv.nix
Normal file
24
modules/gui/mpv.nix
Normal file
|
@ -0,0 +1,24 @@
|
|||
{
|
||||
pkgs,
|
||||
...
|
||||
}: {
|
||||
programs.mpv = {
|
||||
enable = true;
|
||||
config = {
|
||||
vo = "gpu-next";
|
||||
hwdec = "auto";
|
||||
gpu-api = "vulkan";
|
||||
vulkan-device = "AMD Radeon RX 6800M (RADV NAVI22)";
|
||||
volume = 50;
|
||||
osc = "no";
|
||||
osd-bar = "no";
|
||||
border = "no";
|
||||
};
|
||||
scripts = with pkgs.mpvScripts; [
|
||||
mpris
|
||||
thumbfast
|
||||
sponsorblock
|
||||
uosc
|
||||
];
|
||||
};
|
||||
}
|
53
modules/gui/qt.nix
Normal file
53
modules/gui/qt.nix
Normal file
|
@ -0,0 +1,53 @@
|
|||
{
|
||||
pkgs,
|
||||
...
|
||||
}: {
|
||||
# thanks raf :3 https://github.com/NotAShelf/nyx/blob/main/homes/notashelf/themes/qt.nix
|
||||
qt = {
|
||||
enable = true;
|
||||
#platformTheme = "qtct";
|
||||
style = {
|
||||
name = "Catppuccin-Mocha-Dark";
|
||||
package = pkgs.catppuccin-kde.override {
|
||||
flavour = "mocha";
|
||||
accents = [ "green" ];
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
home = {
|
||||
packages = with pkgs; [
|
||||
qt5.qttools
|
||||
qt6Packages.qtstyleplugin-kvantum
|
||||
libsForQt5.qtstyleplugin-kvantum
|
||||
libsForQt5.qt5ct
|
||||
breeze-icons
|
||||
];
|
||||
|
||||
sessionVariables = {
|
||||
QT_STYLE_OVERRIDE = "kvantum";
|
||||
QT_AUTO_SCREEN_SCALE_FACTOR = "1";
|
||||
QT_QPA_PLATFORM = "wayland;xcb";
|
||||
QT_WAYLAND_DISABLE_WINDOWDECORATION = "1";
|
||||
DISABLE_QT_COMPAT = "0";
|
||||
};
|
||||
};
|
||||
|
||||
xdg.configFile = {
|
||||
"Kvantum/catppuccin/catppuccin.kvconfig".source = builtins.fetchurl {
|
||||
url = "https://raw.githubusercontent.com/catppuccin/Kvantum/main/src/Catppuccin-Mocha-Green/Catppuccin-Mocha-Green.kvconfig";
|
||||
sha256 = "16ry4k09nf5w1gyawwz2ny14zn6infqk40l35lqlg30lhgbdmr5f";
|
||||
};
|
||||
"Kvantum/catppuccin/catppuccin.svg".source = builtins.fetchurl {
|
||||
url = "https://raw.githubusercontent.com/catppuccin/Kvantum/main/src/Catppuccin-Mocha-Green/Catppuccin-Mocha-Green.svg";
|
||||
sha256 = "1djh625qag34rjsp7y67nzbi9nbmiwgq63ydfizsh65n3fyfakf1";
|
||||
};
|
||||
"Kvantum/kvantum.kvconfig".text = ''
|
||||
[General]
|
||||
theme=catppuccin
|
||||
|
||||
[Applications]
|
||||
catppuccin=qt5ct, org.qbittorrent.qBittorrent, hyprland-share-picker
|
||||
'';
|
||||
};
|
||||
}
|
11
modules/gui/rofi.nix
Normal file
11
modules/gui/rofi.nix
Normal file
|
@ -0,0 +1,11 @@
|
|||
{
|
||||
pkgs,
|
||||
...
|
||||
}: {
|
||||
programs.rofi = {
|
||||
enable = true;
|
||||
package = pkgs.rofi-wayland;
|
||||
cycle = true;
|
||||
terminal = "foot";
|
||||
};
|
||||
}
|
55
modules/gui/swaylock.nix
Normal file
55
modules/gui/swaylock.nix
Normal file
|
@ -0,0 +1,55 @@
|
|||
{
|
||||
inputs,
|
||||
pkgs,
|
||||
...
|
||||
}: {
|
||||
programs.swaylock = {
|
||||
enable = true;
|
||||
package = inputs.nixpkgs-wayland.packages.${pkgs.system}.swaylock-effects;
|
||||
settings = {
|
||||
daemonize = true;
|
||||
show-failed-attempts = true;
|
||||
clock = true;
|
||||
screenshots = true;
|
||||
effect-blur = "9x5";
|
||||
effect-vignette = "0.5:0.5";
|
||||
indicator = true;
|
||||
indicator-radius = 200;
|
||||
indicator-thickness = 20;
|
||||
color = "1e1e2e";
|
||||
bs-hl-color = "f5e0dc";
|
||||
caps-lock-bs-hl-color = "f5e0dc";
|
||||
caps-lock-key-hl-color = "a6e3a1";
|
||||
inside-color = "00000000";
|
||||
inside-clear-color = "00000000";
|
||||
inside-caps-lock-color = "00000000";
|
||||
inside-ver-color = "00000000";
|
||||
inside-wrong-color = "00000000";
|
||||
key-hl-color = "a6e3a1";
|
||||
layout-bg-color = "00000000";
|
||||
layout-border-color = "00000000";
|
||||
layout-text-color = "cdd6f4";
|
||||
line-color = "00000000";
|
||||
line-clear-color = "00000000";
|
||||
line-caps-lock-color = "00000000";
|
||||
line-ver-color = "00000000";
|
||||
line-wrong-color = "00000000";
|
||||
ring-color = "b4befe";
|
||||
ring-clear-color = "f5e0dc";
|
||||
ring-caps-lock-color = "fab387";
|
||||
ring-ver-color = "89b4fa";
|
||||
ring-wrong-color = "eba0ac";
|
||||
separator-color = "00000000";
|
||||
text-color = "cdd6f4";
|
||||
text-clear-color = "f5e0dc";
|
||||
text-caps-lock-color = "fab387";
|
||||
text-ver-color = "89b4fa";
|
||||
text-wrong-color = "eba0ac";
|
||||
grace = 2;
|
||||
grace-no-mouse = true;
|
||||
grace-no-touch = true;
|
||||
fade-in = 0.2;
|
||||
ignore-empty-password = true;
|
||||
};
|
||||
};
|
||||
}
|
543
modules/gui/waybar.nix
Normal file
543
modules/gui/waybar.nix
Normal file
|
@ -0,0 +1,543 @@
|
|||
{
|
||||
inputs,
|
||||
pkgs,
|
||||
...
|
||||
}: {
|
||||
programs.waybar = {
|
||||
enable = true;
|
||||
package = inputs.nixpkgs-wayland.packages.${pkgs.system}.waybar;
|
||||
systemd.enable = true;
|
||||
settings.mainBar = {
|
||||
gtk-layer-shell = true;
|
||||
layer = "top";
|
||||
modules-left = [ "custom/launcher" "custom/xwayland" "tray" "hyprland/workspaces" ];
|
||||
modules-center = [ "hyprland/window" ];
|
||||
modules-right = [ "custom/dnd" "backlight" /*"cava"*/ "mpd" "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 = true;
|
||||
sort-by-coordinates = false;
|
||||
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 {}";
|
||||
};
|
||||
mpd = {
|
||||
format = "{artist} - {album} - {title} ({elapsedTime:%M:%S}/{totalTime:%M:%S}) ";
|
||||
format-disconnected = "Disconnected ";
|
||||
format-stopped = "Stopped ";
|
||||
interval = 1;
|
||||
tooltip-format = "MPD (connected)";
|
||||
tooltip-format-disconnected = "MPD (disconnected)";
|
||||
};
|
||||
};
|
||||
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: 0px;
|
||||
padding-left: 10px;
|
||||
padding-right: 10px;
|
||||
transition: none;
|
||||
background: @mantle;
|
||||
color: @peach;
|
||||
/*border-top-left-radius: 0;
|
||||
border-bottom-left-radius: 0;*/
|
||||
}
|
||||
|
||||
#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;
|
||||
}
|
||||
|
||||
#mpd {
|
||||
margin-top: 3px;
|
||||
margin-bottom: 3px;
|
||||
margin-left: 8px;
|
||||
padding-left: 10px;
|
||||
padding-right: 10px;
|
||||
transition: none;
|
||||
background: @mantle;
|
||||
color: @green;
|
||||
}
|
||||
'';
|
||||
};
|
||||
}
|
19
modules/gui/zathura.nix
Normal file
19
modules/gui/zathura.nix
Normal file
|
@ -0,0 +1,19 @@
|
|||
{
|
||||
pkgs,
|
||||
...
|
||||
}: {
|
||||
xdg.configFile."zathura/catppuccin-mocha".source = pkgs.fetchurl {
|
||||
url = "https://raw.githubusercontent.com/catppuccin/zathura/main/src/catppuccin-mocha";
|
||||
hash = "sha256-/HXecio3My2eXTpY7JoYiN9mnXsps4PAThDPs4OCsAk=";
|
||||
};
|
||||
|
||||
programs.zathura = {
|
||||
enable = true;
|
||||
extraConfig = ''
|
||||
include catppuccin-mocha
|
||||
'';
|
||||
options = {
|
||||
selection-clipboard = "clipboard";
|
||||
};
|
||||
};
|
||||
}
|
52
modules/other/xdg.nix
Normal file
52
modules/other/xdg.nix
Normal file
|
@ -0,0 +1,52 @@
|
|||
_: let
|
||||
primary_browser = "firefox-schizo.desktop";
|
||||
secondary_browser = "firefox-unschizo.desktop";
|
||||
mail_client = "thunderbird.desktop";
|
||||
file_manager = "pcmanfm.desktop";
|
||||
media_player = "mpv.desktop";
|
||||
image_viewer = "imv.desktop";
|
||||
text_editor = "nvim.desktop";
|
||||
in {
|
||||
xdg.mimeApps = {
|
||||
enable = true;
|
||||
defaultApplications = {
|
||||
"text/html" = [ primary_browser secondary_browser ];
|
||||
"x-scheme-handler/http" = [ primary_browser secondary_browser ];
|
||||
"x-scheme-handler/https" = [ primary_browser secondary_browser ];
|
||||
"x-scheme-handler/about" = [ primary_browser secondary_browser ];
|
||||
"x-scheme-handler/unknown" = [ primary_browser secondary_browser ];
|
||||
"x-scheme-handler/mailto" = [ mail_client ];
|
||||
"message/rfc822" = [ mail_client ];
|
||||
"x-scheme-handler/mid" = [ mail_client ];
|
||||
"inode/directory" = [ file_manager ];
|
||||
"x-scheme-handler/heroic" = [ "heroic.desktop" ];
|
||||
"audio/mp3" = [ media_player ];
|
||||
"audio/ogg" = [ media_player ];
|
||||
"audio/mpeg" = [ media_player ];
|
||||
"audio/aac" = [ media_player ];
|
||||
"audio/opus" = [ media_player ];
|
||||
"audio/wav" = [ media_player ];
|
||||
"audio/webm" = [ media_player ];
|
||||
"audio/3gpp" = [ media_player ];
|
||||
"audio/3gpp2" = [ media_player ];
|
||||
"video/mp4" = [ media_player ];
|
||||
"video/x-msvideo" = [ media_player ];
|
||||
"video/mpeg" = [ media_player ];
|
||||
"video/ogg" = [ media_player ];
|
||||
"video/mp2t" = [ media_player ];
|
||||
"video/webm" = [ media_player ];
|
||||
"video/3gpp" = [ media_player ];
|
||||
"video/3gpp2" = [ media_player ];
|
||||
"image/png" = [ image_viewer ];
|
||||
"image/jpeg" = [ image_viewer ];
|
||||
"image/gif" = [ image_viewer ];
|
||||
"image/avif" = [ image_viewer ];
|
||||
"image/bmp" = [ image_viewer ];
|
||||
"image/vnd.microsoft.icon" = [ image_viewer ];
|
||||
"image/svg+xml" = [ image_viewer ];
|
||||
"image/tiff" = [ image_viewer ];
|
||||
"image/webp" = [ image_viewer ];
|
||||
"text/plain" = [ text_editor ];
|
||||
};
|
||||
};
|
||||
}
|
|
@ -1,5 +1,6 @@
|
|||
_: {
|
||||
imports = [
|
||||
./dunst.nix
|
||||
./mpd.nix
|
||||
];
|
||||
}
|
85
modules/services/dunst.nix
Normal file
85
modules/services/dunst.nix
Normal file
|
@ -0,0 +1,85 @@
|
|||
{
|
||||
inputs,
|
||||
pkgs,
|
||||
...
|
||||
}: {
|
||||
services.dunst = {
|
||||
enable = true;
|
||||
package = inputs.nixpkgs-wayland.packages.${pkgs.system}.dunst;
|
||||
settings = {
|
||||
global = {
|
||||
monitor = 1;
|
||||
follow = "none";
|
||||
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 = "#89B4FA";
|
||||
separator_color = "frame";
|
||||
highlight = "#89DCEB";
|
||||
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;
|
||||
sticky_history = "yes";
|
||||
history_length = 20;
|
||||
dmenu = "${pkgs.rofi-wayland}/bin/rofi";
|
||||
browser = "${pkgs.xdg-utils}/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 = "#1E1E2E";
|
||||
foreground = "#CDD6F4";
|
||||
timeout = 5;
|
||||
};
|
||||
urgency_normal = {
|
||||
background = "#1E1E2E";
|
||||
foreground = "#CDD6F4";
|
||||
timeout = 6;
|
||||
};
|
||||
urgency_critical = {
|
||||
background = "#1E1E2E";
|
||||
foreground = "#CDD6F4";
|
||||
frame_color = "#FAB387";
|
||||
timeout = 0;
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
26
modules/services/mpd.nix
Normal file
26
modules/services/mpd.nix
Normal file
|
@ -0,0 +1,26 @@
|
|||
_: {
|
||||
services.mpd = {
|
||||
enable = true;
|
||||
musicDirectory = "~/Music";
|
||||
extraConfig = ''
|
||||
audio_output {
|
||||
type "pipewire"
|
||||
name "PipeWire Sound Server"
|
||||
}
|
||||
'';
|
||||
};
|
||||
|
||||
services.mpd-mpris = {
|
||||
enable = true;
|
||||
mpd = {
|
||||
host = "127.0.0.1";
|
||||
network = "unix";
|
||||
port = 6600;
|
||||
useLocal = true;
|
||||
};
|
||||
};
|
||||
|
||||
services.playerctld = {
|
||||
enable = true;
|
||||
};
|
||||
}
|
17
modules/tui/btop.nix
Normal file
17
modules/tui/btop.nix
Normal file
|
@ -0,0 +1,17 @@
|
|||
_: {
|
||||
programs.btop = {
|
||||
enable = true;
|
||||
settings = {
|
||||
theme_background = false;
|
||||
vim_keys = true;
|
||||
update_ms = 100;
|
||||
cpu_single_graph = true;
|
||||
clock_format = "%X";
|
||||
use_fstab = true;
|
||||
io_mode = true;
|
||||
net_sync = true;
|
||||
net_iface = "enp4s0";
|
||||
log_level = "WARNING";
|
||||
};
|
||||
};
|
||||
}
|
|
@ -1,7 +1,7 @@
|
|||
_: {
|
||||
imports = [
|
||||
./neovim
|
||||
./btop.nix
|
||||
./helix.nix
|
||||
./neovim
|
||||
];
|
||||
}
|
87
modules/tui/helix.nix
Normal file
87
modules/tui/helix.nix
Normal file
|
@ -0,0 +1,87 @@
|
|||
{
|
||||
lib,
|
||||
inputs,
|
||||
pkgs,
|
||||
...
|
||||
}: {
|
||||
programs.helix = {
|
||||
enable = true;
|
||||
package = inputs.helix.packages.${pkgs.system}.default.overrideAttrs (self: {
|
||||
makeWrapperArgs = with pkgs;
|
||||
self.makeWrapperArgs
|
||||
or []
|
||||
++ [
|
||||
"--suffix"
|
||||
"PATH"
|
||||
":"
|
||||
(lib.makeBinPath [
|
||||
rustfmt
|
||||
rust-analyzer
|
||||
nil
|
||||
clang-tools
|
||||
nodePackages.bash-language-server
|
||||
nodePackages.vscode-css-languageserver-bin
|
||||
nodePackages.vscode-langservers-extracted
|
||||
])
|
||||
];
|
||||
});
|
||||
settings = {
|
||||
theme = "catppuccin_mocha";
|
||||
editor = {
|
||||
scrolloff = 7;
|
||||
mouse = false;
|
||||
middle-click-paste = false;
|
||||
line-number = "relative";
|
||||
auto-completion = false;
|
||||
auto-format = false;
|
||||
completion-replace = true;
|
||||
true-color = true;
|
||||
undercurl = true;
|
||||
rulers = [ 80 ];
|
||||
bufferline = "multiple";
|
||||
color-modes = true;
|
||||
lsp = {
|
||||
display-messages = true;
|
||||
display-inlay-hints = true;
|
||||
};
|
||||
cursor-shape = {
|
||||
normal = "block";
|
||||
insert = "bar";
|
||||
select = "underline";
|
||||
};
|
||||
auto-pairs = false;
|
||||
whitespace.render.newline = "all";
|
||||
indent-guides.render = true;
|
||||
};
|
||||
};
|
||||
languages = {
|
||||
language-server = {
|
||||
nil = {
|
||||
command = lib.getExe pkgs.nil;
|
||||
config.nil.formatting.command = [ "${lib.getExe pkgs.alejandra}" "-q" ];
|
||||
};
|
||||
clangd = {
|
||||
command = "${pkgs.clang-tools}/bin/clangd";
|
||||
clangd.fallbackFlags = [ "-std=c++2b" ];
|
||||
};
|
||||
vscode-css-language-server = {
|
||||
command = "${pkgs.nodePackages.vscode-css-languageserver-bin}/bin/css-languageserver";
|
||||
args = [ "--stdio" ];
|
||||
};
|
||||
};
|
||||
language = [
|
||||
{
|
||||
name = "rust";
|
||||
auto-format = false;
|
||||
}
|
||||
{
|
||||
name = "html";
|
||||
file-types = [ "html" ];
|
||||
}
|
||||
{
|
||||
name = "c";
|
||||
}
|
||||
];
|
||||
};
|
||||
};
|
||||
}
|
184
modules/tui/neovim/default.nix
Normal file
184
modules/tui/neovim/default.nix
Normal file
|
@ -0,0 +1,184 @@
|
|||
{
|
||||
pkgs,
|
||||
...
|
||||
}: {
|
||||
programs.neovim-flake = {
|
||||
enable = true;
|
||||
settings = {
|
||||
vim = {
|
||||
package = pkgs.neovim-nightly;
|
||||
viAlias = true;
|
||||
vimAlias = true;
|
||||
enableEditorconfig = true;
|
||||
preventJunkFiles = true;
|
||||
enableLuaLoader = true;
|
||||
|
||||
scrollOffset = 7;
|
||||
|
||||
maps = {
|
||||
normal = {
|
||||
"gD" = {
|
||||
action = "vim.lsp.buf.declaration";
|
||||
lua = true;
|
||||
};
|
||||
"gd" = {
|
||||
action = "vim.lsp.buf.definition";
|
||||
lua = true;
|
||||
};
|
||||
"gi" = {
|
||||
action = "vim.lsp.buf.implementation";
|
||||
lua = true;
|
||||
};
|
||||
"gr" = {
|
||||
action = "vim.lsp.buf.references";
|
||||
lua = true;
|
||||
};
|
||||
"K" = {
|
||||
action = "vim.lsp.buf.hover";
|
||||
lua = true;
|
||||
};
|
||||
"<C-k>" = {
|
||||
action = "vim.lsp.buf.signature_help";
|
||||
lua = true;
|
||||
};
|
||||
"<leader>wa" = {
|
||||
action = "vim.lsp.buf.add_workspace_folder";
|
||||
lua = true;
|
||||
};
|
||||
"<leader>wr" = {
|
||||
action = "vim.lsp.buf.remove_workspace_folder";
|
||||
lua = true;
|
||||
};
|
||||
"<leader>wl" = {
|
||||
action = ''
|
||||
function()
|
||||
print(vim.inspect(vim.lsp.buf.list_workspace_folders()))
|
||||
end
|
||||
'';
|
||||
lua = true;
|
||||
};
|
||||
"<leader>D" = {
|
||||
action = "vim.lsp.buf.type_definition";
|
||||
lua = true;
|
||||
};
|
||||
"<leader>r" = {
|
||||
action = "vim.lsp.buf.rename";
|
||||
lua = true;
|
||||
};
|
||||
"<leader>a" = {
|
||||
action = "vim.lsp.buf.code_action";
|
||||
lua = true;
|
||||
};
|
||||
"<leader>e" = {
|
||||
action = "vim.diagnostic.open_float";
|
||||
lua = true;
|
||||
};
|
||||
"<leader>q" = {
|
||||
action = "vim.diagnostic.setloclist";
|
||||
lua = true;
|
||||
};
|
||||
"[d" = {
|
||||
action = "vim.diagnostic.goto_prev";
|
||||
lua = true;
|
||||
};
|
||||
"]d" = {
|
||||
action = "vim.diagnostic.goto_next";
|
||||
lua = true;
|
||||
};
|
||||
"<C-f>" = {
|
||||
action = ''
|
||||
function()
|
||||
vim.lsp.buf.format { async = true }
|
||||
end
|
||||
'';
|
||||
lua = true;
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
treesitter = {
|
||||
enable = true;
|
||||
fold = true;
|
||||
grammars = with pkgs.vimPlugins.nvim-treesitter.builtGrammars; [
|
||||
lua
|
||||
rust
|
||||
markdown
|
||||
markdown-inline
|
||||
python
|
||||
];
|
||||
};
|
||||
|
||||
# extraPlugins = with pkgs.vimPlugins; [
|
||||
#
|
||||
# ];
|
||||
|
||||
lsp = {
|
||||
formatOnSave = false;
|
||||
};
|
||||
|
||||
languages = {
|
||||
enableLSP = true;
|
||||
enableFormat = true;
|
||||
enableTreesitter = true;
|
||||
enableExtraDiagnostics = true;
|
||||
|
||||
nix.enable = true;
|
||||
html.enable = true;
|
||||
ts.enable = true;
|
||||
rust = {
|
||||
enable = true;
|
||||
crates.enable = true;
|
||||
};
|
||||
|
||||
clang = {
|
||||
enable = true;
|
||||
lsp = {
|
||||
enable = true;
|
||||
server = "clangd";
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
autocomplete = {
|
||||
enable = true;
|
||||
};
|
||||
|
||||
telescope.enable = true;
|
||||
|
||||
git = {
|
||||
enable = true;
|
||||
gitsigns = {
|
||||
enable = true;
|
||||
codeActions = true;
|
||||
};
|
||||
};
|
||||
#filetree.chadtree = {
|
||||
# enable = true;
|
||||
#};
|
||||
|
||||
filetree.nvimTree = {
|
||||
enable = true;
|
||||
mappings = {
|
||||
toggle = "<leader>v";
|
||||
};
|
||||
disableNetrw = true;
|
||||
|
||||
openOnSetup = false;
|
||||
};
|
||||
|
||||
terminal.toggleterm = {
|
||||
enable = true;
|
||||
direction = "float";
|
||||
mappings.open = "<c-\\>";
|
||||
};
|
||||
|
||||
theme = {
|
||||
enable = true;
|
||||
name = "catppuccin";
|
||||
style = "mocha";
|
||||
transparent = true;
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
Loading…
Reference in a new issue