added nixcord, thunar, and formatted various files

This commit is contained in:
Emile Clark-Boman 2024-11-08 01:00:21 +10:00
parent be6926fb0f
commit b43c9b53ba
9 changed files with 449 additions and 107 deletions

View file

@ -68,7 +68,8 @@ If their colour scheme was a little less white I'd love it but overall one of my
### Wallpaper Sources ### Wallpaper Sources
1. https://www.wallpaperflare.com/ 1. https://www.wallpaperflare.com/
2. https://alphacoders.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 ### Credits

74
TODO Normal file
View 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
};
```

View file

@ -16,7 +16,9 @@
#stylix.url = "github:danth/stylix"; #stylix.url = "github:danth/stylix";
nixcord = { url = "github:kaylorben/nixcord"; }; nixcord = {
url = "github:kaylorben/nixcord";
};
nixvim = { nixvim = {
url = "github:nix-community/nixvim"; url = "github:nix-community/nixvim";
@ -31,11 +33,17 @@
swww.url = "github:LGFae/swww"; swww.url = "github:LGFae/swww";
}; };
outputs = { self, nixpkgs, home-manager, hyprland, grub2-themes, nixvim outputs = {
, nixcord, self,
nixpkgs,
home-manager,
hyprland,
grub2-themes,
nixvim,
nixcord,
#stylix, #stylix,
... }@inputs: ...
let } @ inputs: let
system = "x86_64-linux"; system = "x86_64-linux";
pkgs = import nixpkgs { pkgs = import nixpkgs {
@ -45,7 +53,6 @@
# this is just something I'm experimenting with # this is just something I'm experimenting with
PROJECT_ROOT = builtins.toString ./.; PROJECT_ROOT = builtins.toString ./.;
in { in {
nixosConfigurations = { nixosConfigurations = {
# i be on my puter fr # i be on my puter fr
@ -64,10 +71,13 @@
lolcathost = nixpkgs.lib.nixosSystem { lolcathost = nixpkgs.lib.nixosSystem {
specialArgs = {inherit inputs pkgs;}; specialArgs = {inherit inputs pkgs;};
modules = [ ./hosts/lolcathost ]; modules = [
./hosts/lolcathost
];
}; };
}; };
/*
homeConfigurations = { homeConfigurations = {
me = home-manager.lib.homeManagerConfiguration { me = home-manager.lib.homeManagerConfiguration {
specialArgs = {inherit inputs;}; specialArgs = {inherit inputs;};
@ -79,5 +89,6 @@
]; ];
}; };
}; };
*/
}; };
} }

View file

@ -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

View file

@ -236,7 +236,16 @@
]; ];
}; };
#nixcord.enable = true; nixcord = {
enable = true;
config = {
frameless = true;
plugins = {
# TODO: remove this plugin
hideAttachments.enable = true;
};
};
};
firefox = { firefox = {
enable = true; enable = true;

View file

@ -48,6 +48,9 @@ in {
console = { console = {
font = "Lat2-Terminus16"; font = "Lat2-Terminus16";
keyMap = "us"; keyMap = "us";
#packages = with pkgs; [
# nerdfonts
#];
}; };
# ----- NETWORKING SECTION ----- # ----- NETWORKING SECTION -----
@ -81,6 +84,9 @@ in {
# Enable touchpad support # Enable touchpad support
libinput.enable = true; 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 # allow wheel group to use passwordless sudo
@ -92,7 +98,7 @@ in {
defaultUserShell = pkgs.bash; defaultUserShell = pkgs.bash;
users = { users = {
# just me fr (personal account) # literally me fr (personal account)
me = { me = {
isNormalUser = true; isNormalUser = true;
extraGroups = ["wheel"]; extraGroups = ["wheel"];
@ -128,7 +134,7 @@ in {
home-manager = { home-manager = {
users.me = import ../../homes/me; users.me = import ../../homes/me;
sharedModules = [ sharedModules = [
#inputs.nixcord.homeManagerModules.nixcord inputs.nixcord.homeManagerModules.nixcord
#inputs.nixvim.homeManagerModules.nixvim #inputs.nixvim.homeManagerModules.nixvim
]; ];
}; };
@ -180,22 +186,6 @@ in {
zsh.enable = true; zsh.enable = true;
fish.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 # 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 # cause it isn't POSIX compliant, so instead Bash is my login and
# will just exec fish (^-^) # will just exec fish (^-^)
@ -208,24 +198,30 @@ in {
fi 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 -----
fonts = { fonts = {
enableDefaultPackages = true; # no clue what this line does tbh enableDefaultPackages = true; # no clue what this line does tbh
packages = with pkgs; [ packages = with pkgs; [
(nerdfonts.override { #(nerdfonts.override {
fonts = [ # fonts = [
"Cousine" # its already i guess # "Cousine"
"Iosevka" # nah nah # "Iosevka"
"IosevkaTerm" # big nah # "JetBrainsMono"
"CascadiaCode" # potential # ];
"FiraCode" # potential # })
"JetBrainsMono" # for my rofi theme nerdfonts
"Hasklig"
"Hack"
];
})
# texlive maintains a noto-emoji flake # texlive maintains a noto-emoji flake
texlivePackages.noto-emoji texlivePackages.noto-emoji

280
hosts/lolcathost/default.nix.bak Executable file
View 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
View file

@ -0,0 +1 @@
/nix/store/8fhj8clwhgkf9yqbsjvvyf5hzgnmd98g-nixos-system-lolcathost-24.11.20241102.7ffd9ae

1
try-this Normal file
View file

@ -0,0 +1 @@
nixos-rebuild build --flake .# --cores 8 -j 1