format stuff

This commit is contained in:
Adithya 2023-03-25 22:10:09 +05:30
parent a2345bb55d
commit 9ff2bd4e96
Signed by: adtya
GPG key ID: 48FC9915FFD326D0
42 changed files with 387 additions and 317 deletions

View file

@ -1,20 +1,21 @@
{ impermanence, pkgs, ... }:
let
user = import ../users/user.nix;
in
{ {
impermanence,
pkgs,
...
}: let
user = import ../users/user.nix;
in {
programs.fuse.userAllowOther = true; programs.fuse.userAllowOther = true;
fileSystems."/home/${user.primary.userName}" = { fileSystems."/home/${user.primary.userName}" = {
device = "tmpfs"; device = "tmpfs";
fsType = "tmpfs"; fsType = "tmpfs";
options = [ "mode=0755" "uid=1000" "gid=100" ]; options = ["mode=0755" "uid=1000" "gid=100"];
}; };
home-manager.useUserPackages = true; home-manager.useUserPackages = true;
home-manager.useGlobalPkgs = true; home-manager.useGlobalPkgs = true;
home-manager.users.${user.primary.userName} = { pkgs, ... }: { home-manager.users.${user.primary.userName} = {pkgs, ...}: {
imports = [ imports = [
impermanence.nixosModules.home-manager.impermanence impermanence.nixosModules.home-manager.impermanence
@ -36,7 +37,7 @@ in
home.packages = with pkgs; [ home.packages = with pkgs; [
_1password-gui _1password-gui
brightnessctl brightnessctl
(discord.override { withOpenASAR = true; }) discord
evince evince
gnome.eog gnome.eog
gnome.gnome-system-monitor gnome.gnome-system-monitor

View file

@ -1,8 +1,6 @@
{ pkgs, ... }: {pkgs, ...}: let
let
user = import ../users/user.nix; user = import ../users/user.nix;
in in {
{
imports = [ imports = [
./nvim.nix ./nvim.nix
]; ];
@ -10,14 +8,13 @@ in
home.packages = with pkgs; [ home.packages = with pkgs; [
git-crypt git-crypt
lazydocker lazydocker
nixpkgs-fmt
ripgrep ripgrep
]; ];
programs = { programs = {
gh = { gh = {
enable = true; enable = true;
settings.git_protocol = "ssh"; settings.git_protocol = "ssh";
extensions = [ pkgs.gh-dash ]; extensions = [pkgs.gh-dash];
}; };
git = { git = {
enable = true; enable = true;
@ -34,7 +31,7 @@ in
init.defaultBranch = "main"; init.defaultBranch = "main";
push.autoSetupRemote = true; push.autoSetupRemote = true;
}; };
ignores = [ "/.nix" "/.direnv" ]; ignores = ["/.nix" "/.direnv"];
}; };
lazygit = { lazygit = {
enable = true; enable = true;

View file

@ -1,4 +1,4 @@
{ ... }: { {...}: {
programs = { programs = {
aria2 = { aria2 = {
enable = true; enable = true;

View file

@ -1,75 +1,110 @@
{ pkgs, osConfig, ... }:
{ {
pkgs,
osConfig,
...
}: {
programs = { programs = {
firefox = { firefox = {
enable = true; enable = true;
package = package = pkgs.firefox.override {
(pkgs.firefox.override { extraPolicies = {
extraPolicies = { DontCheckDefaultBrowser = true;
DontCheckDefaultBrowser = true; DisablePocket = true;
DisablePocket = true; DisableTelemetry = true;
DisableTelemetry = true; DisplayBookmarksToolbar = "always";
DisplayBookmarksToolbar = "always"; EnableTrackingProtection = {
EnableTrackingProtection = { Value = true;
Value = true; Locked = true;
Locked = true; Cryptomining = true;
Cryptomining = true; };
FirefoxHome = {
Search = true;
TopSites = false;
SponsoredTopSites = false;
Highlights = false;
Pocket = false;
SponsoredPocket = false;
Snippets = false;
Locked = true;
};
UserMessaging = {
WhatsNew = false;
ExtensionRecommendations = false;
FeatureRecommendations = false;
UrlbarInterventions = false;
SkipOnboarding = true;
MoreFromMozilla = false;
};
NoDefaultBookmarks = true;
OfferToSaveLogins = false;
SearchSuggestEnabled = false;
OverrideFirstRunPage = "";
OverridePostUpdatePage = "";
ExtensionSettings = {
"{b743f56d-1cc1-4048-8ba6-f9c2ab7aa54d}" = {
"allowed_types" = "theme";
"installation_mode" = "force_installed";
"install_url" = "https://addons.mozilla.org/firefox/downloads/latest/dracula-dark-colorscheme/latest.xpi";
}; };
FirefoxHome = { "{d634138d-c276-4fc8-924b-40a0ea21d284}" = {
Search = true; "allowed_types" = "extension";
TopSites = false; "installation_mode" = "force_installed";
SponsoredTopSites = false; "install_url" = "https://addons.mozilla.org/firefox/downloads/latest/1password-x-password-manager/latest.xpi";
Highlights = false;
Pocket = false;
SponsoredPocket = false;
Snippets = false;
Locked = true;
}; };
UserMessaging = { "queryamoid@kaply.com" = {
WhatsNew = false; "allowed_types" = "extension";
ExtensionRecommendations = false; "installation_mode" = "force_installed";
FeatureRecommendations = false; "install_url" = "https://github.com/mkaply/queryamoid/releases/download/v0.2/query_amo_addon_id-0.2-fx.xpi";
UrlbarInterventions = false;
SkipOnboarding = true;
MoreFromMozilla = false;
};
NoDefaultBookmarks = true;
OfferToSaveLogins = false;
SearchSuggestEnabled = false;
OverrideFirstRunPage = "";
OverridePostUpdatePage = "";
ExtensionSettings = {
"{b743f56d-1cc1-4048-8ba6-f9c2ab7aa54d}" = {
"allowed_types" = "theme";
"installation_mode" = "force_installed";
"install_url" = "https://addons.mozilla.org/firefox/downloads/latest/dracula-dark-colorscheme/latest.xpi";
};
"{d634138d-c276-4fc8-924b-40a0ea21d284}" = {
"allowed_types" = "extension";
"installation_mode" = "force_installed";
"install_url" = "https://addons.mozilla.org/firefox/downloads/latest/1password-x-password-manager/latest.xpi";
};
"queryamoid@kaply.com" = {
"allowed_types" = "extension";
"installation_mode" = "force_installed";
"install_url" = "https://github.com/mkaply/queryamoid/releases/download/v0.2/query_amo_addon_id-0.2-fx.xpi";
};
};
Preferences = {
"browser.crashReports.unsubmittedCheck.autoSubmit2" = { Value = false; Status = "locked"; };
"browser.selfsupport.url" = { Value = ""; Status = "locked"; };
"browser.aboutConfig.showWarning" = { Value = false; Status = "locked"; };
"browser.aboutHomeSnippets.updateUrl" = { Value = ""; Status = "locked"; };
"browser.startup.homepage_override.mstone" = { Value = "ignore"; Status = "locked"; };
"browser.startup.homepage_override.buildID" = { Value = ""; Status = "locked"; };
"browser.tabs.firefox-view" = { Value = false; Status = "locked"; };
"dom.security.https_only_mode" = { Value = true; Status = "locked"; };
"extensions.htmlaboutaddons.recommendations.enabled" = { Value = false; Status = "locked"; };
"extensions.recommendations.themeRecommendationUrl" = { Value = ""; Status = "locked"; };
"network.IDN_show_punycode" = { Value = true; Status = "locked"; };
}; };
}; };
}); Preferences = {
"browser.crashReports.unsubmittedCheck.autoSubmit2" = {
Value = false;
Status = "locked";
};
"browser.selfsupport.url" = {
Value = "";
Status = "locked";
};
"browser.aboutConfig.showWarning" = {
Value = false;
Status = "locked";
};
"browser.aboutHomeSnippets.updateUrl" = {
Value = "";
Status = "locked";
};
"browser.startup.homepage_override.mstone" = {
Value = "ignore";
Status = "locked";
};
"browser.startup.homepage_override.buildID" = {
Value = "";
Status = "locked";
};
"browser.tabs.firefox-view" = {
Value = false;
Status = "locked";
};
"dom.security.https_only_mode" = {
Value = true;
Status = "locked";
};
"extensions.htmlaboutaddons.recommendations.enabled" = {
Value = false;
Status = "locked";
};
"extensions.recommendations.themeRecommendationUrl" = {
Value = "";
Status = "locked";
};
"network.IDN_show_punycode" = {
Value = true;
Status = "locked";
};
};
};
};
profiles.default = { profiles.default = {
id = 0; id = 0;
name = "Default"; name = "Default";

View file

@ -1,16 +1,14 @@
{ pkgs, ... }: {pkgs, ...}: let
let
dracula = pkgs.fetchFromGitHub { dracula = pkgs.fetchFromGitHub {
owner = "dracula"; owner = "dracula";
repo = "kitty"; repo = "kitty";
rev = "87717a3f00e3dff0fc10c93f5ff535ea4092de70"; rev = "87717a3f00e3dff0fc10c93f5ff535ea4092de70";
hash = "sha256-78PTH9wE6ktuxeIxrPp0ZgRI8ST+eZ3Ok2vW6BCIZkc="; hash = "sha256-78PTH9wE6ktuxeIxrPp0ZgRI8ST+eZ3Ok2vW6BCIZkc=";
}; };
in in {
{
programs.kitty = { programs.kitty = {
enable = true; enable = true;
font.package = (pkgs.nerdfonts.override { fonts = [ "FiraCode" ]; }); font.package = pkgs.nerdfonts.override {fonts = ["FiraCode"];};
font.name = "FiraCode Nerd Font"; font.name = "FiraCode Nerd Font";
extraConfig = '' extraConfig = ''
font_size 14 font_size 14

View file

@ -1,6 +1,4 @@
{ pkgs, ... }: {pkgs, ...}: {
{
xdg.desktopEntries."mpv".name = "mpv Media Player"; xdg.desktopEntries."mpv".name = "mpv Media Player";
xdg.desktopEntries."mpv".exec = "mpv --player-operation-mode=pseudo-gui -- %U"; xdg.desktopEntries."mpv".exec = "mpv --player-operation-mode=pseudo-gui -- %U";
xdg.desktopEntries."mpv".noDisplay = true; xdg.desktopEntries."mpv".noDisplay = true;
@ -16,18 +14,21 @@
]; ];
programs.mpv = { programs.mpv = {
enable = true; enable = true;
package = pkgs.mpv.override { youtubeSupport = true; }; package = pkgs.mpv.override {youtubeSupport = true;};
config = { config = {
hwdec = "auto-safe"; hwdec = "auto-safe";
gpu-context = "wayland"; gpu-context = "wayland";
}; };
defaultProfiles = [ "gpu-hq" ]; defaultProfiles = ["gpu-hq"];
scripts = with pkgs.mpvScripts; [ mpris ]; scripts = with pkgs.mpvScripts; [mpris];
}; };
services = { services = {
spotifyd = { spotifyd = {
enable = true; enable = true;
package = (pkgs.spotifyd.override { withKeyring = true; withMpris = true; }); package = pkgs.spotifyd.override {
withKeyring = true;
withMpris = true;
};
settings = { settings = {
global = { global = {
use_keyring = true; use_keyring = true;

View file

@ -1,6 +1,4 @@
{ pkgs, ... }: {pkgs, ...}: {
{
xdg.desktopEntries."nvim".name = "Neovim wrapper"; xdg.desktopEntries."nvim".name = "Neovim wrapper";
xdg.desktopEntries."nvim".exec = "nvim %F"; xdg.desktopEntries."nvim".exec = "nvim %F";
xdg.desktopEntries."nvim".noDisplay = true; xdg.desktopEntries."nvim".noDisplay = true;
@ -25,7 +23,7 @@
]; ];
plugins = with pkgs.vimPlugins; [ plugins = with pkgs.vimPlugins; [
dracula-nvim dracula-nvim
(nvim-treesitter.withPlugins (plugins: with plugins; [ bash dockerfile gitcommit gitignore git_rebase go markdown markdown_inline nix rust toml yaml ])) (nvim-treesitter.withPlugins (plugins: with plugins; [bash dockerfile gitcommit gitignore git_rebase go markdown markdown_inline nix rust toml yaml]))
nvim-treesitter-context nvim-treesitter-context
nvim-treesitter-refactor nvim-treesitter-refactor
telescope-nvim telescope-nvim

View file

@ -1,4 +1,4 @@
{ ... }: { {...}: {
home.persistence."/persist/home" = { home.persistence."/persist/home" = {
allowOther = true; allowOther = true;
directories = [ directories = [

View file

@ -1,9 +1,11 @@
{ osConfig, pkgs, ... }: {
let osConfig,
pkgs,
...
}: let
notify-send = "${pkgs.libnotify}/bin/notify-send"; notify-send = "${pkgs.libnotify}/bin/notify-send";
dmenu = "${pkgs.rofi-wayland}/bin/rofi -dmenu"; dmenu = "${pkgs.rofi-wayland}/bin/rofi -dmenu";
in in {
{
xdg.configFile = { xdg.configFile = {
"scripts/power_menu.sh" = { "scripts/power_menu.sh" = {
executable = true; executable = true;
@ -40,88 +42,82 @@ in
''; '';
}; };
"scripts/volume_up.sh" = "scripts/volume_up.sh" = let
let wpctl = "${pkgs.wireplumber}/bin/wpctl";
wpctl = "${pkgs.wireplumber}/bin/wpctl"; in {
in executable = true;
{ text = ''
executable = true; #!/bin/sh
text = ''
#!/bin/sh
set -eu set -eu
${wpctl} set-mute @DEFAULT_AUDIO_SINK@ 0 ${wpctl} set-mute @DEFAULT_AUDIO_SINK@ 0
[ $(${wpctl} get-volume @DEFAULT_AUDIO_SINK@ | awk -F': ' '{print $2}' | sed 's/\.//') -lt 100 ] && ${wpctl} set-volume @DEFAULT_AUDIO_SINK@ 5%+ [ $(${wpctl} get-volume @DEFAULT_AUDIO_SINK@ | awk -F': ' '{print $2}' | sed 's/\.//') -lt 100 ] && ${wpctl} set-volume @DEFAULT_AUDIO_SINK@ 5%+
''; '';
}; };
"scripts/tmux_sessions.sh" = "scripts/tmux_sessions.sh" = let
let kitty = "${pkgs.kitty}/bin/kitty";
kitty = "${pkgs.kitty}/bin/kitty"; tmux = "${pkgs.tmux}/bin/tmux";
tmux = "${pkgs.tmux}/bin/tmux"; in {
in executable = true;
{ text = ''
executable = true; #!/bin/sh
text = ''
#!/bin/sh
set -eu set -eu
SESSION="$(${tmux} list-sessions -F "(#{session_attached}) #S [#{pane_current_command} in #{pane_current_path}] #{pane_title}" | sort | ${dmenu} -p "Running TMUX Sessions" | awk '{print $2}')" SESSION="$(${tmux} list-sessions -F "(#{session_attached}) #S [#{pane_current_command} in #{pane_current_path}] #{pane_title}" | sort | ${dmenu} -p "Running TMUX Sessions" | awk '{print $2}')"
case "$SESSION" in case "$SESSION" in
"") "")
;;
*)
${kitty} ${tmux} -u attach-session -dEt "$SESSION"
;;
esac'';
};
"scripts/power_profile.sh" =
let
sudo = "/run/wrappers/bin/sudo";
cpupower = "${osConfig.boot.kernelPackages.cpupower}/bin/cpupower";
powerprofilesctl = "${pkgs.power-profiles-daemon}/bin/powerprofilesctl";
in
{
executable = true;
text = ''
#!/bin/sh
set -eu
POWER_PROFILE_FILE="$HOME/.cache/power_profile"
POWER_PROFILE="powersave"
if [ -f "$POWER_PROFILE_FILE" ]; then
POWER_PROFILE="$(<$POWER_PROFILE_FILE)"
fi
case "$1" in
"toggle")
if [ "$POWER_PROFILE" == "powersave" ]; then
${sudo} ${cpupower} frequency-set --governor performance > /dev/null
${powerprofilesctl} set performance
POWER_PROFILE="performance"
elif [ "$POWER_PROFILE" == "performance" ]; then
${sudo} ${cpupower} frequency-set --governor powersave > /dev/null
${powerprofilesctl} set power-saver
POWER_PROFILE="powersave"
fi
echo $POWER_PROFILE > $POWER_PROFILE_FILE
${notify-send} -u normal "Power Profile" "Switched to $POWER_PROFILE mode."
;; ;;
"icon") *)
if [ "$POWER_PROFILE" == "powersave" ]; then ${kitty} ${tmux} -u attach-session -dEt "$SESSION"
echo "󰌪"
elif [ "$POWER_PROFILE" == "performance" ]; then
echo "󰓅"
fi
;; ;;
*) esac'';
;; };
esac "scripts/power_profile.sh" = let
''; sudo = "/run/wrappers/bin/sudo";
}; cpupower = "${osConfig.boot.kernelPackages.cpupower}/bin/cpupower";
powerprofilesctl = "${pkgs.power-profiles-daemon}/bin/powerprofilesctl";
in {
executable = true;
text = ''
#!/bin/sh
set -eu
POWER_PROFILE_FILE="$HOME/.cache/power_profile"
POWER_PROFILE="powersave"
if [ -f "$POWER_PROFILE_FILE" ]; then
POWER_PROFILE="$(<$POWER_PROFILE_FILE)"
fi
case "$1" in
"toggle")
if [ "$POWER_PROFILE" == "powersave" ]; then
${sudo} ${cpupower} frequency-set --governor performance > /dev/null
${powerprofilesctl} set performance
POWER_PROFILE="performance"
elif [ "$POWER_PROFILE" == "performance" ]; then
${sudo} ${cpupower} frequency-set --governor powersave > /dev/null
${powerprofilesctl} set power-saver
POWER_PROFILE="powersave"
fi
echo $POWER_PROFILE > $POWER_PROFILE_FILE
${notify-send} -u normal "Power Profile" "Switched to $POWER_PROFILE mode."
;;
"icon")
if [ "$POWER_PROFILE" == "powersave" ]; then
echo "󰌪"
elif [ "$POWER_PROFILE" == "performance" ]; then
echo "󰓅"
fi
;;
*)
;;
esac
'';
};
}; };
} }

View file

@ -1,6 +1,9 @@
{ config, lib, pkgs, ... }:
{ {
config,
lib,
pkgs,
...
}: {
imports = [ imports = [
./gnome-keyring.nix ./gnome-keyring.nix
./gtk.nix ./gtk.nix
@ -19,10 +22,10 @@
wayland.windowManager.sway.enable = true; wayland.windowManager.sway.enable = true;
wayland.windowManager.sway.package = pkgs.sway; wayland.windowManager.sway.package = pkgs.sway;
wayland.windowManager.sway.config.modifier = "Mod4"; wayland.windowManager.sway.config.modifier = "Mod4";
wayland.windowManager.sway.config.bars = [ ]; wayland.windowManager.sway.config.bars = [];
wayland.windowManager.sway.xwayland = true; wayland.windowManager.sway.xwayland = true;
wayland.windowManager.sway.config.fonts = { wayland.windowManager.sway.config.fonts = {
names = [ "FiraCode Nerd Font" ]; names = ["FiraCode Nerd Font"];
size = 11.0; size = 11.0;
}; };
wayland.windowManager.sway.config.input = { wayland.windowManager.sway.config.input = {
@ -82,10 +85,9 @@
}; };
}; };
wayland.windowManager.sway.config.keybindings = wayland.windowManager.sway.config.keybindings = let
let modifier = config.wayland.windowManager.sway.config.modifier;
modifier = config.wayland.windowManager.sway.config.modifier; in
in
lib.mkOptionDefault { lib.mkOptionDefault {
"${modifier}+Return" = "exec ${pkgs.kitty}/bin/kitty ${pkgs.tmux}/bin/tmux new"; "${modifier}+Return" = "exec ${pkgs.kitty}/bin/kitty ${pkgs.tmux}/bin/tmux new";
"${modifier}+Shift+Return" = "exec ${pkgs.kitty}/bin/kitty"; "${modifier}+Shift+Return" = "exec ${pkgs.kitty}/bin/kitty";
@ -112,10 +114,19 @@
}; };
wayland.windowManager.sway.config.startup = [ wayland.windowManager.sway.config.startup = [
{ command = "${pkgs.polkit_gnome}/libexec/polkit-gnome-authentication-agent-1"; } {command = "${pkgs.polkit_gnome}/libexec/polkit-gnome-authentication-agent-1";}
{ command = "~/.config/scripts/chpaper.sh"; always = true; } {
{ command = "systemctl --user restart waybar.service"; always = true; } command = "~/.config/scripts/chpaper.sh";
{ command = "systemctl --user restart kanshi.service"; always = true; } always = true;
}
{
command = "systemctl --user restart waybar.service";
always = true;
}
{
command = "systemctl --user restart kanshi.service";
always = true;
}
]; ];
wayland.windowManager.sway.config.window.commands = [ wayland.windowManager.sway.config.window.commands = [
@ -216,4 +227,3 @@
wayland.windowManager.sway.config.window.titlebar = false; wayland.windowManager.sway.config.window.titlebar = false;
wayland.windowManager.sway.config.floating.titlebar = false; wayland.windowManager.sway.config.floating.titlebar = false;
} }

View file

@ -1,9 +1,11 @@
{ config, pkgs, ... }: {
let config,
pkgs,
...
}: let
dmenu = "${config.programs.rofi.package}/bin/rofi -dmenu"; dmenu = "${config.programs.rofi.package}/bin/rofi -dmenu";
firefox = "${config.programs.firefox.package}/bin/firefox"; firefox = "${config.programs.firefox.package}/bin/firefox";
in in {
{
services.dunst = { services.dunst = {
enable = true; enable = true;
iconTheme.name = config.gtk.iconTheme.name; iconTheme.name = config.gtk.iconTheme.name;

View file

@ -1,5 +1,3 @@
{ pkgs, ... }: {pkgs, ...}: {
{
services.gnome-keyring.enable = true; services.gnome-keyring.enable = true;
} }

View file

@ -1,5 +1,8 @@
{ lib, pkgs, ... }: {
let lib,
pkgs,
...
}: let
gtkTheme = { gtkTheme = {
name = "Dracula"; name = "Dracula";
package = pkgs.dracula-gtk; package = pkgs.dracula-gtk;
@ -7,15 +10,17 @@ let
iconTheme = { iconTheme = {
name = "Newaita-dark"; name = "Newaita-dark";
package = pkgs.newaita-icon-theme.override { panel = "dark"; folder = "bluegray"; }; package = pkgs.newaita-icon-theme.override {
panel = "dark";
folder = "bluegray";
};
}; };
cursorTheme = { cursorTheme = {
name = "Bibata-Modern-Classic"; name = "Bibata-Modern-Classic";
package = pkgs.bibata-cursors; package = pkgs.bibata-cursors;
}; };
in in {
{
gtk.enable = true; gtk.enable = true;
gtk.theme = gtkTheme; gtk.theme = gtkTheme;
home.sessionVariables.GTK_THEME = gtkTheme.name; home.sessionVariables.GTK_THEME = gtkTheme.name;

View file

@ -1,6 +1,4 @@
{ ... }: {...}: {
{
services.kanshi.enable = true; services.kanshi.enable = true;
services.kanshi.profiles = { services.kanshi.profiles = {
undocked = { undocked = {

View file

@ -1,6 +1,4 @@
{ pkgs, ... }: {pkgs, ...}: {
{
xdg.desktopEntries."rofi".name = "Rofi"; xdg.desktopEntries."rofi".name = "Rofi";
xdg.desktopEntries."rofi".exec = "rofi -show"; xdg.desktopEntries."rofi".exec = "rofi -show";
xdg.desktopEntries."rofi".noDisplay = true; xdg.desktopEntries."rofi".noDisplay = true;

View file

@ -1,11 +1,15 @@
{ pkgs, ... }: {pkgs, ...}: {
{
services.swayidle.enable = true; services.swayidle.enable = true;
services.swayidle.events = [ services.swayidle.events = [
{ event = "before-sleep"; command = "${pkgs.swaylock}/bin/swaylock -f -i /tmp/lockpaper.jpg"; } {
event = "before-sleep";
command = "${pkgs.swaylock}/bin/swaylock -f -i /tmp/lockpaper.jpg";
}
]; ];
services.swayidle.timeouts = [ services.swayidle.timeouts = [
{ timeout = 600; command = "${pkgs.swaylock}/bin/swaylock -f -i /tmp/lockpaper.jpg"; } {
timeout = 600;
command = "${pkgs.swaylock}/bin/swaylock -f -i /tmp/lockpaper.jpg";
}
]; ];
} }

View file

@ -1,6 +1,4 @@
{ pkgs, ... }: {pkgs, ...}: {
{
xdg.dataFile."wallpapers/catppuccin".source = "${pkgs.catppuccin-wallpapers}/share/wallpapers"; xdg.dataFile."wallpapers/catppuccin".source = "${pkgs.catppuccin-wallpapers}/share/wallpapers";
xdg.configFile."scripts/chpaper.sh" = { xdg.configFile."scripts/chpaper.sh" = {
text = '' text = ''

View file

@ -1,6 +1,8 @@
{ config, pkgs, ... }:
{ {
config,
pkgs,
...
}: {
programs.waybar.enable = true; programs.waybar.enable = true;
programs.waybar.systemd.enable = true; programs.waybar.systemd.enable = true;
programs.waybar.style = ./style.css; programs.waybar.style = ./style.css;
@ -10,9 +12,9 @@
layer = "top"; layer = "top";
position = "top"; position = "top";
height = 28; height = 28;
modules-left = [ "sway/workspaces" "sway/window" "sway/mode" ]; modules-left = ["sway/workspaces" "sway/window" "sway/mode"];
modules-center = [ ]; modules-center = [];
modules-right = [ "tray" "custom/power_profile" "idle_inhibitor" "network" "bluetooth" "pulseaudio" "backlight" "battery" "clock" ]; modules-right = ["tray" "custom/power_profile" "idle_inhibitor" "network" "bluetooth" "pulseaudio" "backlight" "battery" "clock"];
"sway/mode" = { "sway/mode" = {
"format" = "{}"; "format" = "{}";
}; };
@ -35,7 +37,7 @@
}; };
"backlight" = { "backlight" = {
"format" = "{icon}"; "format" = "{icon}";
"format-icons" = [ "" "" "" "" ]; "format-icons" = ["" "" "" ""];
}; };
"battery" = { "battery" = {
"states" = { "states" = {
@ -47,7 +49,7 @@
"format-alt" = "{icon} {capacity}% ({time})"; "format-alt" = "{icon} {capacity}% ({time})";
"format-charging" = " {capacity}%"; "format-charging" = " {capacity}%";
"format-plugged" = " {capacity}%"; "format-plugged" = " {capacity}%";
"format-icons" = [ "" "" "" "" "" "" "" "" "" "" "" ]; "format-icons" = ["" "" "" "" "" "" "" "" "" "" ""];
"tooltip" = false; "tooltip" = false;
}; };
"network" = { "network" = {
@ -73,7 +75,7 @@
"phone" = ""; "phone" = "";
"portable" = ""; "portable" = "";
"car" = ""; "car" = "";
"default" = [ "" "奔" "" ]; "default" = ["" "奔" ""];
}; };
"on-click" = "${pkgs.pavucontrol}/bin/pavucontrol"; "on-click" = "${pkgs.pavucontrol}/bin/pavucontrol";
}; };
@ -88,17 +90,15 @@
"tray" = { "tray" = {
"spacing" = 4; "spacing" = 4;
}; };
"custom/power_profile" = "custom/power_profile" = let
let script = "${config.xdg.configHome}/scripts/power_profile.sh";
script = "${config.xdg.configHome}/scripts/power_profile.sh"; in {
in exec = "${script} icon";
{ on-click = "${script} toggle";
exec = "${script} icon"; format = "{}";
on-click = "${script} toggle"; tooltip = false;
format = "{}"; interval = "10";
tooltip = false; };
interval = "10";
};
}; };
}; };
} }

View file

@ -1,12 +1,13 @@
{ config, pkgs, ... }:
{ {
config,
pkgs,
...
}: {
imports = [ imports = [
./kitty.nix ./kitty.nix
./tmux.nix ./tmux.nix
]; ];
xdg.desktopEntries."btop".name = "btop++"; xdg.desktopEntries."btop".name = "btop++";
xdg.desktopEntries."btop".exec = "btop"; xdg.desktopEntries."btop".exec = "btop";
xdg.desktopEntries."btop".noDisplay = true; xdg.desktopEntries."btop".noDisplay = true;
@ -34,7 +35,7 @@
exa = { exa = {
enable = true; enable = true;
enableAliases = true; enableAliases = true;
extraOptions = [ "--group-directories-first" "--group" ]; extraOptions = ["--group-directories-first" "--group"];
git = true; git = true;
icons = true; icons = true;
}; };

View file

@ -1,6 +1,4 @@
{ pkgs, ... }: {pkgs, ...}: {
{
programs.tmux = { programs.tmux = {
enable = true; enable = true;
shell = "${pkgs.zsh}/bin/zsh"; shell = "${pkgs.zsh}/bin/zsh";

View file

@ -1,18 +1,18 @@
{ pkgs, ... }: { {pkgs, ...}: {
home.packages = [ pkgs.virt-manager ]; home.packages = [pkgs.virt-manager];
dconf.settings = { dconf.settings = {
"org/virt-manager/virt-manager/confirm" = { "org/virt-manager/virt-manager/confirm" = {
"forcepoweroff" = false; "forcepoweroff" = false;
}; };
"org/virt-manager/virt-manager/connections" = { "org/virt-manager/virt-manager/connections" = {
"autoconnect" = [ "qemu:///system" ]; "autoconnect" = ["qemu:///system"];
"uris" = [ "qemu:///system" ]; "uris" = ["qemu:///system"];
}; };
"org/virt-manager/virt-manager/new-vm" = { "firmware" = "uefi"; }; "org/virt-manager/virt-manager/new-vm" = {"firmware" = "uefi";};
"org/virt-manager/virt-manager/stats" = { "org/virt-manager/virt-manager/stats" = {
"enable-disk-poll" = true; "enable-disk-poll" = true;
"enable-net-poll" = true; "enable-net-poll" = true;
}; };
"org/virt-manager/virt-manager/vmlist-fields" = { "network-traffic" = true; }; "org/virt-manager/virt-manager/vmlist-fields" = {"network-traffic" = true;};
}; };
} }

View file

@ -1,5 +1,10 @@
{ lib, stdenvNoCC, fetchFromGitHub, pack ? "pack_1", theme ? "cuts" }: {
lib,
stdenvNoCC,
fetchFromGitHub,
pack ? "pack_1",
theme ? "cuts",
}:
stdenvNoCC.mkDerivation { stdenvNoCC.mkDerivation {
pname = "adi1090x-plymouth"; pname = "adi1090x-plymouth";
version = "latest"; version = "latest";

View file

@ -1,5 +1,8 @@
{ lib, stdenvNoCC, fetchFromGitHub }: {
lib,
stdenvNoCC,
fetchFromGitHub,
}:
stdenvNoCC.mkDerivation { stdenvNoCC.mkDerivation {
pname = "catppuccin-wallpapers"; pname = "catppuccin-wallpapers";
version = "latest"; version = "latest";

View file

@ -1,6 +1,6 @@
self: super: { self: super: {
adi1090x-plymouth = super.callPackage ./adi1090x-plymouth { }; adi1090x-plymouth = super.callPackage ./adi1090x-plymouth {};
catppuccin-wallpapers = super.callPackage ./catppuccin-wallpapers { }; catppuccin-wallpapers = super.callPackage ./catppuccin-wallpapers {};
dracula-gtk = super.callPackage ./dracula-gtk { }; dracula-gtk = super.callPackage ./dracula-gtk {};
newaita-icon-theme = super.callPackage ./newaita-icon-theme { }; newaita-icon-theme = super.callPackage ./newaita-icon-theme {};
} }

View file

@ -1,5 +1,11 @@
{ lib, stdenvNoCC, fetchFromGitHub, gtk3, gnome-themes-extra, gtk-engine-murrine }: {
lib,
stdenvNoCC,
fetchFromGitHub,
gtk3,
gnome-themes-extra,
gtk-engine-murrine,
}:
stdenvNoCC.mkDerivation { stdenvNoCC.mkDerivation {
pname = "dracula-gtk"; pname = "dracula-gtk";
version = "4.0"; version = "4.0";
@ -11,13 +17,13 @@ stdenvNoCC.mkDerivation {
hash = "sha256-2lmpEPYxdbRnKgcJ792cuzyOBmOIWhja18q+F3Pxgjs="; hash = "sha256-2lmpEPYxdbRnKgcJ792cuzyOBmOIWhja18q+F3Pxgjs=";
}; };
nativeBuildInputs = [ gtk3 ]; nativeBuildInputs = [gtk3];
buildInputs = [ buildInputs = [
gnome-themes-extra gnome-themes-extra
]; ];
propagatedUserEnvPkgs = [ gtk-engine-murrine ]; propagatedUserEnvPkgs = [gtk-engine-murrine];
installPhase = '' installPhase = ''
runHook preInstall runHook preInstall

View file

@ -1,5 +1,14 @@
{ lib, stdenvNoCC, fetchFromGitHub, gtk3, gnome, gnome-icon-theme, hicolor-icon-theme, panel ? "dark", folder ? "default" }: {
lib,
stdenvNoCC,
fetchFromGitHub,
gtk3,
gnome,
gnome-icon-theme,
hicolor-icon-theme,
panel ? "dark",
folder ? "default",
}:
stdenvNoCC.mkDerivation { stdenvNoCC.mkDerivation {
pname = "newaita-icon-theme"; pname = "newaita-icon-theme";
version = "latest"; version = "latest";
@ -11,7 +20,7 @@ stdenvNoCC.mkDerivation {
hash = "sha256-tqtjUy8RjvOu0NaK+iE0R1g7/eqCpmhbdxuNGd/YfSI="; hash = "sha256-tqtjUy8RjvOu0NaK+iE0R1g7/eqCpmhbdxuNGd/YfSI=";
}; };
nativeBuildInputs = [ gtk3 ]; nativeBuildInputs = [gtk3];
propagatedBuildInputs = [ propagatedBuildInputs = [
gnome.adwaita-icon-theme gnome.adwaita-icon-theme

View file

@ -1,5 +1,9 @@
{ config, lib, pkgs, ... }: { {
config,
lib,
pkgs,
...
}: {
imports = [ imports = [
./filesystem.nix ./filesystem.nix
./gnome-keyring.nix ./gnome-keyring.nix
@ -37,7 +41,7 @@
LC_TIME = "en_US.UTF-8"; LC_TIME = "en_US.UTF-8";
LC_ALL = "en_US.UTF-8"; LC_ALL = "en_US.UTF-8";
}; };
supportedLocales = [ "en_US.UTF-8/UTF-8" ]; supportedLocales = ["en_US.UTF-8/UTF-8"];
}; };
networking = { networking = {
@ -79,7 +83,7 @@
tctiEnvironment.enable = true; tctiEnvironment.enable = true;
}; };
sudo = { sudo = {
package = pkgs.sudo.override { withInsults = true; }; package = pkgs.sudo.override {withInsults = true;};
extraConfig = '' extraConfig = ''
Defaults lecture="never" Defaults lecture="never"
@ -97,7 +101,7 @@
portal = { portal = {
enable = true; enable = true;
wlr.enable = true; wlr.enable = true;
extraPortals = [ pkgs.xdg-desktop-portal-gtk ]; extraPortals = [pkgs.xdg-desktop-portal-gtk];
}; };
}; };

View file

@ -1,4 +1,4 @@
{ ... }: { {...}: {
boot = { boot = {
resumeDevice = "/dev/vg0/swap"; resumeDevice = "/dev/vg0/swap";
initrd.luks.devices = { initrd.luks.devices = {
@ -11,5 +11,5 @@
}; };
}; };
swapDevices = [{ device = "/dev/vg0/swap"; }]; swapDevices = [{device = "/dev/vg0/swap";}];
} }

View file

@ -1,28 +1,28 @@
{ ... }: { {...}: {
boot.tmpOnTmpfs = true; boot.tmpOnTmpfs = true;
fileSystems = { fileSystems = {
"/" = { "/" = {
device = "tmpfs"; device = "tmpfs";
fsType = "tmpfs"; fsType = "tmpfs";
options = [ "defaults" "uid=0" "gid=0" "mode=0755" ]; options = ["defaults" "uid=0" "gid=0" "mode=0755"];
neededForBoot = true; neededForBoot = true;
}; };
"/nix" = { "/nix" = {
device = "/dev/vg0/system"; device = "/dev/vg0/system";
fsType = "btrfs"; fsType = "btrfs";
options = [ "subvol=/@nix" "compress-force=zstd" ]; options = ["subvol=/@nix" "compress-force=zstd"];
neededForBoot = true; neededForBoot = true;
}; };
"/persist" = { "/persist" = {
device = "/dev/vg0/system"; device = "/dev/vg0/system";
fsType = "btrfs"; fsType = "btrfs";
options = [ "subvol=/@persist" "compress-force=zstd" ]; options = ["subvol=/@persist" "compress-force=zstd"];
neededForBoot = true; neededForBoot = true;
}; };
"/mnt/system" = { "/mnt/system" = {
device = "/dev/vg0/system"; device = "/dev/vg0/system";
fsType = "btrfs"; fsType = "btrfs";
options = [ "subvol=/" "compress-force=zstd" ]; options = ["subvol=/" "compress-force=zstd"];
}; };
"/boot" = { "/boot" = {
device = "/dev/disk/by-partlabel/ESP"; device = "/dev/disk/by-partlabel/ESP";

View file

@ -1,5 +1,4 @@
{ ... }: {...}: {
{
programs.seahorse.enable = true; programs.seahorse.enable = true;
services.gnome.gnome-keyring.enable = true; services.gnome.gnome-keyring.enable = true;
security.pam.services.passwd.enableGnomeKeyring = true; security.pam.services.passwd.enableGnomeKeyring = true;

View file

@ -1,4 +1,3 @@
{ ... }: {...}: {
{
programs.dconf.enable = true; programs.dconf.enable = true;
} }

View file

@ -1,12 +1,16 @@
{ lib, pkgs, config, ... }: { {
lib,
imports = [ ./disk.nix ./kernel.nix ]; pkgs,
config,
...
}: {
imports = [./disk.nix ./kernel.nix];
nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux"; nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux";
hardware.opengl = { hardware.opengl = {
enable = true; enable = true;
extraPackages = [ pkgs.intel-media-driver ]; extraPackages = [pkgs.intel-media-driver];
driSupport = true; driSupport = true;
}; };
@ -19,7 +23,7 @@
hardware.sensor.hddtemp = { hardware.sensor.hddtemp = {
enable = true; enable = true;
drives = [ "/dev/disk/by-path/pci-0000:01:00.0-nvme-1" ]; drives = ["/dev/disk/by-path/pci-0000:01:00.0-nvme-1"];
}; };
boot.loader = { boot.loader = {

View file

@ -1,5 +1,8 @@
{ lib, pkgs, ... }: { {
lib,
pkgs,
...
}: {
boot = { boot = {
initrd = { initrd = {
availableKernelModules = [ availableKernelModules = [
@ -11,9 +14,9 @@
"sd_mod" "sd_mod"
"rtsx_pci_sdmmc" "rtsx_pci_sdmmc"
]; ];
kernelModules = [ "i915" ]; kernelModules = ["i915"];
}; };
kernelModules = [ "kvm-intel" ]; kernelModules = ["kvm-intel"];
kernelPackages = pkgs.linuxKernel.packages.linux_zen; kernelPackages = pkgs.linuxKernel.packages.linux_zen;
}; };

View file

@ -1,4 +1,4 @@
{ ... }: { {...}: {
nix.settings = { nix.settings = {
substituters = [ substituters = [
"https://nix-community.cachix.org/" "https://nix-community.cachix.org/"
@ -7,7 +7,7 @@
"nix-community.cachix.org-1:mB9FSh9qf2dCimDSUo8Zy7bkq5CX+/rkCWyvRCYg3Fs=" "nix-community.cachix.org-1:mB9FSh9qf2dCimDSUo8Zy7bkq5CX+/rkCWyvRCYg3Fs="
]; ];
auto-optimise-store = true; auto-optimise-store = true;
experimental-features = [ "nix-command" "flakes" ]; experimental-features = ["nix-command" "flakes"];
}; };
nixpkgs.config.allowUnfree = true; nixpkgs.config.allowUnfree = true;
} }

View file

@ -1,12 +1,11 @@
{ pkgs, ... }: { {pkgs, ...}: {
fonts = { fonts = {
enableDefaultFonts = true; enableDefaultFonts = true;
fontDir.enable = true; fontDir.enable = true;
fonts = with pkgs; [ fonts = with pkgs; [
cantarell-fonts cantarell-fonts
liberation_ttf liberation_ttf
(nerdfonts.override { fonts = [ "FiraCode" ]; }) (nerdfonts.override {fonts = ["FiraCode"];})
noto-fonts noto-fonts
noto-fonts-cjk noto-fonts-cjk
noto-fonts-emoji noto-fonts-emoji
@ -31,5 +30,5 @@
xwayland.enable = true; xwayland.enable = true;
zsh.enable = true; zsh.enable = true;
}; };
environment.pathsToLink = [ "/share/zsh" ]; environment.pathsToLink = ["/share/zsh"];
} }

View file

@ -1,5 +1,4 @@
{ ... }: {...}: {
{
environment.persistence."/persist/system" = { environment.persistence."/persist/system" = {
hideMounts = true; hideMounts = true;
directories = [ directories = [

View file

@ -1,10 +1,14 @@
{ pkgs, ... }: { {pkgs, ...}: {
boot.consoleLogLevel = 3; boot.consoleLogLevel = 3;
boot.kernelParams = [ "quiet" ]; boot.kernelParams = ["quiet"];
boot.plymouth = { boot.plymouth = {
enable = true; enable = true;
themePackages = [ (pkgs.adi1090x-plymouth.override { pack = "pack_3"; theme = "owl"; }) ]; themePackages = [
(pkgs.adi1090x-plymouth.override {
pack = "pack_3";
theme = "owl";
})
];
theme = "adi1090x"; theme = "adi1090x";
}; };
} }

View file

@ -1,5 +1,8 @@
{ lib, pkgs, ... }:
{ {
lib,
pkgs,
...
}: {
boot.bootspec.enable = true; boot.bootspec.enable = true;
boot.loader.systemd-boot.enable = lib.mkForce false; boot.loader.systemd-boot.enable = lib.mkForce false;
boot.lanzaboote = { boot.lanzaboote = {

View file

@ -1,10 +1,10 @@
{ pkgs, ... }: { {pkgs, ...}: {
services = { services = {
blueman.enable = true; blueman.enable = true;
dbus = { dbus = {
enable = true; enable = true;
apparmor = "enabled"; apparmor = "enabled";
packages = [ pkgs.gcr pkgs.gcr_4 ]; packages = [pkgs.gcr pkgs.gcr_4];
}; };
fstrim.enable = true; fstrim.enable = true;
fwupd.enable = true; fwupd.enable = true;
@ -20,7 +20,7 @@
power-profiles-daemon.enable = true; power-profiles-daemon.enable = true;
resolved.enable = true; resolved.enable = true;
thermald.enable = true; thermald.enable = true;
udev.packages = [ pkgs.yubikey-personalization ]; udev.packages = [pkgs.yubikey-personalization];
udisks2.enable = true; udisks2.enable = true;
}; };
} }

View file

@ -1,5 +1,3 @@
{ ... }: {...}: {
security.pam.services.swaylock = {};
{
security.pam.services.swaylock = { };
} }

View file

@ -1,4 +1,4 @@
{ pkgs, ... }: { {pkgs, ...}: {
virtualisation = { virtualisation = {
docker = { docker = {
enable = true; enable = true;
@ -9,7 +9,7 @@
enable = true; enable = true;
qemu.ovmf = { qemu.ovmf = {
enable = true; enable = true;
packages = [ pkgs.OVMFFull.fd ]; packages = [pkgs.OVMFFull.fd];
}; };
}; };
}; };

View file

@ -1,9 +1,6 @@
{ pkgs, ... }: {pkgs, ...}: let
let
user = import ./user.nix; user = import ./user.nix;
in in {
{
users.mutableUsers = false; users.mutableUsers = false;
users.users = { users.users = {
root.hashedPassword = user.root.hashedPassword; root.hashedPassword = user.root.hashedPassword;
@ -12,7 +9,7 @@ in
hashedPassword = user.primary.hashedPassword; hashedPassword = user.primary.hashedPassword;
description = user.primary.realName; description = user.primary.realName;
isNormalUser = true; isNormalUser = true;
extraGroups = [ "docker" "libvirtd" "networkmanager" "tss" "wheel" ]; extraGroups = ["docker" "libvirtd" "networkmanager" "tss" "wheel"];
shell = pkgs.zsh; shell = pkgs.zsh;
}; };
}; };