more incomprehensible changes :)

This commit is contained in:
Emile Clark-Boman 2024-11-04 11:59:14 +10:00
parent c4449191dd
commit 2a0373dc73
14 changed files with 1267 additions and 47 deletions

View file

@ -45,6 +45,26 @@ my dotfiles to also work on non-NixOS systems.
### Explaining my Vision with r/unixporn posts
I want the side panel from https://www.reddit.com/r/unixporn/comments/12wpvyf/hyprland_eww_is_all_i_need/
but not the colour scheme and I'm 50/50 on the bar being on th eleft side lol. Also I love the volume bar on the right!
https://www.reddit.com/r/unixporn/comments/12uy6q6/hyprland_first_time_trying_a_wm_ended_up/
I love love love their rofi theme, everything else is eh (except the background switching is cool)
https://www.reddit.com/r/unixporn/comments/1avnfjn/hyprland_animations_theme_generation_settings/
I love their settings apps
https://www.reddit.com/r/unixporn/comments/u7vgej/desktop_endeavouros_gnome_42/
I like to imagine they have the ability to have nothing but apps on their screen (like a do not disturb / focus mode)
https://www.reddit.com/r/unixporn/comments/xkvmhy/hyprland_dreamy/
Their window decorations and bar are great, also being able to hide everything upwards is so cool
https://www.reddit.com/r/unixporn/comments/vkcasz/i3gaps_i_prefer_light_mode/
If their colour scheme was a little less white I'd love it but overall one of my favourites every
### Credits
1. https://github.com/XNM1/linux-nixos-hyprland-config-dotfiles
The simplicity of their layout is amazing, was really good to pick out small modules and learn how something works / is configured.
@ -52,3 +72,5 @@ The simplicity of their layout is amazing, was really good to pick out small mod
Really great starter config for learning how parts interact and how to generally structure flakes
3. https://nixos.wiki/wiki/Fonts
Wiki page explaining how to install fonts and nerd fonts on NixOS
4. https://github.com/adi1090x/rofi
For the Rofi theme

187
flake.lock generated
View file

