added nixcord, thunar, and formatted various files
This commit is contained in:
parent
be6926fb0f
commit
b43c9b53ba
9 changed files with 449 additions and 107 deletions
|
|
@ -68,7 +68,8 @@ If their colour scheme was a little less white I'd love it but overall one of my
|
|||
### Wallpaper Sources
|
||||
1. https://www.wallpaperflare.com/
|
||||
2. https://alphacoders.com
|
||||
specifically: https://alphacoders.com/lofi
|
||||
especially this one person: https://alphacoders.com/users/profile/69089/robokoboto
|
||||
and also the lofi category: https://alphacoders.com/lofi
|
||||
|
||||
|
||||
### Credits
|
||||
|
|
|
|||
74
TODO
Normal file
74
TODO
Normal file
|
|
@ -0,0 +1,74 @@
|
|||
Get Utilities:
|
||||
1. httpie
|
||||
2. curlie
|
||||
3. zoxide
|
||||
4. doggo
|
||||
|
||||
1. Get helix editor
|
||||
2. Custom helix
|
||||
3. Complete helix tutorial
|
||||
|
||||
Get nixcord working
|
||||
Get thunar working and configured
|
||||
|
||||
|
||||
Get waybar (or another bar) working
|
||||
|
||||
Bind new terminal to SUPER+Enter instead of SUPER+Q
|
||||
|
||||
Get a better wallpapers
|
||||
|
||||
Join Rio Terminal's discord and ask if they support nerdfonts or if I'm doing something wrong
|
||||
|
||||
Figure out how to modularise my dotfiles
|
||||
|
||||
Configure nixcord
|
||||
|
||||
|
||||
Change Dell loading screen (Boot Graphics Resource Table, aka BGRT)
|
||||
|
||||
|
||||
Get hyprcursor working with Bibata-Modern-Ice
|
||||
|
||||
Install and configure hyprland plugins like hyprlock
|
||||
|
||||
Get a GRUB theme working
|
||||
|
||||
Fix: your 131072x1 screen size is bogus. expect trouble
|
||||
|
||||
Are there plugins for helix?
|
||||
|
||||
|
||||
Push nixdots to github
|
||||
|
||||
Create a program that enables/disables passwordless sudo access
|
||||
(add to github too)
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
Have helix editor look differently depending on language
|
||||
(specifically don't show indent indicators when editing nix files
|
||||
|
||||
|
||||
Learn to package my own home-manager modules
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
Fork nixcord and fix documentation (the installation is confusing)
|
||||
But firstly the first code snippet is wrong...
|
||||
```nix
|
||||
inputs.nixcord = {
|
||||
url = "github:kaylorben/nixcord"
|
||||
};
|
||||
```
|
||||
Should actually be
|
||||
```nix
|
||||
inputs.nixcord = {
|
||||
url = "github:kaylorben/nixcord"; # dont forget the semicolon
|
||||
};
|
||||
```
|
||||
99
flake.nix
99
flake.nix
|
|
@ -16,14 +16,16 @@
|
|||
|
||||
#stylix.url = "github:danth/stylix";
|
||||
|
||||
nixcord = { url = "github:kaylorben/nixcord"; };
|
||||
nixcord = {
|
||||
url = "github:kaylorben/nixcord";
|
||||
};
|
||||
|
||||
nixvim = {
|
||||
url = "github:nix-community/nixvim";
|
||||
inputs.nixpkgs.follows = "nixpkgs";
|
||||
};
|
||||
|
||||
grub2-themes = { url = "github:vinceliuice/grub2-themes"; };
|
||||
grub2-themes = {url = "github:vinceliuice/grub2-themes";};
|
||||
|
||||
# is this necessary? (aren't I enabling it in `configuration.nix` anyways?)
|
||||
hyprland.url = "github:hyprwm/Hyprland";
|
||||
|
|
@ -31,53 +33,62 @@
|
|||
swww.url = "github:LGFae/swww";
|
||||
};
|
||||
|
||||
outputs = { self, nixpkgs, home-manager, hyprland, grub2-themes, nixvim
|
||||
, nixcord,
|
||||
outputs = {
|
||||
self,
|
||||
nixpkgs,
|
||||
home-manager,
|
||||
hyprland,
|
||||
grub2-themes,
|
||||
nixvim,
|
||||
nixcord,
|
||||
#stylix,
|
||||
... }@inputs:
|
||||
let
|
||||
system = "x86_64-linux";
|
||||
...
|
||||
} @ inputs: let
|
||||
system = "x86_64-linux";
|
||||
|
||||
pkgs = import nixpkgs {
|
||||
inherit system;
|
||||
config.allowUnfree = true;
|
||||
pkgs = import nixpkgs {
|
||||
inherit system;
|
||||
config.allowUnfree = true;
|
||||
};
|
||||
|
||||
# this is just something I'm experimenting with
|
||||
PROJECT_ROOT = builtins.toString ./.;
|
||||
in {
|
||||
nixosConfigurations = {
|
||||
# i be on my puter fr
|
||||
myputer = nixpkgs.lib.nixosSystem {
|
||||
# nix passes these to every single module above
|
||||
specialArgs = {inherit inputs pkgs;};
|
||||
|
||||
modules = [
|
||||
./hosts/myputer
|
||||
grub2-themes.nixosModules.default
|
||||
#stylix.nixosModules.stylix
|
||||
];
|
||||
};
|
||||
|
||||
# this is just something I'm experimenting with
|
||||
PROJECT_ROOT = builtins.toString ./.;
|
||||
# my laptop 0w0
|
||||
lolcathost = nixpkgs.lib.nixosSystem {
|
||||
specialArgs = {inherit inputs pkgs;};
|
||||
|
||||
in {
|
||||
nixosConfigurations = {
|
||||
# i be on my puter fr
|
||||
myputer = nixpkgs.lib.nixosSystem {
|
||||
# nix passes these to every single module above
|
||||
specialArgs = { inherit inputs pkgs; };
|
||||
|
||||
modules = [
|
||||
./hosts/myputer
|
||||
grub2-themes.nixosModules.default
|
||||
#stylix.nixosModules.stylix
|
||||
];
|
||||
};
|
||||
|
||||
# my laptop 0w0
|
||||
lolcathost = nixpkgs.lib.nixosSystem {
|
||||
specialArgs = { inherit inputs pkgs; };
|
||||
|
||||
modules = [ ./hosts/lolcathost ];
|
||||
};
|
||||
};
|
||||
|
||||
homeConfigurations = {
|
||||
me = home-manager.lib.homeManagerConfiguration {
|
||||
specialArgs = { inherit inputs; };
|
||||
|
||||
modules = [
|
||||
./home/me
|
||||
#nixcord.homeManagerModules.nixcord
|
||||
#nixvim.homeManagerModules.nixvim
|
||||
];
|
||||
};
|
||||
modules = [
|
||||
./hosts/lolcathost
|
||||
];
|
||||
};
|
||||
};
|
||||
|
||||
/*
|
||||
homeConfigurations = {
|
||||
me = home-manager.lib.homeManagerConfiguration {
|
||||
specialArgs = {inherit inputs;};
|
||||
|
||||
modules = [
|
||||
./home/me
|
||||
#nixcord.homeManagerModules.nixcord
|
||||
#nixvim.homeManagerModules.nixvim
|
||||
];
|
||||
};
|
||||
};
|
||||
*/
|
||||
};
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,31 +0,0 @@
|
|||
Get Utilities:
|
||||
1. httpie
|
||||
2. curlie
|
||||
3. zoxide
|
||||
4. doggo
|
||||
|
||||
1. Get helix editor
|
||||
2. Custom helix
|
||||
3. Complete helix tutorial
|
||||
|
||||
|
||||
|
||||
Get waybar (or another bar) working
|
||||
|
||||
|
||||
Get a better wallpaper
|
||||
|
||||
Get a GRUB theme working
|
||||
|
||||
Fix: your 131072x1 screen size is bogus. expect trouble
|
||||
|
||||
|
||||
Push nixdots to github
|
||||
|
||||
|
||||
|
||||
Have helix editor look differently depending on language
|
||||
(specifically don't show indent indicators when editing nix files
|
||||
|
||||
|
||||
Learn to package my own home-manager modules
|
||||
|
|
@ -236,7 +236,16 @@
|
|||
];
|
||||
};
|
||||
|
||||
#nixcord.enable = true;
|
||||
nixcord = {
|
||||
enable = true;
|
||||
config = {
|
||||
frameless = true;
|
||||
plugins = {
|
||||
# TODO: remove this plugin
|
||||
hideAttachments.enable = true;
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
firefox = {
|
||||
enable = true;
|
||||
|
|
|
|||
|
|
@ -48,6 +48,9 @@ in {
|
|||
console = {
|
||||
font = "Lat2-Terminus16";
|
||||
keyMap = "us";
|
||||
#packages = with pkgs; [
|
||||
# nerdfonts
|
||||
#];
|
||||
};
|
||||
|
||||
# ----- NETWORKING SECTION -----
|
||||
|
|
@ -81,6 +84,9 @@ in {
|
|||
|
||||
# Enable touchpad support
|
||||
libinput.enable = true;
|
||||
|
||||
tumbler.enable = true; # Thunar image thumbnail support
|
||||
gvfs.enable = true; # Thunar mount, trash, and other functionality
|
||||
};
|
||||
|
||||
# allow wheel group to use passwordless sudo
|
||||
|
|
@ -92,7 +98,7 @@ in {
|
|||
defaultUserShell = pkgs.bash;
|
||||
|
||||
users = {
|
||||
# just me fr (personal account)
|
||||
# literally me fr (personal account)
|
||||
me = {
|
||||
isNormalUser = true;
|
||||
extraGroups = ["wheel"];
|
||||
|
|
@ -128,7 +134,7 @@ in {
|
|||
home-manager = {
|
||||
users.me = import ../../homes/me;
|
||||
sharedModules = [
|
||||
#inputs.nixcord.homeManagerModules.nixcord
|
||||
inputs.nixcord.homeManagerModules.nixcord
|
||||
#inputs.nixvim.homeManagerModules.nixvim
|
||||
];
|
||||
};
|
||||
|
|
@ -180,22 +186,6 @@ in {
|
|||
zsh.enable = true;
|
||||
fish.enable = true;
|
||||
|
||||
neovim = {
|
||||
enable = true;
|
||||
defaultEditor = true;
|
||||
viAlias = true;
|
||||
vimAlias = true;
|
||||
configure = {
|
||||
customRC = ''
|
||||
set number
|
||||
set tabstop=4
|
||||
set shiftwidth=4
|
||||
|
||||
set mouse=a
|
||||
'';
|
||||
};
|
||||
};
|
||||
|
||||
# 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 (^-^)
|
||||
|
|
@ -208,24 +198,30 @@ in {
|
|||
fi
|
||||
'';
|
||||
};
|
||||
|
||||
# Thunar also uses: `services.tumbler` & `services.gvfs`
|
||||
thunar = {
|
||||
enable = true;
|
||||
plugins = with pkgs.xfce; [
|
||||
thunar-volman # for removable drives (ie USBs)
|
||||
thunar-archive-plugin # create and extract archives
|
||||
thunar-media-tags-plugin # change metadata for media files
|
||||
];
|
||||
};
|
||||
};
|
||||
|
||||
# ----- FONTS -----
|
||||
fonts = {
|
||||
enableDefaultPackages = true; # no clue what this line does tbh
|
||||
packages = with pkgs; [
|
||||
(nerdfonts.override {
|
||||
fonts = [
|
||||
"Cousine" # its already i guess
|
||||
"Iosevka" # nah nah
|
||||
"IosevkaTerm" # big nah
|
||||
"CascadiaCode" # potential
|
||||
"FiraCode" # potential
|
||||
"JetBrainsMono" # for my rofi theme
|
||||
"Hasklig"
|
||||
"Hack"
|
||||
];
|
||||
})
|
||||
#(nerdfonts.override {
|
||||
# fonts = [
|
||||
# "Cousine"
|
||||
# "Iosevka"
|
||||
# "JetBrainsMono"
|
||||
# ];
|
||||
# })
|
||||
nerdfonts
|
||||
|
||||
# texlive maintains a noto-emoji flake
|
||||
texlivePackages.noto-emoji
|
||||
|
|
|
|||
280
hosts/lolcathost/default.nix.bak
Executable file
280
hosts/lolcathost/default.nix.bak
Executable file
|
|
@ -0,0 +1,280 @@
|
|||
{
|
||||
pkgs,
|
||||
inputs,
|
||||
...
|
||||
}: let
|
||||
home-manager = builtins.fetchTarball {
|
||||
url = "https://github.com/nix-community/home-manager/archive/master.tar.gz";
|
||||
sha256 = "19w63qccz78v0spx03911z98w1bvlxvd07hb0ma14a4vdzi4ninj";
|
||||
};
|
||||
in {
|
||||
imports = [
|
||||
./hardware-configuration.nix
|
||||
(import "${home-manager}/nixos")
|
||||
inputs.spicetify-nix.nixosModules.default
|
||||
];
|
||||
|
||||
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";
|
||||
};
|
||||
|
||||
# Use the systemd-boot EFI boot loader.
|
||||
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";
|
||||
|
||||
# Select internationalisation properties.
|
||||
i18n.defaultLocale = "en_US.UTF-8";
|
||||
console = {
|
||||
font = "Lat2-Terminus16";
|
||||
keyMap = "us";
|
||||
console.packages = with pkgs; [
|
||||
nerdfonts
|
||||
];
|
||||
};
|
||||
|
||||
# ----- NETWORKING SECTION -----
|
||||
networking.hostName = "lolcathost";
|
||||
networking.networkmana
|
||||
|
||||
# Open ports in the fi
|
||||
# networking.firewall.allowedTCPPorts = [ ... ];
|
||||
# networking.firewall.allowedUDPPorts = [ ... ];
|
||||
# Or disable the firewall altogether.
|
||||
networking.firewall.enable = true;
|
||||
|
||||
# ----- SERVICES -----
|
||||
services = {
|
||||
# Set display manager (login screen)
|
||||
#displayManager = {
|
||||
# sddm = {
|
||||
# enable = true;
|
||||
# #theme = "${import ./sddm-theme.nix { inherit pkgs; }}";
|
||||
# wayland.enable = true; # enable experimental sddm support for wayland
|
||||
# };
|
||||
# defaultSession = "hyprland";
|
||||
#};
|
||||
|
||||
# Enable sound
|
||||
# TODO: use the modules/core/pipewire.nix module instead :)
|
||||
pipewire = {
|
||||
enable = true;
|
||||
pulse.enable = true;
|
||||
};
|
||||
|
||||
# Enable touchpad support
|
||||
libinput.enable = true;
|
||||
};
|
||||
|
||||
# allow wheel group to use passwordless sudo
|
||||
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 = {
|
||||
# just me fr (personal account)
|
||||
me = {
|
||||
isNormalUser = true;
|
||||
extraGroups = ["wheel"];
|
||||
shell = pkgs.bash; #pkgs.fish
|
||||
packages = with pkgs; [
|
||||
firefox
|
||||
nitch
|
||||
starfetch
|
||||
tldr
|
||||
];
|
||||
};
|
||||
|
||||
# programming/development account
|
||||
dev = {
|
||||
isNormalUser = true;
|
||||
extraGroups = ["wheel"];
|
||||
shell = pkgs.bash; #pkgs.zsh
|
||||
packages = with pkgs; [
|
||||
];
|
||||
};
|
||||
|
||||
# user for my professional jobs and stuff
|
||||
ae = {
|
||||
isNormalUser = true;
|
||||
extraGroups = ["wheel"];
|
||||
shell = pkgs.bash; #pkgs.fish
|
||||
packages = with pkgs; [
|
||||
];
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
home-manager = {
|
||||
users.me = import ../../homes/me;
|
||||
sharedModules = [
|
||||
#inputs.nixcord.homeManagerModules.nixcord
|
||||
#inputs.nixvim.homeManagerModules.nixvim
|
||||
];
|
||||
};
|
||||
|
||||
# ---- SYSTEM PACKAGES -----
|
||||
environment.systemPackages = with pkgs; [
|
||||
# User Environment
|
||||
inputs.swww.packages.${pkgs.system}.swww
|
||||
#vesktop
|
||||
helvum
|
||||
easyeffects
|
||||
ani-cli
|
||||
wl-clipboard # clipboard for wayland
|
||||
|
||||
python311 # I use 3.11 since it's in a pretty stable state now
|
||||
poetry # python dependency management and packaging
|
||||
|
||||
# fish plugins
|
||||
grc # colorise command outputs
|
||||
|
||||
httpie
|
||||
curlie
|
||||
zoxide
|
||||
doggo
|
||||
|
||||
# Pretty necessary
|
||||
git
|
||||
brightnessctl
|
||||
acpi
|
||||
|
||||
# Unix Commands
|
||||
wget
|
||||
tree
|
||||
];
|
||||
|
||||
# Enable the use of certain programs
|
||||
programs = {
|
||||
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;
|
||||
|
||||
xwayland.enable = true;
|
||||
#systemd.enable = true;
|
||||
};
|
||||
|
||||
zsh.enable = true;
|
||||
fish.enable = true;
|
||||
|
||||
neovim = {
|
||||
enable = true;
|
||||
defaultEditor = true;
|
||||
viAlias = true;
|
||||
vimAlias = true;
|
||||
configure = {
|
||||
customRC = ''
|
||||
set number
|
||||
set tabstop=4
|
||||
set shiftwidth=4
|
||||
|
||||
set mouse=a
|
||||
'';
|
||||
};
|
||||
};
|
||||
|
||||
# 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
|
||||
'';
|
||||
};
|
||||
};
|
||||
|
||||
# ----- FONTS -----
|
||||
fonts = {
|
||||
enableDefaultPackages = true; # no clue what this line does tbh
|
||||
packages = with pkgs; [
|
||||
(nerdfonts.override {
|
||||
fonts = [
|
||||
"Cousine"
|
||||
"Iosevka"
|
||||
];
|
||||
})
|
||||
|
||||
# texlive maintains a noto-emoji flake
|
||||
texlivePackages.noto-emoji
|
||||
];
|
||||
|
||||
fontconfig = {
|
||||
defaultFonts = {
|
||||
serif = ["Iosevka"]; # TODO: package Iosevka Etoile since Iosevka isn't a serif font
|
||||
sansSerif = ["Iosevka "];
|
||||
monospace = ["Cousine"];
|
||||
emoji = ["Noto Emoji"];
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
# ----- 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
|
||||
nix.settings.experimental-features = [
|
||||
"nix-command"
|
||||
"flakes"
|
||||
];
|
||||
|
||||
# Some programs need SUID wrappers, can be configured further or are
|
||||
# started in user sessions.
|
||||
# programs.mtr.enable = true;
|
||||
# programs.gnupg.agent = {
|
||||
# enable = true;
|
||||
# enableSSHSupport = true;
|
||||
# };
|
||||
|
||||
# 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?
|
||||
}
|
||||
1
result
Symbolic link
1
result
Symbolic link
|
|
@ -0,0 +1 @@
|
|||
/nix/store/8fhj8clwhgkf9yqbsjvvyf5hzgnmd98g-nixos-system-lolcathost-24.11.20241102.7ffd9ae
|
||||
1
try-this
Normal file
1
try-this
Normal file
|
|
@ -0,0 +1 @@
|
|||
nixos-rebuild build --flake .# --cores 8 -j 1
|
||||
Loading…
Add table
Add a link
Reference in a new issue