Compare commits
5 Commits
62a0a52935
...
0e15fa0b0d
Author | SHA1 | Date | |
---|---|---|---|
0e15fa0b0d | |||
a60debe421 | |||
89acd3e5cb | |||
57ebb73095 | |||
1133e01eff |
33
common.nix
Normal file
33
common.nix
Normal file
@ -0,0 +1,33 @@
|
||||
rec {
|
||||
default = {
|
||||
browser = "io.github.zen_browser.zen.desktop";
|
||||
calculator = "gnome-calculator";
|
||||
fileManager = "nautilus";
|
||||
imageViewer = "org.gnome.Loupe.desktop";
|
||||
lockScreen = "hyprlock";
|
||||
terminal = "kitty";
|
||||
};
|
||||
|
||||
dir = {
|
||||
home = "/home/${username}";
|
||||
pictures = "${dir.home}/Pictures";
|
||||
};
|
||||
|
||||
hostname = "nixos";
|
||||
|
||||
keymaps = {
|
||||
layout = "gb,no";
|
||||
options = "grp:alt_shift_toggle"; # Toggle using ALT + SHIFT
|
||||
};
|
||||
|
||||
username = "martin";
|
||||
|
||||
# This value determines the NixOS release from which the default
|
||||
# settings for stateful data, like file locations and database versions
|
||||
# on your system were taken. It's perfectly fine and recommended to leave
|
||||
# this value at the release version of the first install of this system.
|
||||
# Before changing this value read the documentation for this option
|
||||
# (e.g. man configuration.nix or on https://nixos.org/nixos/options.html).
|
||||
system.version = "24.11";
|
||||
terminal = default.terminal; # TODO remove
|
||||
}
|
@ -1,26 +1,26 @@
|
||||
# Edit this configuration file to define what should be installed on
|
||||
# your system. Help is available in the configuration.nix(5) man page
|
||||
# and in the NixOS manual (accessible by running ‘nixos-help’).
|
||||
|
||||
{
|
||||
pkgs,
|
||||
outputs,
|
||||
...
|
||||
}:
|
||||
|
||||
let
|
||||
common = import ./common.nix;
|
||||
in
|
||||
{
|
||||
imports = [ ./modules ];
|
||||
|
||||
nixpkgs.overlays = [ outputs.overlays.unstable-packages ];
|
||||
|
||||
# Bootloader.
|
||||
boot.loader.systemd-boot.enable = true;
|
||||
boot.loader.efi.canTouchEfiVariables = true;
|
||||
boot.loader = {
|
||||
systemd-boot.enable = true;
|
||||
efi.canTouchEfiVariables = true;
|
||||
};
|
||||
|
||||
# Define a user account. Don't forget to set a password with ‘passwd’.
|
||||
users.users.martin = {
|
||||
# Define a user account. Don't forget to set a password with 'passwd'.
|
||||
users.users.${common.username} = {
|
||||
isNormalUser = true;
|
||||
description = "martin";
|
||||
description = common.username;
|
||||
extraGroups = [
|
||||
"networkmanager"
|
||||
"wheel"
|
||||
@ -42,9 +42,6 @@
|
||||
xdg-utils
|
||||
xdg-desktop-portal
|
||||
xdg-desktop-portal-gtk
|
||||
kdePackages.qtwayland
|
||||
kdePackages.qtsvg
|
||||
kdePackages.qt6ct
|
||||
protonmail-desktop
|
||||
stremio
|
||||
fastfetch
|
||||
@ -63,31 +60,12 @@
|
||||
"flakes"
|
||||
];
|
||||
|
||||
# Some programs need SUID wrappers, can be configured further or are
|
||||
# started in user sessions.
|
||||
# programs.mtr.enable = true;
|
||||
|
||||
programs = {
|
||||
kdeconnect.enable = true;
|
||||
};
|
||||
|
||||
# List services that you want to enable:
|
||||
|
||||
# Enable the OpenSSH daemon.
|
||||
# services.openssh.enable = true;
|
||||
programs.kdeconnect.enable = true;
|
||||
|
||||
services = {
|
||||
flatpak.enable = true;
|
||||
xserver.enable = true;
|
||||
};
|
||||
|
||||
qt.enable = true;
|
||||
|
||||
# This value determines the NixOS release from which the default
|
||||
# settings for stateful data, like file locations and database versions
|
||||
# on your system were taken. It‘s perfectly fine and recommended to leave
|
||||
# this value at the release version of the first install of this system.
|
||||
# Before changing this value read the documentation for this option
|
||||
# (e.g. man configuration.nix or on https://nixos.org/nixos/options.html).
|
||||
system.stateVersion = "24.11"; # Did you read the comment?
|
||||
system.stateVersion = common.system.version;
|
||||
}
|
||||
|
22
flake.nix
22
flake.nix
@ -43,15 +43,19 @@
|
||||
./configuration.nix
|
||||
home-manager.nixosModules.home-manager
|
||||
{
|
||||
home-manager = {
|
||||
# Backups conflicting files in case of error
|
||||
backupFileExtension = "bkp";
|
||||
useGlobalPkgs = true;
|
||||
useUserPackages = true;
|
||||
# Passes inputs as an argument to home-manager
|
||||
extraSpecialArgs = { inherit inputs; };
|
||||
users.martin = import ./home-manager;
|
||||
};
|
||||
home-manager =
|
||||
let
|
||||
common = import ./common.nix;
|
||||
in
|
||||
{
|
||||
# Backups conflicting files in case of error
|
||||
backupFileExtension = "bkp";
|
||||
useGlobalPkgs = true;
|
||||
useUserPackages = true;
|
||||
# Passes inputs as an argument to home-manager
|
||||
extraSpecialArgs = { inherit inputs; };
|
||||
users.${common.username} = import ./home-manager;
|
||||
};
|
||||
}
|
||||
stylix.nixosModules.stylix
|
||||
];
|
||||
|
@ -1,5 +1,4 @@
|
||||
{ ... }:
|
||||
|
||||
# TODO more defaults
|
||||
{
|
||||
xdg.mimeApps = {
|
||||
enable = true;
|
||||
|
@ -4,8 +4,9 @@
|
||||
...
|
||||
}:
|
||||
let
|
||||
username = "martin";
|
||||
homeDir = "/home/${username}";
|
||||
common = import ../common.nix;
|
||||
username = common.username;
|
||||
dir = common.dir;
|
||||
in
|
||||
{
|
||||
imports = [
|
||||
@ -22,19 +23,21 @@ in
|
||||
# paths it should manage.
|
||||
home = {
|
||||
username = username;
|
||||
homeDirectory = homeDir;
|
||||
homeDirectory = dir.home;
|
||||
|
||||
sessionVariables = {
|
||||
XDG_PICTURES_DIR = "${homeDir}/Pictures";
|
||||
XDG_PICTURES_DIR = dir.pictures; # Define the default dir for pictures
|
||||
};
|
||||
|
||||
# You can update Home Manager without changing this value. See
|
||||
# the Home Manager release notes for a list of state version
|
||||
# changes in each release.
|
||||
stateVersion = "24.11";
|
||||
stateVersion = common.system.version;
|
||||
};
|
||||
|
||||
programs = {
|
||||
btop.enable = true;
|
||||
|
||||
git = {
|
||||
enable = true;
|
||||
userName = "Martin Berg Alstad";
|
||||
@ -47,7 +50,10 @@ in
|
||||
# Let Home Manager install and manage itself.
|
||||
home-manager.enable = true;
|
||||
|
||||
kitty.enable = true;
|
||||
kitty = {
|
||||
enable = common.terminal == "kitty";
|
||||
settings.window_padding_width = 10;
|
||||
};
|
||||
};
|
||||
|
||||
services = {
|
||||
|
@ -1,5 +1,13 @@
|
||||
{ pkgs, ... }:
|
||||
|
||||
{ pkgs, lib, ... }:
|
||||
let
|
||||
replace =
|
||||
from: to: current:
|
||||
if current == from then to else current;
|
||||
toSingleLine =
|
||||
with lib.strings;
|
||||
s: concatMapStrings (stringAsChars (replace "\n" "")) (splitString "n" s);
|
||||
theme = import ../theme.nix;
|
||||
in
|
||||
{
|
||||
programs = {
|
||||
fish = {
|
||||
@ -18,9 +26,173 @@
|
||||
];
|
||||
};
|
||||
|
||||
# TODO catppuccin colours on all parts
|
||||
starship = {
|
||||
enable = true;
|
||||
settings = (with builtins; fromTOML (readFile ./starship.toml)) // { };
|
||||
settings = {
|
||||
format = toSingleLine ''
|
||||
[](#${theme.mantleAlpha})
|
||||
$os
|
||||
$username
|
||||
[](bg:#${theme.lavenderAlpha} fg:#${theme.mantleAlpha})
|
||||
$directory
|
||||
[](fg:#${theme.lavenderAlpha} bg:#${theme.blueAlpha})
|
||||
$git_branch
|
||||
$git_status
|
||||
[](fg:#${theme.blueAlpha} bg:#86BBD8)
|
||||
$c
|
||||
$elixir
|
||||
$elm
|
||||
$golang
|
||||
$gradle
|
||||
$haskell
|
||||
$java
|
||||
$julia
|
||||
$nodejs
|
||||
$nim
|
||||
$rust
|
||||
$scala
|
||||
[](fg:#86BBD8 bg:#06969A)
|
||||
$docker_context
|
||||
[](fg:#06969A bg:#33658A)
|
||||
$time
|
||||
[ ](fg:#33658A)
|
||||
'';
|
||||
|
||||
# Disable the blank line at the start of the prompt
|
||||
# add_newline = false
|
||||
|
||||
# You can also replace your username with a neat symbol like or disable this
|
||||
# and use the os module below
|
||||
username = {
|
||||
show_always = false;
|
||||
style_user = "bg:#${theme.crustAlpha}";
|
||||
style_root = "bg:#${theme.mantleAlpha}";
|
||||
format = "[$user]($style) in ";
|
||||
disabled = false;
|
||||
};
|
||||
|
||||
os = {
|
||||
style = "bg:#${theme.mantleAlpha}";
|
||||
disabled = false;
|
||||
};
|
||||
|
||||
directory = {
|
||||
style = "bg:#${theme.lavenderAlpha} fg:#${theme.baseAlpha}";
|
||||
format = "[ $path ]($style)";
|
||||
truncation_length = 3;
|
||||
truncation_symbol = "…/";
|
||||
};
|
||||
|
||||
# Here is how you can shorten some long paths by text replacement
|
||||
# similar to mapped_locations in Oh My Posh:
|
||||
directory.substitutions = {
|
||||
"Documents" = " ";
|
||||
"Downloads" = " ";
|
||||
"Music" = " ";
|
||||
"Pictures" = " ";
|
||||
};
|
||||
# Keep in mind that the order matters. For example:
|
||||
# "Important Documents" = " "
|
||||
# will not be replaced, because "Documents" was already substituted before.
|
||||
# So either put "Important Documents" before "Documents" or use the substituted version:
|
||||
# "Important " = " "
|
||||
|
||||
c = {
|
||||
symbol = " ";
|
||||
style = "bg:#86BBD8";
|
||||
format = "[ $symbol ($version) ]($style)";
|
||||
};
|
||||
|
||||
docker_context = {
|
||||
symbol = " ";
|
||||
style = "bg:#06969A";
|
||||
format = "[ $symbol $context ]($style)";
|
||||
};
|
||||
|
||||
elixir = {
|
||||
symbol = " ";
|
||||
style = "bg:#86BBD8";
|
||||
format = "[ $symbol ($version) ]($style)";
|
||||
};
|
||||
|
||||
elm = {
|
||||
symbol = " ";
|
||||
style = "bg:#86BBD8";
|
||||
format = "[ $symbol ($version) ]($style)";
|
||||
};
|
||||
|
||||
git_branch = {
|
||||
symbol = " ";
|
||||
style = "bg:#${theme.blueAlpha} fg:#${theme.baseAlpha}";
|
||||
format = "[ $symbol $branch ]($style)";
|
||||
};
|
||||
|
||||
git_status = {
|
||||
style = "bg:#${theme.blueAlpha} fg:#${theme.baseAlpha}";
|
||||
format = "[$all_status$ahead_behind ]($style)";
|
||||
};
|
||||
|
||||
golang = {
|
||||
symbol = " ";
|
||||
style = "bg:#86BBD8";
|
||||
format = "[ $symbol ($version) ]($style)";
|
||||
};
|
||||
|
||||
gradle = {
|
||||
style = "bg:#86BBD8";
|
||||
format = "[ $symbol ($version) ]($style)";
|
||||
};
|
||||
|
||||
haskell = {
|
||||
symbol = " ";
|
||||
style = "bg:#86BBD8";
|
||||
format = "[ $symbol ($version) ]($style)";
|
||||
};
|
||||
|
||||
java = {
|
||||
symbol = " ";
|
||||
style = "bg:#86BBD8";
|
||||
format = "[ $symbol ($version) ]($style)";
|
||||
};
|
||||
|
||||
julia = {
|
||||
symbol = " ";
|
||||
style = "bg:#86BBD8";
|
||||
format = "[ $symbol ($version) ]($style)";
|
||||
};
|
||||
|
||||
nodejs = {
|
||||
symbol = "";
|
||||
style = "bg:#86BBD8";
|
||||
format = "[ $symbol ($version) ]($style)";
|
||||
};
|
||||
|
||||
nim = {
|
||||
symbol = " ";
|
||||
style = "bg:#86BBD8";
|
||||
format = "[ $symbol ($version) ]($style)";
|
||||
};
|
||||
|
||||
rust = {
|
||||
symbol = " ";
|
||||
style = "bg:#86BBD8";
|
||||
format = "[ $symbol ($version) ]($style)";
|
||||
};
|
||||
|
||||
scala = {
|
||||
symbol = " ";
|
||||
style = "bg:#86BBD8";
|
||||
format = "[ $symbol ($version) ]($style)";
|
||||
};
|
||||
|
||||
time = {
|
||||
disabled = false;
|
||||
time_format = "%R"; # Hour:Minute Format
|
||||
style = "bg:#33658A";
|
||||
format = "[ $time ]($style)";
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
||||
|
@ -1,25 +1,27 @@
|
||||
let
|
||||
common = import ../../common.nix;
|
||||
app = common.default;
|
||||
in
|
||||
{
|
||||
# TODO binds to move focused window
|
||||
wayland.windowManager.hyprland.settings = {
|
||||
"$mainMod" = "SUPER";
|
||||
"$shiftMod" = "$mainMod SHIFT";
|
||||
"$menu" = "rofi -show drun";
|
||||
|
||||
bind = [
|
||||
"$mainMod, Q, exec, $terminal"
|
||||
"$mainMod, Q, exec, ${app.terminal}"
|
||||
"$mainMod, C, killactive,"
|
||||
"$shiftMod, M, exit,"
|
||||
"$mainMod, E, exec, $fileManager"
|
||||
"$mainMod, E, exec, ${app.fileManager}"
|
||||
"$mainMod, V, togglefloating,"
|
||||
"$mainMod, R, exec, $menu"
|
||||
"$mainMod, P, pseudo," # dwindle
|
||||
"$mainMod, J, togglesplit," # dwindle
|
||||
"$mainMod, B, exec, $browser"
|
||||
"$mainMod, L, exec, hyprlock"
|
||||
"$mainMod, K, exec, [float] gnome-calculator"
|
||||
|
||||
# Screenshots
|
||||
"$mainMod, PRINT, exec, hyprshot -m window" # Window
|
||||
", PRINT, exec, hyprshot -m output" # Monitor
|
||||
"$shiftMod, PRINT, exec, hyprshot -m region" # Region
|
||||
"$mainMod, B, exec, ${app.browser}"
|
||||
"$mainMod, L, exec, ${app.lockScreen}"
|
||||
"$mainMod, K, exec, [float] ${app.calculator}"
|
||||
"$mainMod, ESC, exec, wlogout"
|
||||
|
||||
# Move focus with mainMod + arrow keys
|
||||
"$mainMod, left, movefocus, l"
|
||||
|
@ -6,14 +6,10 @@
|
||||
./waybar
|
||||
./hypridle
|
||||
./hyprlock
|
||||
./hyprshot.nix
|
||||
./settings.nix
|
||||
./swaync
|
||||
];
|
||||
|
||||
programs = {
|
||||
btop.enable = true;
|
||||
kitty.settings.window_padding_width = 10;
|
||||
};
|
||||
|
||||
wayland.windowManager.hyprland.enable = true;
|
||||
}
|
||||
|
@ -1,5 +1,9 @@
|
||||
{ pkgs, ... }:
|
||||
|
||||
let
|
||||
cursorSize = 24;
|
||||
cursorTheme = "rose-pine-hyprcursor";
|
||||
cursorDir = "hyprcursors";
|
||||
in
|
||||
{
|
||||
home = {
|
||||
packages = with pkgs; [
|
||||
@ -7,12 +11,23 @@
|
||||
];
|
||||
|
||||
file = {
|
||||
".local/share/icons/rose-pine-hyprcursor/manifest.hl".source = ./manifest.hl;
|
||||
".local/share/icons/rose-pine-hyprcursor/hyprcursors" = {
|
||||
source = ./hyprcursors;
|
||||
".local/share/icons/${cursorTheme}/manifest.hl".text = ''
|
||||
name = ${cursorTheme}
|
||||
description = BreezeX remixed with Rose Pine remixed to Hyprcursor format
|
||||
version = 0.3.2
|
||||
cursors_directory = ${cursorDir}
|
||||
'';
|
||||
".local/share/icons/${cursorTheme}/${cursorDir}" = {
|
||||
source = ./${cursorDir};
|
||||
recursive = true;
|
||||
};
|
||||
};
|
||||
|
||||
sessionVariables = {
|
||||
XCURSOR_SIZE = cursorSize;
|
||||
HYPRCURSOR_SIZE = cursorSize;
|
||||
HYPRCURSOR_THEME = cursorSize;
|
||||
};
|
||||
};
|
||||
|
||||
wayland.windowManager.hyprland.settings.exec-once = [
|
||||
|
@ -1,4 +0,0 @@
|
||||
name = rose-pine-hyprcursor
|
||||
description = BreezeX remixed with Rose Pine remixed to Hyprcursor format
|
||||
version = 0.3.2
|
||||
cursors_directory = hyprcursors
|
@ -1,4 +1,3 @@
|
||||
{ ... }:
|
||||
let
|
||||
# Time in seconds
|
||||
lockAfter = 1200;
|
||||
|
@ -1,20 +1,12 @@
|
||||
{ lib, ... }:
|
||||
|
||||
let
|
||||
theme = import ../../../theme.nix;
|
||||
in
|
||||
{
|
||||
programs.hyprlock = {
|
||||
enable = true;
|
||||
settings = {
|
||||
"$base" = "rgb(1e1e2e)";
|
||||
"$text" = "rgb(cdd6f4)";
|
||||
"$textAlpha" = "cdd6f4";
|
||||
"$mauve" = "rgb(cba6f7)";
|
||||
"$mauveAlpha" = "cba6f7";
|
||||
"$red" = "rgb(f38ba8)";
|
||||
"$yellow" = "rgb(f9e2af)";
|
||||
"$accent" = "$mauve";
|
||||
"$accentAlpha" = "$mauveAlpha";
|
||||
"$surface0" = "rgb(313244)";
|
||||
"$font" = "JetBrainsMono Nerd Font";
|
||||
"$font" = "${theme.nerdFont} Nerd Font";
|
||||
|
||||
# GENERAL
|
||||
general = {
|
||||
@ -26,29 +18,27 @@
|
||||
label = [
|
||||
{
|
||||
text = "$LAYOUT";
|
||||
color = "$text";
|
||||
color = "${theme.textRgb}";
|
||||
font_size = 25;
|
||||
font_family = "$font";
|
||||
position = "30, -30";
|
||||
halign = "left";
|
||||
valign = "top";
|
||||
}
|
||||
|
||||
# TIME
|
||||
{
|
||||
text = "$TIME";
|
||||
color = "$text";
|
||||
color = "${theme.textRgb}";
|
||||
font_size = 90;
|
||||
font_family = "$font";
|
||||
position = "-30, 0";
|
||||
halign = "right";
|
||||
valign = "top";
|
||||
}
|
||||
|
||||
# DATE
|
||||
{
|
||||
text = "cmd[update:43200000] date +\"%A, %d %B %Y\"";
|
||||
color = "$text";
|
||||
color = "${theme.textRgb}";
|
||||
font_size = 25;
|
||||
font_family = "$font";
|
||||
position = "-30, -150";
|
||||
@ -56,7 +46,6 @@
|
||||
valign = "top";
|
||||
}
|
||||
];
|
||||
|
||||
# INPUT FIELD
|
||||
input-field = {
|
||||
size = "300, 60";
|
||||
@ -64,17 +53,17 @@
|
||||
dots_size = 0.2;
|
||||
dots_spacing = 0.2;
|
||||
dots_center = true;
|
||||
outer_color = lib.mkDefault "$accent";
|
||||
inner_color = lib.mkDefault "$surface0";
|
||||
font_color = lib.mkDefault "$text";
|
||||
outer_color = lib.mkDefault "${theme.mauve}";
|
||||
inner_color = lib.mkDefault "${theme.surface0Rgb}";
|
||||
font_color = lib.mkDefault "${theme.textRgb}";
|
||||
fade_on_empty = false;
|
||||
placeholder_text = "<span foreground=\"##$textAlpha\"><i> Logged in as </i><span foreground=\"##$accentAlpha\">$USER</span></span>";
|
||||
placeholder_text = "<span foreground=\"##${theme.textAlpha}\"><i> Logged in as </i><span foreground=\"##${theme.mauveAlpha}\">$USER</span></span>";
|
||||
hide_input = false;
|
||||
check_color = lib.mkDefault "$accent";
|
||||
fail_color = lib.mkDefault "$red";
|
||||
check_color = lib.mkDefault "${theme.mauve}";
|
||||
fail_color = lib.mkDefault "${theme.redRgb}";
|
||||
fail_text = "<i>$FAIL <b>($ATTEMPTS)</b></i>";
|
||||
capslock_color = lib.mkDefault "$yellow";
|
||||
position = "0, -20%";
|
||||
capslock_color = lib.mkDefault "${theme.yellowRgb}";
|
||||
position = "0, -200"; # TODO change -200 to -20% at 25.05
|
||||
halign = "center";
|
||||
valign = "center";
|
||||
};
|
||||
|
19
home-manager/hyprland/hyprshot.nix
Normal file
19
home-manager/hyprland/hyprshot.nix
Normal file
@ -0,0 +1,19 @@
|
||||
let
|
||||
common = import ../../common.nix;
|
||||
in
|
||||
{
|
||||
home.sessionVariables = {
|
||||
HYPRSHOT_DIR = "${common.dir.pictures}/screenshots"; # Store screenshots here
|
||||
};
|
||||
|
||||
wayland.windowManager.hyprland.settings = {
|
||||
"$mainMod" = "SUPER";
|
||||
"$shiftMod" = "$mainMod SHIFT";
|
||||
|
||||
bind = [
|
||||
"$mainMod, PRINT, exec, hyprshot -m window" # Window
|
||||
", PRINT, exec, hyprshot -m output" # Monitor
|
||||
"$shiftMod, PRINT, exec, hyprshot -m region" # Region
|
||||
];
|
||||
};
|
||||
}
|
@ -1,5 +1,9 @@
|
||||
{ lib, ... }:
|
||||
|
||||
let
|
||||
common = import ../../common.nix;
|
||||
app = common.default;
|
||||
theme = import ../../theme.nix;
|
||||
in
|
||||
{
|
||||
wayland.windowManager.hyprland.settings = {
|
||||
monitor = [
|
||||
@ -7,16 +11,11 @@
|
||||
"DP-3, 2560x1440@59.95, 1920x0, 1"
|
||||
];
|
||||
|
||||
"$browser" = "io.github.zen_browser.zen";
|
||||
"$terminal" = "kitty";
|
||||
"$fileManager" = "nautilus";
|
||||
"$menu" = "rofi -show drun";
|
||||
|
||||
# Autostart
|
||||
exec-once = [
|
||||
"$browser"
|
||||
"${app.browser}"
|
||||
"nextcloud"
|
||||
"$terminal"
|
||||
"${app.terminal}"
|
||||
"hypridle"
|
||||
"systemctl --user start hyprpolkitagent"
|
||||
"swaync"
|
||||
@ -25,98 +24,15 @@
|
||||
];
|
||||
|
||||
env = [
|
||||
"XCURSOR_SIZE,24"
|
||||
"HYPRCURSOR_SIZE,24"
|
||||
"HYPRCURSOR_THEME,rose-pine-hyprcursor"
|
||||
"ELECTRON_OZONE_PLATFORM_HINT,auto"
|
||||
"HYPRSHOT_DIR,$HOME/Pictures/screenshots" # Store screenshots here
|
||||
];
|
||||
|
||||
# TODO move to common file
|
||||
"$rosewater" = "rgb(f5e0dc)";
|
||||
"$rosewaterAlpha" = "f5e0dc";
|
||||
|
||||
"$flamingo" = "rgb(f2cdcd)";
|
||||
"$flamingoAlpha" = "f2cdcd";
|
||||
|
||||
"$pink" = "rgb(f5c2e7)";
|
||||
"$pinkAlpha" = "f5c2e7";
|
||||
|
||||
"$mauve" = "rgb(cba6f7)";
|
||||
"$mauveAlpha" = "cba6f7";
|
||||
|
||||
"$red" = "rgb(f38ba8)";
|
||||
"$redAlpha" = "f38ba8";
|
||||
|
||||
"$maroon" = "rgb(eba0ac)";
|
||||
"$maroonAlpha" = "eba0ac";
|
||||
|
||||
"$peach" = "rgb(fab387)";
|
||||
"$peachAlpha" = "fab387";
|
||||
|
||||
"$yellow" = "rgb(f9e2af)";
|
||||
"$yellowAlpha" = "f9e2af";
|
||||
|
||||
"$green" = "rgb(a6e3a1)";
|
||||
"$greenAlpha" = "a6e3a1";
|
||||
|
||||
"$teal" = "rgb(94e2d5)";
|
||||
"$tealAlpha" = "94e2d5";
|
||||
|
||||
"$sky" = "rgb(89dceb)";
|
||||
"$skyAlpha" = "89dceb";
|
||||
|
||||
"$sapphire" = "rgb(74c7ec)";
|
||||
"$sapphireAlpha" = "74c7ec";
|
||||
|
||||
"$blue" = "rgb(89b4fa)";
|
||||
"$blueAlpha" = "89b4fa";
|
||||
|
||||
"$lavender" = "rgb(b4befe)";
|
||||
"$lavenderAlpha" = "b4befe";
|
||||
|
||||
"$text" = "rgb(cdd6f4)";
|
||||
"$textAlpha" = "cdd6f4";
|
||||
|
||||
"$subtext1" = "rgb(bac2de)";
|
||||
"$subtext1Alpha" = "bac2de";
|
||||
|
||||
"$subtext0" = "rgb(a6adc8)";
|
||||
"$subtext0Alpha" = "a6adc8";
|
||||
|
||||
"$overlay2" = "rgb(9399b2)";
|
||||
"$overlay2Alpha" = "9399b2";
|
||||
|
||||
"$overlay1" = "rgb(7f849c)";
|
||||
"$overlay1Alpha" = "7f849c";
|
||||
|
||||
"$overlay0" = "rgb(6c7086)";
|
||||
"$overlay0Alpha" = "6c7086";
|
||||
|
||||
"$surface2" = "rgb(585b70)";
|
||||
"$surface2Alpha" = "585b70";
|
||||
|
||||
"$surface1" = "rgb(45475a)";
|
||||
"$surface1Alpha" = "45475a";
|
||||
|
||||
"$surface0" = "rgb(313244)";
|
||||
"$surface0Alpha" = "313244";
|
||||
|
||||
"$base" = "rgb(1e1e2e)";
|
||||
"$baseAlpha" = "1e1e2e";
|
||||
|
||||
"$mantle" = "rgb(181825)";
|
||||
"$mantleAlpha" = "181825";
|
||||
|
||||
"$crust" = "rgb(11111b)";
|
||||
"$crustAlpha" = "11111b";
|
||||
|
||||
general = {
|
||||
gaps_in = 5;
|
||||
gaps_out = 20;
|
||||
border_size = 2;
|
||||
"col.active_border" = lib.mkDefault "$mauve $teal 45deg";
|
||||
"col.inactive_border" = lib.mkDefault "rgba(595959aa)";
|
||||
"col.active_border" = lib.mkDefault "${theme.mauveRgb} ${theme.tealRgb} 45deg";
|
||||
"col.inactive_border" = lib.mkDefault "rgba(${theme.surface2Alpha}aa)";
|
||||
resize_on_border = true;
|
||||
allow_tearing = false;
|
||||
layout = "dwindle";
|
||||
@ -133,7 +49,7 @@
|
||||
enabled = true;
|
||||
range = 4;
|
||||
render_power = 3;
|
||||
color = lib.mkDefault "$base";
|
||||
color = lib.mkDefault theme.baseRgb;
|
||||
};
|
||||
|
||||
blur = {
|
||||
@ -192,10 +108,9 @@
|
||||
|
||||
debug.disable_logs = false;
|
||||
|
||||
# TODO fetch values from common file. Must match configs in nixos!
|
||||
input = {
|
||||
kb_layout = "gb,no";
|
||||
kb_options = "grp:alt_shift_toggle";
|
||||
kb_layout = common.keymaps.layout;
|
||||
kb_options = common.keymaps.options;
|
||||
follow_mouse = 1;
|
||||
sensitivity = 0; # -1.0 - 1.0, 0 means no modification.
|
||||
touchpad.natural_scroll = false;
|
||||
|
@ -1,8 +1,464 @@
|
||||
{ pkgs, lib, ... }:
|
||||
|
||||
{ lib, ... }:
|
||||
let
|
||||
theme = import ../../../theme.nix;
|
||||
in
|
||||
{
|
||||
# TODO inject font
|
||||
services.swaync = {
|
||||
enable = true;
|
||||
style = lib.mkDefault ./mocha.css;
|
||||
style = lib.mkDefault ''
|
||||
* {
|
||||
all: unset;
|
||||
font-size: 14px;
|
||||
font-family: "${theme.nerdFont} Nerd Font", monospace;
|
||||
transition: 200ms;
|
||||
}
|
||||
|
||||
trough highlight {
|
||||
background: #${theme.textAlpha};
|
||||
}
|
||||
|
||||
scale trough {
|
||||
margin: 0 1rem;
|
||||
background-color: #${theme.surface0Alpha};
|
||||
min-height: 8px;
|
||||
min-width: 70px;
|
||||
}
|
||||
|
||||
slider {
|
||||
background-color: #${theme.blueAlpha};
|
||||
}
|
||||
|
||||
.floating-notifications.background .notification-row .notification-background {
|
||||
box-shadow:
|
||||
0 0 8px 0 rgba(0, 0, 0, 0.8),
|
||||
inset 0 0 0 1px #${theme.surface0Alpha};
|
||||
border-radius: 12.6px;
|
||||
margin: 18px;
|
||||
background-color: #${theme.baseAlpha};
|
||||
color: #${theme.textAlpha};
|
||||
padding: 0;
|
||||
}
|
||||
|
||||
.floating-notifications.background
|
||||
.notification-row
|
||||
.notification-background
|
||||
.notification {
|
||||
padding: 7px;
|
||||
border-radius: 12.6px;
|
||||
}
|
||||
|
||||
.floating-notifications.background
|
||||
.notification-row
|
||||
.notification-background
|
||||
.notification.critical {
|
||||
box-shadow: inset 0 0 7px 0 #${theme.redAlpha};
|
||||
}
|
||||
|
||||
.floating-notifications.background
|
||||
.notification-row
|
||||
.notification-background
|
||||
.notification
|
||||
.notification-content {
|
||||
margin: 7px;
|
||||
}
|
||||
|
||||
.floating-notifications.background
|
||||
.notification-row
|
||||
.notification-background
|
||||
.notification
|
||||
.notification-content
|
||||
.summary {
|
||||
color: #${theme.textAlpha};
|
||||
}
|
||||
|
||||
.floating-notifications.background
|
||||
.notification-row
|
||||
.notification-background
|
||||
.notification
|
||||
.notification-content
|
||||
.time {
|
||||
color: #${theme.subtext0Alpha};
|
||||
}
|
||||
|
||||
.floating-notifications.background
|
||||
.notification-row
|
||||
.notification-background
|
||||
.notification
|
||||
.notification-content
|
||||
.body {
|
||||
color: #${theme.textAlpha};
|
||||
}
|
||||
|
||||
.floating-notifications.background
|
||||
.notification-row
|
||||
.notification-background
|
||||
.notification
|
||||
> *:last-child
|
||||
> * {
|
||||
min-height: 3.4em;
|
||||
}
|
||||
|
||||
.floating-notifications.background
|
||||
.notification-row
|
||||
.notification-background
|
||||
.notification
|
||||
> *:last-child
|
||||
> *
|
||||
.notification-action {
|
||||
border-radius: 7px;
|
||||
color: #${theme.textAlpha};
|
||||
background-color: #${theme.surface0Alpha};
|
||||
box-shadow: inset 0 0 0 1px #${theme.surface1Alpha};
|
||||
margin: 7px;
|
||||
}
|
||||
|
||||
.floating-notifications.background
|
||||
.notification-row
|
||||
.notification-background
|
||||
.notification
|
||||
> *:last-child
|
||||
> *
|
||||
.notification-action:hover {
|
||||
box-shadow: inset 0 0 0 1px #${theme.surface1Alpha};
|
||||
background-color: #${theme.surface0Alpha};
|
||||
color: #${theme.textAlpha};
|
||||
}
|
||||
|
||||
.floating-notifications.background
|
||||
.notification-row
|
||||
.notification-background
|
||||
.notification
|
||||
> *:last-child
|
||||
> *
|
||||
.notification-action:active {
|
||||
box-shadow: inset 0 0 0 1px #${theme.surface1Alpha};
|
||||
background-color: #${theme.sapphireAlpha};
|
||||
color: #${theme.textAlpha};
|
||||
}
|
||||
|
||||
/* Close Button */
|
||||
.floating-notifications.background
|
||||
.notification-row
|
||||
.notification-background
|
||||
.close-button {
|
||||
margin: 7px;
|
||||
padding: 2px;
|
||||
border-radius: 6.3px;
|
||||
color: #${theme.baseAlpha};
|
||||
background-color: #${theme.redAlpha};
|
||||
}
|
||||
|
||||
.floating-notifications.background
|
||||
.notification-row
|
||||
.notification-background
|
||||
.close-button:hover {
|
||||
background-color: #${theme.maroonAlpha};
|
||||
color: #${theme.baseAlpha};
|
||||
}
|
||||
|
||||
.floating-notifications.background
|
||||
.notification-row
|
||||
.notification-background
|
||||
.close-button:active {
|
||||
background-color: #${theme.redAlpha};
|
||||
color: #${theme.baseAlpha};
|
||||
}
|
||||
|
||||
.control-center {
|
||||
box-shadow:
|
||||
0 0 8px 0 rgba(0, 0, 0, 0.8),
|
||||
inset 0 0 0 1px #${theme.surface0Alpha};
|
||||
border-radius: 12.6px;
|
||||
margin: 18px;
|
||||
background-color: #${theme.baseAlpha};
|
||||
color: #${theme.textAlpha};
|
||||
padding: 14px;
|
||||
}
|
||||
|
||||
.control-center .widget-title > label {
|
||||
color: #${theme.textAlpha};
|
||||
font-size: 1.3em;
|
||||
}
|
||||
|
||||
.control-center .widget-title button {
|
||||
border-radius: 7px;
|
||||
color: #${theme.textAlpha};
|
||||
background-color: #${theme.surface0Alpha};
|
||||
box-shadow: inset 0 0 0 1px #${theme.surface1Alpha};
|
||||
padding: 8px;
|
||||
}
|
||||
|
||||
.control-center .widget-title button:hover {
|
||||
box-shadow: inset 0 0 0 1px #${theme.surface1Alpha};
|
||||
background-color: #585b70;
|
||||
color: #${theme.textAlpha};
|
||||
}
|
||||
|
||||
.control-center .widget-title button:active {
|
||||
box-shadow: inset 0 0 0 1px #${theme.surface1Alpha};
|
||||
background-color: #${theme.sapphireAlpha};
|
||||
color: #${theme.baseAlpha};
|
||||
}
|
||||
|
||||
.control-center .notification-row .notification-background {
|
||||
border-radius: 7px;
|
||||
color: #${theme.textAlpha};
|
||||
background-color: #${theme.surface0Alpha};
|
||||
box-shadow: inset 0 0 0 1px #${theme.surface1Alpha};
|
||||
margin-top: 14px;
|
||||
}
|
||||
|
||||
.control-center .notification-row .notification-background .notification {
|
||||
padding: 7px;
|
||||
border-radius: 7px;
|
||||
}
|
||||
|
||||
.control-center
|
||||
.notification-row
|
||||
.notification-background
|
||||
.notification.critical {
|
||||
box-shadow: inset 0 0 7px 0 #${theme.redAlpha};
|
||||
}
|
||||
|
||||
.control-center
|
||||
.notification-row
|
||||
.notification-background
|
||||
.notification
|
||||
.notification-content {
|
||||
margin: 7px;
|
||||
}
|
||||
|
||||
.control-center
|
||||
.notification-row
|
||||
.notification-background
|
||||
.notification
|
||||
.notification-content
|
||||
.summary {
|
||||
color: #${theme.textAlpha};
|
||||
}
|
||||
|
||||
.control-center
|
||||
.notification-row
|
||||
.notification-background
|
||||
.notification
|
||||
.notification-content
|
||||
.time {
|
||||
color: #a6adc8;
|
||||
}
|
||||
|
||||
.control-center
|
||||
.notification-row
|
||||
.notification-background
|
||||
.notification
|
||||
.notification-content
|
||||
.body {
|
||||
color: #${theme.textAlpha};
|
||||
}
|
||||
|
||||
.control-center
|
||||
.notification-row
|
||||
.notification-background
|
||||
.notification
|
||||
> *:last-child
|
||||
> * {
|
||||
min-height: 3.4em;
|
||||
}
|
||||
|
||||
.control-center
|
||||
.notification-row
|
||||
.notification-background
|
||||
.notification
|
||||
> *:last-child
|
||||
> *
|
||||
.notification-action {
|
||||
border-radius: 7px;
|
||||
color: #${theme.textAlpha};
|
||||
background-color: #${theme.crustAlpha};
|
||||
box-shadow: inset 0 0 0 1px #${theme.surface1Alpha};
|
||||
margin: 7px;
|
||||
}
|
||||
|
||||
.control-center
|
||||
.notification-row
|
||||
.notification-background
|
||||
.notification
|
||||
> *:last-child
|
||||
> *
|
||||
.notification-action:hover {
|
||||
box-shadow: inset 0 0 0 1px #${theme.surface1Alpha};
|
||||
background-color: #${theme.surface0Alpha};
|
||||
color: #${theme.textAlpha};
|
||||
}
|
||||
|
||||
.control-center
|
||||
.notification-row
|
||||
.notification-background
|
||||
.notification
|
||||
> *:last-child
|
||||
> *
|
||||
.notification-action:active {
|
||||
box-shadow: inset 0 0 0 1px #${theme.surface1Alpha};
|
||||
background-color: #${theme.sapphireAlpha};
|
||||
color: #${theme.textAlpha};
|
||||
}
|
||||
|
||||
.control-center .notification-row .notification-background .close-button {
|
||||
margin: 7px;
|
||||
padding: 2px;
|
||||
border-radius: 6.3px;
|
||||
color: #${theme.baseAlpha};
|
||||
background-color: #${theme.maroonAlpha};
|
||||
}
|
||||
|
||||
.close-button {
|
||||
border-radius: 6.3px;
|
||||
}
|
||||
|
||||
.control-center .notification-row .notification-background .close-button:hover {
|
||||
background-color: #${theme.redAlpha};
|
||||
color: #${theme.baseAlpha};
|
||||
}
|
||||
|
||||
.control-center
|
||||
.notification-row
|
||||
.notification-background
|
||||
.close-button:active {
|
||||
background-color: #${theme.redAlpha};
|
||||
color: #${theme.baseAlpha};
|
||||
}
|
||||
|
||||
.control-center .notification-row .notification-background:hover {
|
||||
box-shadow: inset 0 0 0 1px #${theme.surface1Alpha};
|
||||
background-color: #${theme.overlay1Alpha};
|
||||
color: #${theme.textAlpha};
|
||||
}
|
||||
|
||||
.control-center .notification-row .notification-background:active {
|
||||
box-shadow: inset 0 0 0 1px #${theme.surface1Alpha};
|
||||
background-color: #${theme.sapphireAlpha};
|
||||
color: #${theme.textAlpha};
|
||||
}
|
||||
|
||||
.notification.critical progress {
|
||||
background-color: #${theme.redAlpha};
|
||||
}
|
||||
|
||||
.notification.low progress,
|
||||
.notification.normal progress {
|
||||
background-color: #${theme.blueAlpha};
|
||||
}
|
||||
|
||||
.control-center-dnd {
|
||||
margin-top: 5px;
|
||||
border-radius: 8px;
|
||||
background: #${theme.surface0Alpha};
|
||||
border: 1px solid #${theme.surface1Alpha};
|
||||
box-shadow: none;
|
||||
}
|
||||
|
||||
.control-center-dnd:checked {
|
||||
background: #${theme.surface0Alpha};
|
||||
}
|
||||
|
||||
.control-center-dnd slider {
|
||||
background: #${theme.surface1Alpha};
|
||||
border-radius: 8px;
|
||||
}
|
||||
|
||||
.widget-dnd {
|
||||
margin: 0px;
|
||||
font-size: 1.1rem;
|
||||
}
|
||||
|
||||
.widget-dnd > switch {
|
||||
font-size: initial;
|
||||
border-radius: 8px;
|
||||
background: #${theme.surface0Alpha};
|
||||
border: 1px solid #${theme.surface1Alpha};
|
||||
box-shadow: none;
|
||||
}
|
||||
|
||||
.widget-dnd > switch:checked {
|
||||
background: #${theme.surface0Alpha};
|
||||
}
|
||||
|
||||
.widget-dnd > switch slider {
|
||||
background: #${theme.surface1Alpha};
|
||||
border-radius: 8px;
|
||||
border: 1px solid #${theme.overlay0Alpha};
|
||||
}
|
||||
|
||||
.widget-mpris .widget-mpris-player {
|
||||
background: #${theme.surface0Alpha};
|
||||
padding: 7px;
|
||||
}
|
||||
|
||||
.widget-mpris .widget-mpris-title {
|
||||
font-size: 1.2rem;
|
||||
}
|
||||
|
||||
.widget-mpris .widget-mpris-subtitle {
|
||||
font-size: 0.8rem;
|
||||
}
|
||||
|
||||
.widget-menubar > box > .menu-button-bar > button > label {
|
||||
font-size: 3rem;
|
||||
padding: 0.5rem 2rem;
|
||||
}
|
||||
|
||||
.widget-menubar > box > .menu-button-bar > :last-child {
|
||||
color: #${theme.redAlpha};
|
||||
}
|
||||
|
||||
.power-buttons button:hover,
|
||||
.powermode-buttons button:hover,
|
||||
.screenshot-buttons button:hover {
|
||||
background: #${theme.surface0Alpha};
|
||||
}
|
||||
|
||||
.control-center .widget-label > label {
|
||||
color: #${theme.textAlpha};
|
||||
font-size: 2rem;
|
||||
}
|
||||
|
||||
.widget-buttons-grid {
|
||||
padding-top: 1rem;
|
||||
}
|
||||
|
||||
.widget-buttons-grid > flowbox > flowboxchild > button label {
|
||||
font-size: 2.5rem;
|
||||
}
|
||||
|
||||
.widget-volume {
|
||||
padding-top: 1rem;
|
||||
}
|
||||
|
||||
.widget-volume label {
|
||||
font-size: 1.5rem;
|
||||
color: #${theme.sapphireAlpha};
|
||||
}
|
||||
|
||||
.widget-volume trough highlight {
|
||||
background: #${theme.sapphireAlpha};
|
||||
}
|
||||
|
||||
.widget-backlight trough highlight {
|
||||
background: #${theme.yellowAlpha};
|
||||
}
|
||||
|
||||
.widget-backlight label {
|
||||
font-size: 1.5rem;
|
||||
color: #${theme.yellowAlpha};
|
||||
}
|
||||
|
||||
.widget-backlight .KB {
|
||||
padding-bottom: 1rem;
|
||||
}
|
||||
|
||||
.image {
|
||||
padding-right: 0.5rem;
|
||||
}
|
||||
'';
|
||||
};
|
||||
}
|
||||
|
@ -1,453 +0,0 @@
|
||||
/* TODO Variables */
|
||||
* {
|
||||
all: unset;
|
||||
font-size: 14px;
|
||||
font-family: "JetBrains Mono", monospace;
|
||||
transition: 200ms;
|
||||
}
|
||||
|
||||
trough highlight {
|
||||
background: #cdd6f4;
|
||||
}
|
||||
|
||||
scale trough {
|
||||
margin: 0 1rem;
|
||||
background-color: #313244;
|
||||
min-height: 8px;
|
||||
min-width: 70px;
|
||||
}
|
||||
|
||||
slider {
|
||||
background-color: #89b4fa;
|
||||
}
|
||||
|
||||
.floating-notifications.background .notification-row .notification-background {
|
||||
box-shadow:
|
||||
0 0 8px 0 rgba(0, 0, 0, 0.8),
|
||||
inset 0 0 0 1px #313244;
|
||||
border-radius: 12.6px;
|
||||
margin: 18px;
|
||||
background-color: #1e1e2e;
|
||||
color: #cdd6f4;
|
||||
padding: 0;
|
||||
}
|
||||
|
||||
.floating-notifications.background
|
||||
.notification-row
|
||||
.notification-background
|
||||
.notification {
|
||||
padding: 7px;
|
||||
border-radius: 12.6px;
|
||||
}
|
||||
|
||||
.floating-notifications.background
|
||||
.notification-row
|
||||
.notification-background
|
||||
.notification.critical {
|
||||
box-shadow: inset 0 0 7px 0 #f38ba8;
|
||||
}
|
||||
|
||||
.floating-notifications.background
|
||||
.notification-row
|
||||
.notification-background
|
||||
.notification
|
||||
.notification-content {
|
||||
margin: 7px;
|
||||
}
|
||||
|
||||
.floating-notifications.background
|
||||
.notification-row
|
||||
.notification-background
|
||||
.notification
|
||||
.notification-content
|
||||
.summary {
|
||||
color: #cdd6f4;
|
||||
}
|
||||
|
||||
.floating-notifications.background
|
||||
.notification-row
|
||||
.notification-background
|
||||
.notification
|
||||
.notification-content
|
||||
.time {
|
||||
color: #a6adc8;
|
||||
}
|
||||
|
||||
.floating-notifications.background
|
||||
.notification-row
|
||||
.notification-background
|
||||
.notification
|
||||
.notification-content
|
||||
.body {
|
||||
color: #cdd6f4;
|
||||
}
|
||||
|
||||
.floating-notifications.background
|
||||
.notification-row
|
||||
.notification-background
|
||||
.notification
|
||||
> *:last-child
|
||||
> * {
|
||||
min-height: 3.4em;
|
||||
}
|
||||
|
||||
.floating-notifications.background
|
||||
.notification-row
|
||||
.notification-background
|
||||
.notification
|
||||
> *:last-child
|
||||
> *
|
||||
.notification-action {
|
||||
border-radius: 7px;
|
||||
color: #cdd6f4;
|
||||
background-color: #313244;
|
||||
box-shadow: inset 0 0 0 1px #45475a;
|
||||
margin: 7px;
|
||||
}
|
||||
|
||||
.floating-notifications.background
|
||||
.notification-row
|
||||
.notification-background
|
||||
.notification
|
||||
> *:last-child
|
||||
> *
|
||||
.notification-action:hover {
|
||||
box-shadow: inset 0 0 0 1px #45475a;
|
||||
background-color: #313244;
|
||||
color: #cdd6f4;
|
||||
}
|
||||
|
||||
.floating-notifications.background
|
||||
.notification-row
|
||||
.notification-background
|
||||
.notification
|
||||
> *:last-child
|
||||
> *
|
||||
.notification-action:active {
|
||||
box-shadow: inset 0 0 0 1px #45475a;
|
||||
background-color: #74c7ec;
|
||||
color: #cdd6f4;
|
||||
}
|
||||
|
||||
/* Close Button */
|
||||
.floating-notifications.background
|
||||
.notification-row
|
||||
.notification-background
|
||||
.close-button {
|
||||
margin: 7px;
|
||||
padding: 2px;
|
||||
border-radius: 6.3px;
|
||||
color: #1e1e2e;
|
||||
background-color: #f38ba8;
|
||||
}
|
||||
|
||||
.floating-notifications.background
|
||||
.notification-row
|
||||
.notification-background
|
||||
.close-button:hover {
|
||||
background-color: #eba0ac;
|
||||
color: #1e1e2e;
|
||||
}
|
||||
|
||||
.floating-notifications.background
|
||||
.notification-row
|
||||
.notification-background
|
||||
.close-button:active {
|
||||
background-color: #f38ba8;
|
||||
color: #1e1e2e;
|
||||
}
|
||||
|
||||
.control-center {
|
||||
box-shadow:
|
||||
0 0 8px 0 rgba(0, 0, 0, 0.8),
|
||||
inset 0 0 0 1px #313244;
|
||||
border-radius: 12.6px;
|
||||
margin: 18px;
|
||||
background-color: #1e1e2e;
|
||||
color: #cdd6f4;
|
||||
padding: 14px;
|
||||
}
|
||||
|
||||
.control-center .widget-title > label {
|
||||
color: #cdd6f4;
|
||||
font-size: 1.3em;
|
||||
}
|
||||
|
||||
.control-center .widget-title button {
|
||||
border-radius: 7px;
|
||||
color: #cdd6f4;
|
||||
background-color: #313244;
|
||||
box-shadow: inset 0 0 0 1px #45475a;
|
||||
padding: 8px;
|
||||
}
|
||||
|
||||
.control-center .widget-title button:hover {
|
||||
box-shadow: inset 0 0 0 1px #45475a;
|
||||
background-color: #585b70;
|
||||
color: #cdd6f4;
|
||||
}
|
||||
|
||||
.control-center .widget-title button:active {
|
||||
box-shadow: inset 0 0 0 1px #45475a;
|
||||
background-color: #74c7ec;
|
||||
color: #1e1e2e;
|
||||
}
|
||||
|
||||
.control-center .notification-row .notification-background {
|
||||
border-radius: 7px;
|
||||
color: #cdd6f4;
|
||||
background-color: #313244;
|
||||
box-shadow: inset 0 0 0 1px #45475a;
|
||||
margin-top: 14px;
|
||||
}
|
||||
|
||||
.control-center .notification-row .notification-background .notification {
|
||||
padding: 7px;
|
||||
border-radius: 7px;
|
||||
}
|
||||
|
||||
.control-center
|
||||
.notification-row
|
||||
.notification-background
|
||||
.notification.critical {
|
||||
box-shadow: inset 0 0 7px 0 #f38ba8;
|
||||
}
|
||||
|
||||
.control-center
|
||||
.notification-row
|
||||
.notification-background
|
||||
.notification
|
||||
.notification-content {
|
||||
margin: 7px;
|
||||
}
|
||||
|
||||
.control-center
|
||||
.notification-row
|
||||
.notification-background
|
||||
.notification
|
||||
.notification-content
|
||||
.summary {
|
||||
color: #cdd6f4;
|
||||
}
|
||||
|
||||
.control-center
|
||||
.notification-row
|
||||
.notification-background
|
||||
.notification
|
||||
.notification-content
|
||||
.time {
|
||||
color: #a6adc8;
|
||||
}
|
||||
|
||||
.control-center
|
||||
.notification-row
|
||||
.notification-background
|
||||
.notification
|
||||
.notification-content
|
||||
.body {
|
||||
color: #cdd6f4;
|
||||
}
|
||||
|
||||
.control-center
|
||||
.notification-row
|
||||
.notification-background
|
||||
.notification
|
||||
> *:last-child
|
||||
> * {
|
||||
min-height: 3.4em;
|
||||
}
|
||||
|
||||
.control-center
|
||||
.notification-row
|
||||
.notification-background
|
||||
.notification
|
||||
> *:last-child
|
||||
> *
|
||||
.notification-action {
|
||||
border-radius: 7px;
|
||||
color: #cdd6f4;
|
||||
background-color: #11111b;
|
||||
box-shadow: inset 0 0 0 1px #45475a;
|
||||
margin: 7px;
|
||||
}
|
||||
|
||||
.control-center
|
||||
.notification-row
|
||||
.notification-background
|
||||
.notification
|
||||
> *:last-child
|
||||
> *
|
||||
.notification-action:hover {
|
||||
box-shadow: inset 0 0 0 1px #45475a;
|
||||
background-color: #313244;
|
||||
color: #cdd6f4;
|
||||
}
|
||||
|
||||
.control-center
|
||||
.notification-row
|
||||
.notification-background
|
||||
.notification
|
||||
> *:last-child
|
||||
> *
|
||||
.notification-action:active {
|
||||
box-shadow: inset 0 0 0 1px #45475a;
|
||||
background-color: #74c7ec;
|
||||
color: #cdd6f4;
|
||||
}
|
||||
|
||||
.control-center .notification-row .notification-background .close-button {
|
||||
margin: 7px;
|
||||
padding: 2px;
|
||||
border-radius: 6.3px;
|
||||
color: #1e1e2e;
|
||||
background-color: #eba0ac;
|
||||
}
|
||||
|
||||
.close-button {
|
||||
border-radius: 6.3px;
|
||||
}
|
||||
|
||||
.control-center .notification-row .notification-background .close-button:hover {
|
||||
background-color: #f38ba8;
|
||||
color: #1e1e2e;
|
||||
}
|
||||
|
||||
.control-center
|
||||
.notification-row
|
||||
.notification-background
|
||||
.close-button:active {
|
||||
background-color: #f38ba8;
|
||||
color: #1e1e2e;
|
||||
}
|
||||
|
||||
.control-center .notification-row .notification-background:hover {
|
||||
box-shadow: inset 0 0 0 1px #45475a;
|
||||
background-color: #7f849c;
|
||||
color: #cdd6f4;
|
||||
}
|
||||
|
||||
.control-center .notification-row .notification-background:active {
|
||||
box-shadow: inset 0 0 0 1px #45475a;
|
||||
background-color: #74c7ec;
|
||||
color: #cdd6f4;
|
||||
}
|
||||
|
||||
.notification.critical progress {
|
||||
background-color: #f38ba8;
|
||||
}
|
||||
|
||||
.notification.low progress,
|
||||
.notification.normal progress {
|
||||
background-color: #89b4fa;
|
||||
}
|
||||
|
||||
.control-center-dnd {
|
||||
margin-top: 5px;
|
||||
border-radius: 8px;
|
||||
background: #313244;
|
||||
border: 1px solid #45475a;
|
||||
box-shadow: none;
|
||||
}
|
||||
|
||||
.control-center-dnd:checked {
|
||||
background: #313244;
|
||||
}
|
||||
|
||||
.control-center-dnd slider {
|
||||
background: #45475a;
|
||||
border-radius: 8px;
|
||||
}
|
||||
|
||||
.widget-dnd {
|
||||
margin: 0px;
|
||||
font-size: 1.1rem;
|
||||
}
|
||||
|
||||
.widget-dnd > switch {
|
||||
font-size: initial;
|
||||
border-radius: 8px;
|
||||
background: #313244;
|
||||
border: 1px solid #45475a;
|
||||
box-shadow: none;
|
||||
}
|
||||
|
||||
.widget-dnd > switch:checked {
|
||||
background: #313244;
|
||||
}
|
||||
|
||||
.widget-dnd > switch slider {
|
||||
background: #45475a;
|
||||
border-radius: 8px;
|
||||
border: 1px solid #6c7086;
|
||||
}
|
||||
|
||||
.widget-mpris .widget-mpris-player {
|
||||
background: #313244;
|
||||
padding: 7px;
|
||||
}
|
||||
|
||||
.widget-mpris .widget-mpris-title {
|
||||
font-size: 1.2rem;
|
||||
}
|
||||
|
||||
.widget-mpris .widget-mpris-subtitle {
|
||||
font-size: 0.8rem;
|
||||
}
|
||||
|
||||
.widget-menubar > box > .menu-button-bar > button > label {
|
||||
font-size: 3rem;
|
||||
padding: 0.5rem 2rem;
|
||||
}
|
||||
|
||||
.widget-menubar > box > .menu-button-bar > :last-child {
|
||||
color: #f38ba8;
|
||||
}
|
||||
|
||||
.power-buttons button:hover,
|
||||
.powermode-buttons button:hover,
|
||||
.screenshot-buttons button:hover {
|
||||
background: #313244;
|
||||
}
|
||||
|
||||
.control-center .widget-label > label {
|
||||
color: #cdd6f4;
|
||||
font-size: 2rem;
|
||||
}
|
||||
|
||||
.widget-buttons-grid {
|
||||
padding-top: 1rem;
|
||||
}
|
||||
|
||||
.widget-buttons-grid > flowbox > flowboxchild > button label {
|
||||
font-size: 2.5rem;
|
||||
}
|
||||
|
||||
.widget-volume {
|
||||
padding-top: 1rem;
|
||||
}
|
||||
|
||||
.widget-volume label {
|
||||
font-size: 1.5rem;
|
||||
color: #74c7ec;
|
||||
}
|
||||
|
||||
.widget-volume trough highlight {
|
||||
background: #74c7ec;
|
||||
}
|
||||
|
||||
.widget-backlight trough highlight {
|
||||
background: #f9e2af;
|
||||
}
|
||||
|
||||
.widget-backlight label {
|
||||
font-size: 1.5rem;
|
||||
color: #f9e2af;
|
||||
}
|
||||
|
||||
.widget-backlight .KB {
|
||||
padding-bottom: 1rem;
|
||||
}
|
||||
|
||||
.image {
|
||||
padding-right: 0.5rem;
|
||||
}
|
@ -1,6 +1,4 @@
|
||||
# Neovim configuration for Nix
|
||||
{ ... }:
|
||||
|
||||
{
|
||||
home.sessionVariables = {
|
||||
EDITOR = "nvim";
|
||||
|
@ -1,174 +0,0 @@
|
||||
"$schema" = 'https://starship.rs/config-schema.json'
|
||||
|
||||
palette = "catppuccin_mocha"
|
||||
|
||||
format = """
|
||||
[](mantle)\
|
||||
$os\
|
||||
$username\
|
||||
[](bg:lavender fg:mantle)\
|
||||
$directory\
|
||||
[](fg:lavender bg:blue)\
|
||||
$git_branch\
|
||||
$git_status\
|
||||
[](fg:blue bg:#86BBD8)\
|
||||
$c\
|
||||
$elixir\
|
||||
$elm\
|
||||
$golang\
|
||||
$gradle\
|
||||
$haskell\
|
||||
$java\
|
||||
$julia\
|
||||
$nodejs\
|
||||
$nim\
|
||||
$rust\
|
||||
$scala\
|
||||
[](fg:#86BBD8 bg:#06969A)\
|
||||
$docker_context\
|
||||
[](fg:#06969A bg:#33658A)\
|
||||
$time\
|
||||
[ ](fg:#33658A)\
|
||||
"""
|
||||
|
||||
# Disable the blank line at the start of the prompt
|
||||
# add_newline = false
|
||||
|
||||
[palettes.catppuccin_mocha]
|
||||
rosewater = "#f5e0dc"
|
||||
flamingo = "#f2cdcd"
|
||||
pink = "#f5c2e7"
|
||||
mauve = "#cba6f7"
|
||||
red = "#f38ba8"
|
||||
maroon = "#eba0ac"
|
||||
peach = "#fab387"
|
||||
yellow = "#f9e2af"
|
||||
green = "#a6e3a1"
|
||||
teal = "#94e2d5"
|
||||
sky = "#89dceb"
|
||||
sapphire = "#74c7ec"
|
||||
blue = "#89b4fa"
|
||||
lavender = "#b4befe"
|
||||
text = "#cdd6f4"
|
||||
subtext1 = "#bac2de"
|
||||
subtext0 = "#a6adc8"
|
||||
overlay2 = "#9399b2"
|
||||
overlay1 = "#7f849c"
|
||||
overlay0 = "#6c7086"
|
||||
surface2 = "#585b70"
|
||||
surface1 = "#45475a"
|
||||
surface0 = "#313244"
|
||||
base = "#1e1e2e"
|
||||
mantle = "#181825"
|
||||
crust = "#11111b"
|
||||
|
||||
# You can also replace your username with a neat symbol like or disable this
|
||||
# and use the os module below
|
||||
[username]
|
||||
show_always = false
|
||||
style_user = "bg:crust"
|
||||
style_root = "bg:mantle"
|
||||
format = "[$user]($style) in "
|
||||
disabled = false
|
||||
|
||||
[os]
|
||||
style = "bg:mantle"
|
||||
disabled = false
|
||||
|
||||
[directory]
|
||||
style = "bg:lavender fg:base"
|
||||
format = "[ $path ]($style)"
|
||||
truncation_length = 3
|
||||
truncation_symbol = "…/"
|
||||
|
||||
# Here is how you can shorten some long paths by text replacement
|
||||
# similar to mapped_locations in Oh My Posh:
|
||||
[directory.substitutions]
|
||||
"Documents" = " "
|
||||
"Downloads" = " "
|
||||
"Music" = " "
|
||||
"Pictures" = " "
|
||||
# Keep in mind that the order matters. For example:
|
||||
# "Important Documents" = " "
|
||||
# will not be replaced, because "Documents" was already substituted before.
|
||||
# So either put "Important Documents" before "Documents" or use the substituted version:
|
||||
# "Important " = " "
|
||||
|
||||
[c]
|
||||
symbol = " "
|
||||
style = "bg:#86BBD8"
|
||||
format = '[ $symbol ($version) ]($style)'
|
||||
|
||||
[docker_context]
|
||||
symbol = " "
|
||||
style = "bg:#06969A"
|
||||
format = '[ $symbol $context ]($style)'
|
||||
|
||||
[elixir]
|
||||
symbol = " "
|
||||
style = "bg:#86BBD8"
|
||||
format = '[ $symbol ($version) ]($style)'
|
||||
|
||||
[elm]
|
||||
symbol = " "
|
||||
style = "bg:#86BBD8"
|
||||
format = '[ $symbol ($version) ]($style)'
|
||||
|
||||
[git_branch]
|
||||
symbol = " "
|
||||
style = "bg:blue fg:base"
|
||||
format = '[ $symbol $branch ]($style)'
|
||||
|
||||
[git_status]
|
||||
style = "bg:blue fg:base"
|
||||
format = '[$all_status$ahead_behind ]($style)'
|
||||
|
||||
[golang]
|
||||
symbol = " "
|
||||
style = "bg:#86BBD8"
|
||||
format = '[ $symbol ($version) ]($style)'
|
||||
|
||||
[gradle]
|
||||
style = "bg:#86BBD8"
|
||||
format = '[ $symbol ($version) ]($style)'
|
||||
|
||||
[haskell]
|
||||
symbol = " "
|
||||
style = "bg:#86BBD8"
|
||||
format = '[ $symbol ($version) ]($style)'
|
||||
|
||||
[java]
|
||||
symbol = " "
|
||||
style = "bg:#86BBD8"
|
||||
format = '[ $symbol ($version) ]($style)'
|
||||
|
||||
[julia]
|
||||
symbol = " "
|
||||
style = "bg:#86BBD8"
|
||||
format = '[ $symbol ($version) ]($style)'
|
||||
|
||||
[nodejs]
|
||||
symbol = ""
|
||||
style = "bg:#86BBD8"
|
||||
format = '[ $symbol ($version) ]($style)'
|
||||
|
||||
[nim]
|
||||
symbol = " "
|
||||
style = "bg:#86BBD8"
|
||||
format = '[ $symbol ($version) ]($style)'
|
||||
|
||||
[rust]
|
||||
symbol = " "
|
||||
style = "bg:#86BBD8"
|
||||
format = '[ $symbol ($version) ]($style)'
|
||||
|
||||
[scala]
|
||||
symbol = " "
|
||||
style = "bg:#86BBD8"
|
||||
format = '[ $symbol ($version) ]($style)'
|
||||
|
||||
[time]
|
||||
disabled = false
|
||||
time_format = "%R" # Hour:Minute Format
|
||||
style = "bg:#33658A"
|
||||
format = '[ $time ]($style)'
|
@ -1,15 +1,17 @@
|
||||
# Log out and shutdown menu
|
||||
{ ... }:
|
||||
|
||||
{
|
||||
home.file = {
|
||||
".config/wlogout/hibernate.svg".source = ./hibernate.svg;
|
||||
".config/wlogout/lock.svg".source = ./lock.svg;
|
||||
".config/wlogout/logout.svg".source = ./logout.svg;
|
||||
".config/wlogout/reboot.svg".source = ./reboot.svg;
|
||||
".config/wlogout/shutdown.svg".source = ./shutdown.svg;
|
||||
".config/wlogout/suspend.svg".source = ./suspend.svg;
|
||||
};
|
||||
home.file =
|
||||
let
|
||||
dir = ".config/wlogout";
|
||||
in
|
||||
{
|
||||
"${dir}/hibernate.svg".source = ./hibernate.svg;
|
||||
"${dir}/lock.svg".source = ./lock.svg;
|
||||
"${dir}/logout.svg".source = ./logout.svg;
|
||||
"${dir}/reboot.svg".source = ./reboot.svg;
|
||||
"${dir}/shutdown.svg".source = ./shutdown.svg;
|
||||
"${dir}/suspend.svg".source = ./suspend.svg;
|
||||
};
|
||||
|
||||
programs.wlogout = {
|
||||
enable = true;
|
||||
@ -51,6 +53,64 @@
|
||||
keybind = "r";
|
||||
}
|
||||
];
|
||||
style = ./style.css;
|
||||
style =
|
||||
let
|
||||
theme = import ../../theme.nix;
|
||||
in
|
||||
''
|
||||
* {
|
||||
background-image: none;
|
||||
box-shadow: none;
|
||||
}
|
||||
|
||||
window {
|
||||
background-color: rgba(30, 30, 46, 0.9);
|
||||
}
|
||||
|
||||
button {
|
||||
border-radius: 0;
|
||||
border-color: #${theme.pinkAlpha};
|
||||
text-decoration-color: #${theme.textAlpha};
|
||||
color: #${theme.textAlpha};
|
||||
background-color: #${theme.mantleAlpha};
|
||||
border-style: solid;
|
||||
border-width: 1px;
|
||||
background-repeat: no-repeat;
|
||||
background-position: center;
|
||||
background-size: 25%;
|
||||
}
|
||||
|
||||
button:focus,
|
||||
button:active,
|
||||
button:hover {
|
||||
/* 20% Overlay 2, 80% mantle */
|
||||
background-color: rgb(48, 50, 66);
|
||||
outline-style: none;
|
||||
}
|
||||
|
||||
#lock {
|
||||
background-image: url("./lock.svg");
|
||||
}
|
||||
|
||||
#logout {
|
||||
background-image: url("./logout.svg");
|
||||
}
|
||||
|
||||
#suspend {
|
||||
background-image: url("./suspend.svg");
|
||||
}
|
||||
|
||||
#hibernate {
|
||||
background-image: url("./hibernate.svg");
|
||||
}
|
||||
|
||||
#shutdown {
|
||||
background-image: url("./shutdown.svg");
|
||||
}
|
||||
|
||||
#reboot {
|
||||
background-image: url("./reboot.svg");
|
||||
}
|
||||
'';
|
||||
};
|
||||
}
|
||||
|
@ -1,5 +1,3 @@
|
||||
{ ... }:
|
||||
|
||||
{
|
||||
imports = [
|
||||
./development.nix
|
||||
@ -15,5 +13,6 @@
|
||||
./steam.nix
|
||||
./stylix.nix
|
||||
./terminal
|
||||
./qt.nix
|
||||
];
|
||||
}
|
||||
|
@ -1,14 +1,23 @@
|
||||
{ pkgs, ... }:
|
||||
{
|
||||
|
||||
fonts = {
|
||||
fontconfig.enable = true;
|
||||
packages = with pkgs; [
|
||||
(nerdfonts.override { fonts = [ "JetBrainsMono" ]; })
|
||||
jetbrains-mono
|
||||
# The line below will replace the lines above in 25.05
|
||||
# nerd-fonts.jetbrains-mono
|
||||
];
|
||||
};
|
||||
{
|
||||
environment.systemPackages = with pkgs; [
|
||||
font-awesome # Icons
|
||||
];
|
||||
|
||||
fonts =
|
||||
let
|
||||
theme = import ../theme.nix;
|
||||
in
|
||||
{
|
||||
fontconfig.enable = true;
|
||||
packages = with pkgs; [
|
||||
(nerdfonts.override { fonts = [ theme.nerdFont ]; })
|
||||
jetbrains-mono
|
||||
# The line below will replace the lines above in 25.05
|
||||
# nerd-fonts.jetbrains-mono
|
||||
font-awesome
|
||||
];
|
||||
};
|
||||
|
||||
}
|
||||
|
@ -10,15 +10,13 @@
|
||||
glib
|
||||
adwaita-icon-theme
|
||||
gnomeExtensions.appindicator
|
||||
# gnome-extension-manager
|
||||
# gnome-extension-manager
|
||||
loupe
|
||||
gnome-calculator
|
||||
gnome-disk-utility
|
||||
];
|
||||
|
||||
programs = {
|
||||
dconf.enable = true; # Required for some gnome applications
|
||||
};
|
||||
programs.dconf.enable = true; # Required for some gnome applications
|
||||
|
||||
services = {
|
||||
gnome.gnome-keyring.enable = true;
|
||||
|
@ -1,13 +1,15 @@
|
||||
{ pkgs, ... }:
|
||||
|
||||
let
|
||||
common = import ../../common.nix;
|
||||
in
|
||||
{
|
||||
environment.systemPackages = with pkgs; [
|
||||
nautilus
|
||||
ffmpegthumbnailer
|
||||
ffmpegthumbnailer # Thumbnails
|
||||
];
|
||||
|
||||
programs.nautilus-open-any-terminal = {
|
||||
enable = true;
|
||||
terminal = "kitty";
|
||||
terminal = common.terminal;
|
||||
};
|
||||
}
|
||||
|
@ -1,10 +1,6 @@
|
||||
{
|
||||
pkgs,
|
||||
...
|
||||
}:
|
||||
{ pkgs, ... }:
|
||||
|
||||
{
|
||||
|
||||
environment.systemPackages = with pkgs; [
|
||||
gst_all_1.gstreamer
|
||||
gst_all_1.gst-plugins-base
|
||||
@ -17,7 +13,7 @@
|
||||
spotify
|
||||
];
|
||||
|
||||
hardware.pulseaudio.enable = false; # Will be moved to services
|
||||
hardware.pulseaudio.enable = false; # Will be moved to services in 25.05
|
||||
|
||||
security.rtkit.enable = true; # Enable RealtimeKit for audio purposes
|
||||
|
||||
@ -32,6 +28,6 @@
|
||||
# Uncomment the following line if you want to use JACK applications
|
||||
# jack.enable = true;
|
||||
};
|
||||
# pulseaudio.enable = false;
|
||||
# pulseaudio.enable = false; # TODO uncommenct at 25.05
|
||||
};
|
||||
}
|
||||
|
@ -1,5 +1,3 @@
|
||||
{ ... }:
|
||||
|
||||
{
|
||||
imports = [
|
||||
./audio.nix
|
||||
|
@ -1,5 +1,3 @@
|
||||
{ ... }:
|
||||
|
||||
{
|
||||
hardware.nvidia = {
|
||||
# Required
|
||||
|
@ -1,9 +1,8 @@
|
||||
# System configurations for Hyprland. For home configs, see ./home/hyprland
|
||||
# System configurations for Hyprland. For home configs, see ./home-manager/hyprland
|
||||
{ pkgs, ... }:
|
||||
|
||||
{
|
||||
imports = [
|
||||
./waybar.nix
|
||||
./wallpaper.nix
|
||||
];
|
||||
|
||||
@ -11,6 +10,7 @@
|
||||
xdg-desktop-portal-hyprland
|
||||
hyprpolkitagent # Auth deamon providing modals for password auth
|
||||
hyprshot # Screenshots
|
||||
waybar
|
||||
];
|
||||
|
||||
programs = {
|
||||
|
@ -1,12 +0,0 @@
|
||||
{ pkgs, ... }:
|
||||
|
||||
{
|
||||
environment.systemPackages = with pkgs; [
|
||||
waybar
|
||||
font-awesome # Icons
|
||||
];
|
||||
|
||||
fonts.packages = with pkgs; [
|
||||
font-awesome
|
||||
];
|
||||
}
|
@ -1,10 +1,9 @@
|
||||
{ ... }:
|
||||
|
||||
# TODO move locale config for hyprland here
|
||||
let
|
||||
utf-8 = "UTF-8";
|
||||
en = "en_GB.${utf-8}";
|
||||
nb = "nb_NO.${utf-8}";
|
||||
common = import ../common.nix;
|
||||
in
|
||||
{
|
||||
# Configure console keymap
|
||||
@ -31,10 +30,7 @@ in
|
||||
};
|
||||
|
||||
# Configure keymaps
|
||||
services.xserver.xkb = {
|
||||
layout = "gb,no";
|
||||
options = "grp:alt_shift_toggle"; # Toggle using ALT + SHIFT
|
||||
};
|
||||
services.xserver.xkb = common.keymaps;
|
||||
|
||||
# Set your time zone.
|
||||
time.timeZone = "Europe/Oslo";
|
||||
|
@ -1,9 +1,10 @@
|
||||
{ ... }:
|
||||
|
||||
let
|
||||
common = import ../common.nix;
|
||||
in
|
||||
{
|
||||
networking = {
|
||||
networkmanager.enable = true;
|
||||
hostName = "nixos";
|
||||
hostName = common.hostname;
|
||||
# wireless.enable = true; # Enables wireless support via wpa_supplicant.
|
||||
};
|
||||
|
||||
|
@ -1,9 +1,7 @@
|
||||
# Nix-Helper: swgithub.com/viperML/nh
|
||||
{ ... }:
|
||||
|
||||
# Nix-Helper: github.com/viperML/nh
|
||||
{
|
||||
programs.nh = {
|
||||
enable = true;
|
||||
flake = ./.;
|
||||
flake = ../.;
|
||||
};
|
||||
}
|
||||
|
11
modules/qt.nix
Normal file
11
modules/qt.nix
Normal file
@ -0,0 +1,11 @@
|
||||
{ pkgs, ... }:
|
||||
|
||||
{
|
||||
environment.systemPackages = with pkgs.kdePackages; [
|
||||
qtwayland
|
||||
qtsvg
|
||||
qt6ct
|
||||
];
|
||||
|
||||
qt.enable = true;
|
||||
}
|
@ -1,10 +1,13 @@
|
||||
{ pkgs, ... }:
|
||||
|
||||
let
|
||||
theme = import ../theme.nix;
|
||||
flavor = theme.flavor;
|
||||
in
|
||||
{
|
||||
environment.systemPackages = with pkgs; [
|
||||
(catppuccin-sddm.override {
|
||||
flavor = "mocha";
|
||||
font = "Noto Sans";
|
||||
flavor = flavor;
|
||||
font = theme.nerdFont;
|
||||
fontSize = "9";
|
||||
background = "${../catppuccin_high.png}";
|
||||
loginBackground = true;
|
||||
@ -13,7 +16,7 @@
|
||||
|
||||
services.displayManager.sddm = {
|
||||
enable = true;
|
||||
theme = "catppuccin-mocha";
|
||||
theme = "catppuccin-${flavor}";
|
||||
autoNumlock = true; # Enable numlock at login # TODO doesn't work
|
||||
wayland.enable = true;
|
||||
package = pkgs.kdePackages.sddm;
|
||||
|
@ -23,7 +23,7 @@
|
||||
};
|
||||
|
||||
services = {
|
||||
pcscd.enable = true;
|
||||
pcscd.enable = true; # Required for Yubikey
|
||||
udev.packages = with pkgs; [ yubikey-personalization ];
|
||||
};
|
||||
}
|
||||
|
@ -1,5 +1,3 @@
|
||||
{ ... }:
|
||||
|
||||
{
|
||||
programs.steam = {
|
||||
enable = true;
|
||||
|
@ -1,12 +1,15 @@
|
||||
{ pkgs, ... }:
|
||||
|
||||
let
|
||||
theme = import ../theme.nix;
|
||||
in
|
||||
{
|
||||
stylix = {
|
||||
enable = true;
|
||||
image = ../catppuccin.png;
|
||||
base16Scheme = "${pkgs.base16-schemes}/share/themes/catppuccin-mocha.yaml";
|
||||
base16Scheme = "${pkgs.base16-schemes}/share/themes/catppuccin-${theme.flavor}.yaml";
|
||||
polarity = "dark";
|
||||
opacity.terminal = 0.8;
|
||||
# Override some colours because of bad contrast
|
||||
override = {
|
||||
base02 = "b0b0b0"; # Comments in shell
|
||||
base03 = "b0b0b0"; # Comments in nvim
|
||||
|
41
theme.nix
Normal file
41
theme.nix
Normal file
@ -0,0 +1,41 @@
|
||||
rec {
|
||||
theme = "catppuccin";
|
||||
flavor = "mocha";
|
||||
|
||||
# TODO how to define font? JetBrainsMono | JetBrains Mono | JetBrainsMono Nerd Font | JetBrains Mono Nerd Font
|
||||
nerdFont = "JetBrainsMono";
|
||||
|
||||
rosewaterAlpha = "f5e0dc";
|
||||
flamingoAlpha = "f2cdcd";
|
||||
pinkAlpha = "f5c2e7";
|
||||
mauveAlpha = "cba6f7";
|
||||
mauveRgb = "rgb(${mauveAlpha})";
|
||||
redAlpha = "f38ba8";
|
||||
redRgb = "rgb(${redAlpha})";
|
||||
maroonAlpha = "eba0ac";
|
||||
peachAlpha = "fab387";
|
||||
yellowAlpha = "f9e2af";
|
||||
yellowRgb = "rgb(${yellowAlpha})";
|
||||
greenAlpha = "a6e3a1";
|
||||
tealAlpha = "94e2d5";
|
||||
tealRgb = "rgb(${tealAlpha})";
|
||||
skyAlpha = "89dceb";
|
||||
sapphireAlpha = "74c7ec";
|
||||
blueAlpha = "89b4fa";
|
||||
lavenderAlpha = "b4befe";
|
||||
textAlpha = "cdd6f4";
|
||||
textRgb = "rgb(${textAlpha})";
|
||||
subtext1Alpha = "bac2de";
|
||||
subtext0Alpha = "a6adc8";
|
||||
overlay2Alpha = "9399b2";
|
||||
overlay1Alpha = "7f849c";
|
||||
overlay0Alpha = "6c7086";
|
||||
surface2Alpha = "585b70";
|
||||
surface1Alpha = "45475a";
|
||||
surface0Alpha = "313244";
|
||||
surface0Rgb = "rgb(${surface0Alpha})";
|
||||
baseAlpha = "1e1e2e";
|
||||
baseRgb = "rgb(${baseAlpha})";
|
||||
mantleAlpha = "181825";
|
||||
crustAlpha = "11111b";
|
||||
}
|
Loading…
x
Reference in New Issue
Block a user