@ -50,6 +50,36 @@
}
},
"flake-compat_2": {
"locked": {
"lastModified": 1696426674,
"narHash": "sha256-kvjfFW7WAETZlt09AgDn1MrtKzP7t90Vf7vypd3OL1U=",
"rev": "0f9255e01c2351cc7d116c072cb317785dd33b33",
"revCount": 57,
"type": "tarball",
"url": "https://api.flakehub.com/f/pinned/edolstra/flake-compat/1.0.1/018afb31-abd1-7bff-a5e4-cff7e18efb7a/source.tar.gz"
},
"original": {
"type": "tarball",
"url": "https://flakehub.com/f/edolstra/flake-compat/1.tar.gz"
}
},
"flake-compat_3": {
"flake": false,
"locked": {
"lastModified": 1696426674,
"narHash": "sha256-kvjfFW7WAETZlt09AgDn1MrtKzP7t90Vf7vypd3OL1U=",
"owner": "edolstra",
"repo": "flake-compat",
"rev": "0f9255e01c2351cc7d116c072cb317785dd33b33",
"type": "github"
},
"original": {
"owner": "edolstra",
"repo": "flake-compat",
"type": "github"
}
},
"flake-compat_4": {
"flake": false,
"locked": {
"lastModified": 1696426674,
@ -87,6 +117,24 @@
"type": "github"
}
},
"grub2-themes": {
"inputs": {
"nixpkgs": "nixpkgs"
},
"locked": {
"lastModified": 1730004881,
"narHash": "sha256-8xVIqIW25o2uCL0fxAmP4Sj9sdebarQXmd1+64yMe8o=",
"owner": "vinceliuice",
"repo": "grub2-themes",
"rev": "42c232dfb46bf93c17506cbc1a574e5e89b5e09f",
"type": "github"
},
"original": {
"owner": "vinceliuice",
"repo": "grub2-themes",
"type": "github"
}
},
"home-manager": {
"inputs": {
"nixpkgs": [
@ -144,7 +192,7 @@
"hyprlang": "hyprlang",
"hyprutils": "hyprutils",
"hyprwayland-scanner": "hyprwayland-scanner",
"nixpkgs": "nixpkgs",
"nixpkgs": "nixpkgs_2",
"pre-commit-hooks": "pre-commit-hooks",
"systems": "systems",
"xdph": "xdph"
@ -267,18 +315,37 @@
"type": "github"
}
},
"nixcord": {
"inputs": {
"flake-compat": "flake-compat_2",
"nixpkgs": "nixpkgs_3"
},
"locked": {
"lastModified": 1730107956,
"narHash": "sha256-Ohwk5/RGhGjDXaD4v0Yc40J/79gHRcD92mKWY+6qHJU=",
"owner": "kaylorben",
"repo": "nixcord",
"rev": "5dcb476b924ad08ffd8521cca812052605cb5974",
"type": "github"
},
"original": {
"owner": "kaylorben",
"repo": "nixcord",
"type": "github"
}
},
"nixpkgs": {
"locked": {
"lastModified": 1729413321,
"narHash": "sha256-I4tuhRpZFa6Fu6dcH9Dlo5LlH17peT79vx1y1SpeKt0=",
"lastModified": 1730370246,
"narHash": "sha256-UD2XmS6IWT+G/scUpPItb0dNijT5Dxa7WMuVqRhiaxU=",
"owner": "NixOS",
"repo": "nixpkgs",
"rev": "1997e4aa514312c1af7e2bda7fad1644e778ff26",
"rev": "88f31ac8837ab15748102da8bbc6e96a9330be0d",
"type": "github"
},
"original": {
"owner": "NixOS",
"ref": "nixos-unstable",
"ref": "master",
"repo": "nixpkgs",
"type": "github"
}
@ -300,6 +367,38 @@
}
},
"nixpkgs_2": {
"locked": {
"lastModified": 1729413321,
"narHash": "sha256-I4tuhRpZFa6Fu6dcH9Dlo5LlH17peT79vx1y1SpeKt0=",
"owner": "NixOS",
"repo": "nixpkgs",
"rev": "1997e4aa514312c1af7e2bda7fad1644e778ff26",
"type": "github"
},
"original": {
"owner": "NixOS",
"ref": "nixos-unstable",
"repo": "nixpkgs",
"type": "github"
}
},
"nixpkgs_3": {
"locked": {
"lastModified": 1730170245,
"narHash": "sha256-PRq4vJjDa+m1mNwkV9H7zVzMhuMqsHJrTGx0iJZ0e0w=",
"owner": "NixOS",
"repo": "nixpkgs",
"rev": "30c9efeef01e2ad4880bff6a01a61dd99536b3c9",
"type": "github"
},
"original": {
"owner": "NixOS",
"ref": "nixpkgs-unstable",
"repo": "nixpkgs",
"type": "github"
}
},
"nixpkgs_4": {
"locked": {
"lastModified": 1729413321,
"narHash": "sha256-I4tuhRpZFa6Fu6dcH9Dlo5LlH17peT79vx1y1SpeKt0=",
@ -315,6 +414,22 @@
"type": "github"
}
},
"nixpkgs_5": {
"locked": {
"lastModified": 1727634051,
"narHash": "sha256-S5kVU7U82LfpEukbn/ihcyNt2+EvG7Z5unsKW9H/yFA=",
"owner": "nixos",
"repo": "nixpkgs",
"rev": "06cf0e1da4208d3766d898b7fdab6513366d45b9",
"type": "github"
},
"original": {
"owner": "nixos",
"ref": "nixos-unstable",
"repo": "nixpkgs",
"type": "github"
}
},
"pre-commit-hooks": {
"inputs": {
"flake-compat": "flake-compat",
@ -341,15 +456,18 @@
},
"root": {
"inputs": {
"grub2-themes": "grub2-themes",
"home-manager": "home-manager",
"hyprland": "hyprland",
"nixpkgs": "nixpkgs_2",
"spicetify-nix": "spicetify-nix"
"nixcord": "nixcord",
"nixpkgs": "nixpkgs_4",
"spicetify-nix": "spicetify-nix",
"swww": "swww"
}
},
"spicetify-nix": {
"inputs": {
"flake-compat": "flake-compat_2",
"flake-compat": "flake-compat_3",
"nixpkgs": [
"nixpkgs"
]
@ -368,6 +486,26 @@
"type": "github"
}
},
"swww": {
"inputs": {
"flake-compat": "flake-compat_4",
"nixpkgs": "nixpkgs_5",
"utils": "utils"
},
"locked": {
"lastModified": 1730050836,
"narHash": "sha256-6xCp6rTJ5MWxfUXUYxWRZz1CA5V9/gGqgb0+34BMF6U=",
"owner": "LGFae",
"repo": "swww",
"rev": "36808dfd90223e648fcc45075ca57392b3d6a297",
"type": "github"
},
"original": {
"owner": "LGFae",
"repo": "swww",
"type": "github"
}
},
"systems": {
"locked": {
"lastModified": 1689347949,
@ -383,6 +521,39 @@
"type": "github"
}
},
"systems_2": {
"locked": {
"lastModified": 1681028828,
"narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=",
"owner": "nix-systems",
"repo": "default",
"rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e",
"type": "github"
},
"original": {
"owner": "nix-systems",
"repo": "default",
"type": "github"
}
},
"utils": {
"inputs": {
"systems": "systems_2"
},
"locked": {
"lastModified": 1726560853,
"narHash": "sha256-X6rJYSESBVr3hBoH0WbKE5KvhPU5bloyZ2L4K60/fPQ=",
"owner": "numtide",
"repo": "flake-utils",
"rev": "c1dfcf08411b08f6b8615f7d8971a2bfa81d5e8a",
"type": "github"
},
"original": {
"owner": "numtide",
"repo": "flake-utils",
"type": "github"
}
},
"xdph": {
"inputs": {
"hyprland-protocols": [

View file

@ -13,9 +13,21 @@
url = "github:Gerg-L/spicetify-nix";
inputs.nixpkgs.follows = "nixpkgs";
};
#stylix.url = "github:danth/stylix";
nixcord = {
url = "github:kaylorben/nixcord";
};
grub2-themes = {
url = "github:vinceliuice/grub2-themes";
};
# is this necessary? (aren't I enabling it in `configuration.nix` anyways?)
hyprland.url = "github:hyprwm/Hyprland";
swww.url = "github:LGFae/swww";
};
outputs = {
@ -23,11 +35,12 @@
nixpkgs,
home-manager,
hyprland,
grub2-themes,
#stylix,
...
}@inputs:
let
system = "x86_64-linux";
#system = pkgs.stdenv.hostPlatform.system;
pkgs = import nixpkgs {
inherit system;
@ -48,7 +61,8 @@
modules = [
./hosts/myputer
#home-manager.nixosModules.default
grub2-themes.nixosModules.default
#stylix.nixosModules.stylix
];
};

View file

@ -13,8 +13,9 @@
};
imports = [
# inputs.nixcord.homeManagerModules.nixcord
# inputs.spicetify-nix.homeManagerModules.default
#./wofi.nix
# ./wofi.nix
];
/*
@ -34,6 +35,25 @@
};
*/
# ----- STYLIX -----
#stylix = {
# enable = true;
#
# image = pkgs.fetchurl {
# url = "https://www.pixelstalk.net/wp-content/uploads/2016/05/Epic-Anime-Awesome-Wallpapers.jpg";
# sha256 = "enQo3wqhgf0FEPHj2coOCvo7DuZv+x5rL/WIo4qPI50=";
# };
#
# # Stylix will automatically theme applications
# autoEnable = true;
# targets = {
# # disable Stylix's themes for ones I will theme manually
# firefox.enable = false;
# wofi.enable = false;
# };
#};
home = {
username = "me";
homeDirectory = "/home/me";
@ -42,18 +62,58 @@
programs = {
# these are both required for home-manager to work
home-manager.enable = true;
git.enable = true;
git = {
enable = true;
userName = "emileclarkb";
userEmail = "eclarkboman@gmail.com";
};
# like `/bin/cat` but with syntax highlighting
# TODO: change the pager (maybe use Github:sachaos/viddy instead)
bat = {
enable = true;
config = {
pager = "less -FR";
theme = "Dracula";
# let Stylix control the theme
#theme = "Dracula";
};
};
firefox = {
enable = true;
policies = {
#BlockAboutConfig = true;
DefaultDownloadDirectory = "\${home}/downloads";
};
};
# I want to use fish as my login shell but it always
# goes terrible cause it isn't POSIX compliant, so
# instead Bash is my login and it will just exec fish
#bash = {
# interactiveShellInit = ''
# if [[ $(${pkgs.procps}/bin/ps --no-header --pid=$PPID --format=comm) != "fish" && -z ''${BASH_EXECUTION_STRING} ]]
# then
# shopt -q login_shell && LOGIN_OPTION='--login' || LOGIN_OPTION=""
# exec ${pkgs.fish}/bin/fish $LOGIN_OPTION
# fi
# '';
#};
fish = {
enable = true;
interactiveShellInit = ''
set -g fish_greeting "Welcome weary traveler to my shop"
'';
plugins = [
{
name = "grc";
src = pkgs.fishPlugins.grc.src;
}
];
};
/*
spicetify =
let
@ -88,7 +148,7 @@
# lines = (accumulated scroll * multiplier / divider)
scroll = {
multiplier = 1.0;
multiplier = 3.0;
divider = 1.0;
};
@ -141,7 +201,8 @@
allow_markup = true;
width = 250;
};
style = ''
# Force the style to stop Stylix being a bitch and overwriting it
style = lib.mkForce ''
@define-color rosewater #f2d5cf;
@define-color rosewater-rgb rgb(242, 213, 207);
@define-color flamingo #eebebe;
@ -309,13 +370,19 @@
}
'';
};
rofi = {
enable = true;
package = pkgs.rofi-wayland;
font = "JetBrains Mono Nerd Font 10";
location = "center";
terminal = "${pkgs.rio}/bin/rio";
};
};
# Nicely reload system units when changing configs
systemd.user.startServices = "sd-switch";
home.stateVersion = "24.05"; # don't change this
# ----- SERVICES -----
services = {
# Change monitor positions
# TODO: find a way to make this modular (ie put something different for my laptop)
@ -353,4 +420,10 @@
];
};
};
# Nicely reload system units when changing configs
systemd.user.startServices = "sd-switch";
home.stateVersion = "24.05"; # don't change this
}

207
homes/me/default.nix.bak Normal file
View file

@ -0,0 +1,207 @@
{
inputs,
outputs,
lib,
config,
pkgs,
...
}:
{
nixpkgs = {
config.allowUnfree = true;
};
imports = [
# inputs.spicetify-nix.homeManagerModules.default
#./wofi.nix
];
/*
programs.spicetify =
let
spicePkgs = inputs.spicetify-nix.legacyPackages.${pkgs.system};
in
{
enable = true;
enabledExtensions = with spicePkgs.extensions; [
adblock
hidePodcasts
shuffle # shuffle+ (special characters are sanitized out of extension names)
];
theme = spicePkgs.themes.catppuccin;
colorScheme = "mocha";
};
*/
#wayland.windowManager.hyprland.enable = true;
home = {
username = "me";
homeDirectory = "/home/me";
};
programs = {
# these are both required for home-manager to work
home-manager.enable = true;
git.enable = true;
# like `/bin/cat` but with syntax highlighting
# TODO: change the pager (maybe use Github:sachaos/viddy instead)
bat = {
enable = true;
config = {
pager = "less -FR";
#theme = "Dracula";
};
};
/*
spicetify =
let
spicePkgs = inputs.spicetify-nix.legacyPackages.${pkgs.system};
in
{
enable = true;
enabledExtensions = with spicePkgs.extensions; [
adblock
hidePodcasts
#shuffle
];
theme = spicePkgs.themes.catppuccin;
colorScheme = "mocha";
};
*/
# The terminal I use
# TODO: this is dependent on nvim being installed
# TODO: make this into a module with a configurable editor option
rio = {
enable = true;
# Rio Config Docs: https://raphamorim.io/rio/docs/config
settings = {
theme = "dracula";
hide-mouse-cursor-when-typing = true;
use-fork = true; # fork (dont spawn) Rio
padding-x = 10;
padding-y = [ 15 10 ]; # top, left
# lines = (accumulated scroll * multiplier / divider)
scroll = {
multiplier = 1.0;
divider = 1.0;
};
fonts = {
size = 15;
features = [];
regular = {
family = "FiraCode Nerd Font"; # "IosevkaTerm Nerd Font"
style = "Normal";
weight = 400;
};
bold = {
family = "FiraCode Nerd Font";
style = "Normal";
weight = 800;
};
italic = {
family = "FiraCode Nerd Font";
style = "Italic";
weight = 400;
};
bold-italic = {
family = "FiraCode Nerd Font";
style = "Italic";
weight = 800;
};
};
# Run when the `OpenConfigEditor` keybinding is triggered
editor = {
program = "nvim";
args = [];
};
renderer = {
performance = "High";
backend = "Automatic"; # Vulkan
};
};
};
wofi = {
enable = true;
settings = {
location = "center";
allow_markup = true;
width = 250;
};
};
};
# ----- SERVICES -----
services = {
# Hyprland Wallpaper
#hyprpaper = {
# enable = true;
# settings = {
# preload = [ "~/nixdots/wallpapers/ghibli-esque-valley.png" ];
# wallpaper = [
# "DP-2,~/nixdots/wallpapers/ghibli-esque-valley.png"
# "HDMI-A-1,~/nixdots/wallpapers/ghibli-esque-valley.png"
# ];
# };
#};
hyprpaper.enable = true; # so stylix can see it
# Change monitor positions
# TODO: find a way to make this modular (ie put something different for my laptop)
# my idea is to have a "monitors" module and use kanshi for wayland
kanshi = {
enable = true;
systemdTarget = "hyprland-session.target";
# You can find your monitors in hyprland by using `hyprctl monitors all`
settings = [
{ # 1920x1080@144 gaming monitor
output.criteria = "HDMI-A-1";
output.mode = "1920x1080@119.98Hz";
output.scale = 1.0;
output.adaptiveSync = false; # Variable Refresh Rate (this can be changed for gaming)
}
{ # 4k side monitor
output.criteria = "DP-2";
output.mode = "3840x2160@60.00Hz";
output.scale = 2.0;
}
{ # This is my default setup
profile.name = "default";
profile.outputs = [
{
criteria = "DP-2";
position = "0,0";
}
{
criteria = "HDMI-A-1";
position = "3840,0";
}
];
}
];
};
};
# Nicely reload system units when changing configs
systemd.user.startServices = "sd-switch";
home.stateVersion = "24.05"; # don't change this
}

410
homes/me/default.nix.bak13 Normal file
View file

@ -0,0 +1,410 @@
{
inputs,
outputs,
lib,
config,
pkgs,
...
}:
{
nixpkgs = {
config.allowUnfree = true;
};
imports = [
#inputs.nixcord.homeManagerModules.nixcord
# inputs.spicetify-nix.homeManagerModules.default
#./wofi.nix
];
/*
programs.spicetify =
let
spicePkgs = inputs.spicetify-nix.legacyPackages.${pkgs.system};
in
{
enable = true;
enabledExtensions = with spicePkgs.extensions; [
adblock
hidePodcasts
shuffle # shuffle+ (special characters are sanitized out of extension names)
];
theme = spicePkgs.themes.catppuccin;
colorScheme = "mocha";
};
*/
# ----- STYLIX -----
#stylix = {
# enable = true;
#
# image = pkgs.fetchurl {
# url = "https://www.pixelstalk.net/wp-content/uploads/2016/05/Epic-Anime-Awesome-Wallpapers.jpg";
# sha256 = "enQo3wqhgf0FEPHj2coOCvo7DuZv+x5rL/WIo4qPI50=";
# };
#
# # Stylix will automatically theme applications
# autoEnable = true;
# targets = {
# # disable Stylix's themes for ones I will theme manually
# firefox.enable = false;
# wofi.enable = false;
# };
#};
home = {
username = "me";
homeDirectory = "/home/me";
};
programs = {
# these are both required for home-manager to work
home-manager.enable = true;
git.enable = true;
# like `/bin/cat` but with syntax highlighting
# TODO: change the pager (maybe use Github:sachaos/viddy instead)
bat = {
enable = true;
config = {
pager = "less -FR";
# let Stylix control the theme
#theme = "Dracula";
};
};
firefox = {
enable = true;
policies = {
#BlockAboutConfig = true;
DefaultDownloadDirectory = "\${home}/downloads";
};
};
/*
spicetify =
let
spicePkgs = inputs.spicetify-nix.legacyPackages.${pkgs.system};
in
{
enable = true;
enabledExtensions = with spicePkgs.extensions; [
adblock
hidePodcasts
#shuffle
];
theme = spicePkgs.themes.catppuccin;
colorScheme = "mocha";
};
*/
# The terminal I use
# TODO: this is dependent on nvim being installed
# TODO: make this into a module with a configurable editor option
rio = {
enable = true;
# Rio Config Docs: https://raphamorim.io/rio/docs/config
settings = {
theme = "dracula";
hide-mouse-cursor-when-typing = true;
use-fork = true; # fork (dont spawn) Rio
padding-x = 10;
padding-y = [ 15 10 ]; # top, left
# lines = (accumulated scroll * multiplier / divider)
scroll = {
multiplier = 3.0;
divider = 1.0;
};
fonts = {
size = 15;
features = [];
regular = {
family = "FiraCode Nerd Font"; # "IosevkaTerm Nerd Font"
style = "Normal";
weight = 400;
};
bold = {
family = "FiraCode Nerd Font";
style = "Normal";
weight = 800;
};
italic = {
family = "FiraCode Nerd Font";
style = "Italic";
weight = 400;
};
bold-italic = {
family = "FiraCode Nerd Font";
style = "Italic";
weight = 800;
};
};
# Run when the `OpenConfigEditor` keybinding is triggered
editor = {
program = "nvim";
args = [];
};
renderer = {
performance = "High";
backend = "Automatic"; # Vulkan
};
};
};
wofi = {
enable = true;
settings = {
location = "center";
allow_markup = true;
width = 250;
};
# Force the style to stop Stylix being a bitch and overwriting it
style = lib.mkForce ''
@define-color rosewater #f2d5cf;
@define-color rosewater-rgb rgb(242, 213, 207);
@define-color flamingo #eebebe;
@define-color flamingo-rgb rgb(238, 190, 190);
@define-color pink #f4b8e4;
@define-color pink-rgb rgb(244, 184, 228);
@define-color mauve #ca9ee6;
@define-color mauve-rgb rgb(202, 158, 230);
@define-color red #e78284;
@define-color red-rgb rgb(231, 130, 132);
@define-color maroon #ea999c;
@define-color maroon-rgb rgb(234, 153, 156);
@define-color peach #ef9f76;
@define-color peach-rgb rgb(239, 159, 118);
@define-color yellow #e5c890;
@define-color yellow-rgb rgb(229, 200, 144);
@define-color green #a6d189;
@define-color green-rgb rgb(166, 209, 137);
@define-color teal #81c8be;
@define-color teal-rgb rgb(129, 200, 190);
@define-color sky #99d1db;
@define-color sky-rgb rgb(153, 209, 219);
@define-color sapphire #85c1dc;
@define-color sapphire-rgb rgb(133, 193, 220);
@define-color blue #8caaee;
@define-color blue-rgb rgb(140, 170, 238);
@define-color lavender #babbf1;
@define-color lavender-rgb rgb(186, 187, 241);
@define-color text #c6d0f5;
@define-color text-rgb rgb(198, 208, 245);
@define-color subtext1 #b5bfe2;
@define-color subtext1-rgb rgb(181, 191, 226);
@define-color subtext0 #a5adce;
@define-color subtext0-rgb rgb(165, 173, 206);
@define-color overlay2 #949cbb;
@define-color overlay2-rgb rgb(148, 156, 187);
@define-color overlay1 #838ba7;
@define-color overlay1-rgb rgb(131, 139, 167);
@define-color overlay0 #737994;
@define-color overlay0-rgb rgb(115, 121, 148);
@define-color surface2 #626880;
@define-color surface2-rgb rgb(98, 104, 128);
@define-color surface1 #51576d;
@define-color surface1-rgb rgb(81, 87, 109);
@define-color surface0 #414559;
@define-color surface0-rgb rgb(65, 69, 89);
@define-color base #303446;
@define-color base-rgb rgb(48, 52, 70);
@define-color mantle #292c3c;
@define-color mantle-rgb rgb(41, 44, 60);
@define-color crust #232634;
@define-color crust-rgb rgb(35, 38, 52);
* {
font-family: 'FiraCode Nerd Font';
font-size: 16px;
}
/* Window */
window {
margin: 0px;
padding: 10px;
border: 0.16em solid @teal;
border-radius: 0.5em;
background-color: @base;
animation: slideIn 0.25s ease-in-out both;
}
/* Slide In */
@keyframes slideIn {
0% {
opacity: 0;
}
100% {
opacity: 1;
}
}
/* Inner Box */
#inner-box {
margin: 5px;
padding: 10px;
border: none;
background-color: @base;
/*animation: fadeIn 0.5s ease-in-out both;*/
}
/* Fade In */
@keyframes fadeIn {
0% {
opacity: 0;
}
100% {
opacity: 1;
}
}
/* Outer Box */
#outer-box {
margin: 5px;
padding: 10px;
border: none;
background-color: @base;
}
/* Scroll */
#scroll {
margin: 0px;
padding: 10px;
border: none;
background-color: @base;
}
/* Input */
#input {
margin: 5px 20px;
padding: 10px;
border: none;
border-radius: 0.25em;
color: @text;
background-color: @base;
animation: fadeIn 0.25s ease-in-out both;
}
#input image {
border: none;
color: @red;
}
#input * {
outline: 4px solid @red!important;
}
/* Text */
#text {
margin: 5px;
border: none;
color: @text;
animation: fadeIn 0.5s ease-in-out both;
}
#entry {
background-color: @base;
}
#entry arrow {
border: none;
color: @teal;
}
/* Selected Entry */
#entry:selected {
border: 0.10em solid @teal;
border-radius: 0.25em;
}
#entry:selected #text {
color: @teal;
}
#entry:drop(active) {
background-color: @lavender!important;
}
'';
};
rofi = {
enable = true;
package = pkgs.rofi-wayland;
font = "JetBrains Mono Nerd Font 10";
location = "center";
terminal = "${pkgs.rio}/bin/rio";
};
};
# ----- SERVICES -----
services = {
# Hyprland Wallpaper
#hyprpaper = {
# enable = true;
# settings = {
# preload = [ "/home/me/nixdots/wallpapers/wall.png" ];
# wallpaper = [
# "DP-2,/home/me/nixdots/wallpapers/wall.png"
# "HDMI-A-1,/home/me/nixdots/wallpapers/wall.png"
# ];
# };
#};
# Change monitor positions
# TODO: find a way to make this modular (ie put something different for my laptop)
# my idea is to have a "monitors" module and use kanshi for wayland
kanshi = {
enable = true;
systemdTarget = "hyprland-session.target";
# You can find your monitors in hyprland by using `hyprctl monitors all`
settings = [
{ # 1920x1080@144 gaming monitor
output.criteria = "HDMI-A-1";
output.mode = "1920x1080@119.98Hz";
output.scale = 1.0;
output.adaptiveSync = false; # Variable Refresh Rate (this can be changed for gaming)
}
{ # 4k side monitor
output.criteria = "DP-2";
output.mode = "3840x2160@60.00Hz";
output.scale = 2.0;
}
{ # This is my default setup
profile.name = "default";
profile.outputs = [
{
criteria = "DP-2";
position = "0,0";
}
{
criteria = "HDMI-A-1";
position = "3840,0";
}
];
}
];
};
};
# Nicely reload system units when changing configs
systemd.user.startServices = "sd-switch";
home.stateVersion = "24.05"; # don't change this
}

209
homes/me/theme.rasi Normal file
View file

@ -0,0 +1,209 @@
/**
*
* Author : Aditya Shakya (adi1090x)
* Github : @adi1090x
*
* Rofi Theme File
* Rofi Version: 1.7.3
**/
/*****----- Configuration -----*****/
configuration {
modi: "drun,run,filebrowser,window";
show-icons: true;
display-drun: "APPS";
display-run: "RUN";
display-filebrowser: "FILES";
display-window: "WINDOW";
drun-display-format: "{name}";
window-format: "{w} · {c} · {t}";
}
/*****----- Global Properties -----*****/
* {
font: "JetBrains Mono Nerd Font 10";
background: #11092D;
background-alt: #281657;
foreground: #FFFFFF;
selected: #DF5296;
active: #6E77FF;
urgent: #8E3596;
}
/*****----- Main Window -----*****/
window {
/* properties for window widget */
transparency: "real";
location: center;
anchor: center;
fullscreen: false;
width: 1000px;
x-offset: 0px;
y-offset: 0px;
/* properties for all widgets */
enabled: true;
border-radius: 15px;
cursor: "default";
background-color: @background;
}
/*****----- Main Box -----*****/
mainbox {
enabled: true;
spacing: 0px;
background-color: transparent;
orientation: horizontal;
children: [ "imagebox", "listbox" ];
}
imagebox {
padding: 20px;
background-color: transparent;
background-image: url("~/.config/rofi/images/j.jpg", height);
orientation: vertical;
children: [ "inputbar", "dummy", "mode-switcher" ];
}
listbox {
spacing: 20px;
padding: 20px;
background-color: transparent;
orientation: vertical;
children: [ "message", "listview" ];
}
dummy {
background-color: transparent;
}
/*****----- Inputbar -----*****/
inputbar {
enabled: true;
spacing: 10px;
padding: 15px;
border-radius: 10px;
background-color: @background-alt;
text-color: @foreground;
children: [ "textbox-prompt-colon", "entry" ];
}
textbox-prompt-colon {
enabled: true;
expand: false;
str: "";
background-color: inherit;
text-color: inherit;
}
entry {
enabled: true;
background-color: inherit;
text-color: inherit;
cursor: text;
placeholder: "Search";
placeholder-color: inherit;
}
/*****----- Mode Switcher -----*****/
mode-switcher{
enabled: true;
spacing: 20px;
background-color: transparent;
text-color: @foreground;
}
button {
padding: 15px;
border-radius: 10px;
background-color: @background-alt;
text-color: inherit;
cursor: pointer;
}
button selected {
background-color: @selected;
text-color: @foreground;
}
/*****----- Listview -----*****/
listview {
enabled: true;
columns: 1;
lines: 8;
cycle: true;
dynamic: true;
scrollbar: false;
layout: vertical;
reverse: false;
fixed-height: true;
fixed-columns: true;
spacing: 10px;
background-color: transparent;
text-color: @foreground;
cursor: "default";
}
/*****----- Elements -----*****/
element {
enabled: true;
spacing: 15px;
padding: 8px;
border-radius: 10px;
background-color: transparent;
text-color: @foreground;
cursor: pointer;
}
element normal.normal {
background-color: inherit;
text-color: inherit;
}
element normal.urgent {
background-color: @urgent;
text-color: @foreground;
}
element normal.active {
background-color: @active;
text-color: @foreground;
}
element selected.normal {
background-color: @selected;
text-color: @foreground;
}
element selected.urgent {
background-color: @urgent;
text-color: @foreground;
}
element selected.active {
background-color: @urgent;
text-color: @foreground;
}
element-icon {
background-color: transparent;
text-color: inherit;
size: 32px;
cursor: inherit;
}
element-text {
background-color: transparent;
text-color: inherit;
cursor: inherit;
vertical-align: 0.5;
horizontal-align: 0.0;
}
/*****----- Message -----*****/
message {
background-color: transparent;
}
textbox {
padding: 15px;
border-radius: 10px;
background-color: @background-alt;
text-color: @foreground;
vertical-align: 0.5;
horizontal-align: 0.0;
}
error-message {
padding: 15px;
border-radius: 20px;
background-color: @background;
text-color: @foreground;
}

View file

@ -36,19 +36,19 @@ in
# Use the systemd-boot EFI boot loader.
# TODO: use GRUB2 instead
boot.loader.systemd-boot.enable = true;
boot.loader.efi.canTouchEfiVariables = true;
#boot.loader = {
# efi = {
# canTouchEfiVariables = true;
# efiSysMountPoint = "/boot/efi";
# };
# grub = {
# efiSupport = true;
# #efiInstallAsRemovable = true; # in case canTouchEfiVariables doesn't work on this system
# device = "nodev";
# };
#};
#boot.loader.systemd-boot.enable = true;
#boot.loader.efi.canTouchEfiVariables = true;
boot.loader = {
efi = {
canTouchEfiVariables = true;
efiSysMountPoint = "/boot/efi";
};
grub = {
efiSupport = true;
#efiInstallAsRemovable = true; # in case canTouchEfiVariables doesn't work on this system
device = "nodev";
};
};
# Set your time zone.
time.timeZone = "Australia/Brisbane";
@ -97,6 +97,10 @@ in
};
users = {
# using fish as the login shell tends
# to go very poorly because it isn't
# POSIX compliant, so we'll just use
# simple Bash then :)
defaultUserShell = pkgs.bash;
users = {
@ -104,7 +108,7 @@ in
me = {
isNormalUser = true;
extraGroups = [ "wheel" ];
shell = pkgs.fish;
shell = pkgs.bash; #pkgs.fish
packages = with pkgs; [
firefox
nitch
@ -117,7 +121,7 @@ in
dev = {
isNormalUser = true;
extraGroups = [ "wheel" ];
shell = pkgs.zsh;
shell = pkgs.bash; #pkgs.zsh
packages = with pkgs; [
];
};
@ -126,7 +130,7 @@ in
ae = {
isNormalUser = true;
extraGroups = [ "wheel" ];
shell = pkgs.fish;
shell = pkgs.bash; #pkgs.fish
packages = with pkgs; [
];
};
@ -137,29 +141,44 @@ in
# ---- SYSTEM PACKAGES -----
environment.systemPackages = with pkgs; [
# Applications
#kitty (switched to Rio)
vesktop
# User Environment
inputs.swww.packages.${pkgs.system}.swww
#vesktop
helvum
easyeffects
ani-cli
wl-clipboard # clipboard for wayland
python310 # I use 3.10 since it's in a pretty stable state now
# fish plugins
grc # colorise command outputs
# Pretty necessary
#vim
git
# Super duper necessary
# Unix Commands
wget
tree
];
# Enable the use of certain programs
programs = {
hyprland.enable = true;
fish.enable = true;
zsh.enable = true;
hyprland = {
enable = true;
# set the flake package
package = inputs.hyprland.packages.${pkgs.stdenv.hostPlatform.system}.hyprland;
# make sure to also set the portal package, so that they are in sync
portalPackage = inputs.hyprland.packages.${pkgs.stdenv.hostPlatform.system}.xdg-desktop-portal-hyprland;
git.enable = true;
xwayland.enable = true;
#systemd.enable = true;
};
zsh.enable = true;
fish.enable = true;
neovim = {
enable = true;
@ -172,9 +191,21 @@ in
set tabstop=4
set shiftwidth=4
'';
# set cc=80
};
};
# I want to use fish as my login shell but it always goes terrible
# cause it isn't POSIX compliant, so instead Bash is my login and
# will just exec fish (^-^)
bash = {
interactiveShellInit = ''
if [[ $(${pkgs.procps}/bin/ps --no-header --pid=$PPID --format=comm) != "fish" && -z ''${BASH_EXECUTION_STRING} ]]
then
shopt -q login_shell && LOGIN_OPTION='--login' || LOGIN_OPTION=""
exec ${pkgs.fish}/bin/fish $LOGIN_OPTION
fi
'';
};
};
@ -188,6 +219,7 @@ in
"IosevkaTerm" # big nah
"CascadiaCode" # potential
"FiraCode" # potential
"JetBrainsMono" # for my rofi theme
"Hasklig"
"Hack"]; })
@ -206,6 +238,21 @@ in
};
# ----- STYLIX -----
#stylix = {
# enable = true;
# image = pkgs.fetchurl {
# url = "https://www.pixelstalk.net/wp-content/uploads/2016/05/Epic-Anime-Awesome-Wallpapers.jpg";
# sha256 = "enQo3wqhgf0FEPHj2coOCvo7DuZv+x5rL/WIo4qPI50=";
# };
#
# # Stylix will automatically theme applications
# #autoEnable = true;
# #image = ../../wallpapers/wall.png;
# #image = "/home/me/nixdots/wallpapers/ghibli-esque-valley.png";
#};
# Enable the new CLI commands and the flakes as experimental features
@ -225,6 +272,13 @@ in
# Enable the OpenSSH daemon.
# services.openssh.enable = true;
# Enable OpenGL
hardware = {
graphics.enable = true;
};
# DO NOT MODIFY
system.stateVersion = "24.05"; # Did you read the comment?

View file

@ -18,7 +18,8 @@
fsType = "ext4";
};
fileSystems."/boot" =
#fileSystems."/boot" = # BIOS
fileSystems."/boot" = # UEFI
{ device = "/dev/disk/by-uuid/7046-177A";
fsType = "vfat";
options = [ "fmask=0077" "dmask=0077" ];

View file

@ -0,0 +1,15 @@
{...}:
{
boot.loader = {
efi = {
canTouchEfiVariables = true;
efiSysMountPoint = "/boot/efi";
};
grub = {
efiSupport = true;
#efiInstallAsRemovable = true; # in case canTouchEfiVariables doesn't work on your system
device = "nodev";
};
};
}

View file

@ -0,0 +1,8 @@
{...}:
{
boot.loader = {
systemd-boot.enable = true;
efi.canTouchEfiVariables = true;
};
}

View file

@ -0,0 +1,29 @@
{
lib,
pkgs,
config,
inputs,
outputs,
...
}:
{
imports = [
inputs.nixcord.homeManagerModules.nixcord
];
programs.nixcord = {
enable = true;
config = {
themeLinks = [
""
];
# no surrounding window frame
frameless = true;
plugins = {
};
};
};
}

7
typescript Normal file
View file

@ -0,0 +1,7 @@
Script started on 2024-11-02 18:26:40+10:00 [TERM="rio" TTY="/dev/pts/1" COLUMNS="162" LINES="70"]
You need to install grc!
Welcome weary traveler mmm mm mmm to my shop
[?2004h]0;~/nixdots(B me(B@myputer(B:~/nixdots(B|main⚡*(B?(B
(B e xit exit xit it t  exit  
(B[?2004l]0;exit ~/nixdots(B (B(B[?2004l
Script done on 2024-11-02 18:26:46+10:00 [COMMAND_EXIT_CODE="0"]