migrated packages from home manager to nix

This commit is contained in:
Danilo Reyes 2023-05-01 14:45:21 -06:00
parent 842011cce8
commit 06a03c8abe
2 changed files with 661 additions and 607 deletions

File diff suppressed because it is too large Load Diff

View File

@ -36,8 +36,8 @@
- [ ] appimages - [ ] appimages
- [-] Compile missing apps [1/8] - [-] Compile missing apps [1/8]
- [X] furtherance upgrade - [X] furtherance upgrade
- [ ] zap init - [-] zap init
- [ ] font-downloader - [-] font-downloader
- [ ] pokemon-colorscripts - [ ] pokemon-colorscripts
- [ ] SaveDesktop (flathub) - [ ] SaveDesktop (flathub)
- [ ] gelata - [ ] gelata
@ -70,7 +70,7 @@ in
{ # Remember to close this bracket at the end of the document { # Remember to close this bracket at the end of the document
#+end_src #+end_src
** IMPORTS * IMPORTS
These are files and modules which get loaded onto the configuration file, in the These are files and modules which get loaded onto the configuration file, in the
future I may segment this file into different modules, but for the time being, future I may segment this file into different modules, but for the time being,
the two ones I need are hardware and home-manager. the two ones I need are hardware and home-manager.
@ -82,7 +82,6 @@ imports = [
]; ];
#+end_src #+end_src
* SYSTEM CONFIGURATION * SYSTEM CONFIGURATION
** NETWORKING ** NETWORKING
At the moment, I don't have a wireless card on this computer, however as I build At the moment, I don't have a wireless card on this computer, however as I build
@ -213,24 +212,11 @@ such as patches or symlinks.
# }]; # }];
#+end_src #+end_src
* USER * USER PACKAGES
Being part of the "wheel" group, means that the user has root privileges. Being part of the "wheel" group, means that the user has root privileges.
#+begin_src nix This allows to install non-free packages, and also a toggle for installing
users.users.jawz = { packages from the unstable repository by prepending "unstable" to the package
isNormalUser = true;
extraGroups = [ "wheel" "networkmanager" "docker" ];
initialPassword = "password";
shell = pkgs.fish;
packages = with pkgs; [
];
};
#+end_src
* MISC SETTINGS
** NIXPKGS settings
this allows to install unfree packages, and also a toggle for installing
packages from the unstable repository by preppending "unstable" to the package
name. name.
#+begin_src nix #+begin_src nix
@ -239,47 +225,36 @@ nixpkgs.config = {
}; };
#+end_src #+end_src
** ENABLE FONTCONFIG
If enabled, a Fontconfig configuration file will point to a set of default
fonts. If you don't care about running X11 applications or any other program
that uses Fontconfig, you can turn this option off and prevent a dependency on
all those fonts.
=tip= once that Wayland is ready for deployment, I probably can remove this
setting.
#+begin_src nix
fonts.fontconfig.enable = true;
#+end_src
* HOME-MANAGER
** HOME-MANAGER SETTINGS
These make it so packages install to '/etc' rather than the user home directory,
also allow for upgrades when rebuilding the system.
#+begin_src nix
home-manager.useUserPackages = true;
home-manager.useGlobalPkgs = true;
#+end_src
** PACKAGES
This section of the document categorizes and organizes all he packages that I This section of the document categorizes and organizes all he packages that I
want installed, attempting to group them as dependencies of others when want installed, attempting to group them as dependencies of others when
necessary. necessary.
It has come to my attention, that using home-manager to manage packages, isn't a
recommended thing, while in theory there should be no errors with it, being a
downstream package there is no warranty that an upstream change will break
things with a new upgrade, breaking thus, the declarative nature of NixOs, for
that purpose, I have decided to keep home-manager as a module, with the
intention of reduce the number of dotfiles, however I will keep it exclusively
as a dotfile and service manager.
#+begin_src nix #+begin_src nix
home-manager.users.jawz = { config, pkgs, ... }:{ users.users.jawz = {
# imports = [ ./dotfiles/dconf.nix ]; isNormalUser = true;
home.stateVersion = VERSION; extraGroups = [ "wheel" "networkmanager" "docker" ];
home.packages = (with pkgs; [ initialPassword = "password";
shell = pkgs.fish;
packages = (with pkgs; [
#+end_src #+end_src
*** GUI PACKAGES :ATTACH: ** GUI PACKAGES
:PROPERTIES: All of my GUI applications categorized to make it easier to identify what each
:ID: d5a59b97-4c99-4813-9583-4bdbc978dbad application does, and the justification for is existence on my system.
:END:
*** ART AND DEVELOPMENT
Art and development applications are together, as a game-developer one of my
goals is to create a workflow between this ecosystem of applications.
#+begin_src nix #+begin_src nix
# Art
blender # cgi animation and sculpting blender # cgi animation and sculpting
godot # game development godot # game development
unstable.gdtoolkit # gdscript language server unstable.gdtoolkit # gdscript language server
@ -290,35 +265,55 @@ mypaint-brushes # but it's got some
mypaint-brushes1 # nice damn brushes mypaint-brushes1 # nice damn brushes
unstable.pureref # create inspiration/reference boards unstable.pureref # create inspiration/reference boards
unstable.gimp # the coolest bestest art program to never exist unstable.gimp # the coolest bestest art program to never exist
#+end_src
# Gaming *** GAMING
So far gaming has been a lot less painful than I could have originally
anticipated, most everything seems to run seamlessly.
=note= Roblox uninstalled as there is ongoing drama regarding linux users.
#+begin_src nix
lutris # game/emulator manager lutris # game/emulator manager
grapejuice # roblox manager # grapejuice # roblox manager
minecraft # minecraft official launcher minecraft # minecraft official launcher
parsec-bin # remote gaming with friends parsec-bin # remote gaming with friends
unstable.protonup-qt # update proton-ge unstable.protonup-qt # update proton-ge
#+end_src
# Productivity *** PRODUCTIVITY
This is the section where the apps that help me be productive come, a lot of
this are not used as often as I wish…
#+begin_src nix
libreoffice-fresh # office, but based libreoffice-fresh # office, but based
calibre # ugly af eBook library manager calibre # ugly af eBook library manager
foliate # gtk eBook reader foliate # gtk eBook reader
gnome.simple-scan # document scanner gnome.simple-scan # document scanner
gnome-feeds # feed reader, maybe will replace with nextcloud gnome-feeds # feed reader, maybe will replace with nextcloud
tagger # tag music files #+end_src
# Misc *** MISC
sequeler # friendly SQL client Most of these apps, are part of the gnome circle, and I decide to install them
if just for a try and play a little.
#+begin_src nix
# sequeler # friendly SQL client
blanket # background noise blanket # background noise
unstable.czkawka # duplicate finder unstable.czkawka # duplicate finder
# pika-backup # backups pika-backup # backups
tilix # terminal # tilix # used to be my favourite terminal, but it's so outdated, that each time I use it less and less…
gnome-obfuscate # censor private information gnome-obfuscate # censor private information
metadata-cleaner # remove any metadata and geolocation from files metadata-cleaner # remove any metadata and geolocation from files
# gnome-recipes # migrate these to mealie and delete gnome-recipes # migrate these to mealie and delete
unstable.denaro # manage your finances unstable.denaro # manage your finances
unstable.celeste # sync tool for any cloud provider # unstable.celeste # sync tool for any cloud provider
#+end_src
# Multimedia *** MULTIMEDIA
Overwhelmingly player applications, used for videos and music, while most of my
consumption has moved towards Danilo-flix, it's still worth the install of most
of these, for now.
#+begin_src nix
celluloid # video player celluloid # video player
cozy # audiobooks player cozy # audiobooks player
gnome-podcasts # podcast player gnome-podcasts # podcast player
@ -327,11 +322,16 @@ curtail # image compressor
pitivi # video editor pitivi # video editor
unstable.identity # compare images or videos unstable.identity # compare images or videos
mousai # poor man shazam mousai # poor man shazam
tagger # tag music files
# bottles # wine prefix manager # bottles # wine prefix manager
obs-studio # screen recorder & streamer obs-studio # screen recorder & streamer
shortwave # listen to world radio shortwave # listen to world radio
#+end_src
# Web *** Web
Stuff that I use to interact with the web, web browsers, chats, downloaders,
etc.
#+begin_src nix
discord # chat discord # chat
google-chrome # web browser with spyware included google-chrome # web browser with spyware included
firefox # web browser that allows to disable spyware firefox # web browser that allows to disable spyware
@ -342,16 +342,16 @@ nicotine-plus # remember Ares?
warp # never used, but supposedly cool for sharing files warp # never used, but supposedly cool for sharing files
#+end_src #+end_src
*** COMMAND-LINE PACKAGES ** COMMAND-LINE PACKAGES
#+begin_src nix #+begin_src nix
yt-dlp # downloads videos from most video websites
unstable.gallery-dl # similar to yt-dlp but for most image gallery websites
gdu # disk-space utility, somewhat useful gdu # disk-space utility, somewhat useful
gocryptfs # encrypted filesystem! shhh!!! gocryptfs # encrypted filesystem! shhh!!!
exa # like ls but with colors exa # like ls but with colors
trash-cli # oop! didn't meant to delete that trash-cli # oop! didn't meant to delete that
ffmpeg_5 # coolest video converter! ffmpeg_5 # coolest video converter!
yt-dlp # downloads videos from most video websites
unstable.gallery-dl # similar to yt-dlp but for most image gallery websites
neofetch # use once for brag, never again neofetch # use once for brag, never again
rmlint # probably my favourite app, amazing dupe finder that integrates well with BTRFS rmlint # probably my favourite app, amazing dupe finder that integrates well with BTRFS
tldr # man for retards tldr # man for retards
@ -363,7 +363,7 @@ xdg-ninja # help declutter $HOME
torrenttools # create torrent files from the terminal! torrenttools # create torrent files from the terminal!
#+end_src #+end_src
*** DEVELOPMENT PACKAGES ** DEVELOPMENT PACKAGES
#+begin_src nix #+begin_src nix
# required by doom emacs, but still are rather useful. # required by doom emacs, but still are rather useful.
@ -372,14 +372,13 @@ fzf # fuzzy finder! super cool and useful
ripgrep # modern grep ripgrep # modern grep
languagetool # proofreader for English. check if works without the service languagetool # proofreader for English. check if works without the service
graphviz # graphs graphviz # graphs
# doom everywhere # these two are for doom everywhere
xorg.xwininfo xorg.xwininfo
xdotool xdotool
# development environment # development environment
nix-direnv # creates ephimeral environments nix-direnv # creates ephimeral environments
direnv # manages development environment direnv # manages development environment
# editorconfig-checker # rules for contributing
exercism # learn to code exercism # learn to code
# SH # SH
@ -410,7 +409,7 @@ omnisharp-roslyn # c# linter and code formatter
nodejs # not as bad as I thought nodejs # not as bad as I thought
#+end_src #+end_src
*** GNOME EXTENSIONS ** GNOME EXTENSIONS
#+begin_src nix #+begin_src nix
gnome.gnome-tweaks # tweaks for the gnome desktop environment gnome.gnome-tweaks # tweaks for the gnome desktop environment
@ -419,7 +418,7 @@ gnomeExtensions.appindicator
gnomeExtensions.gsconnect gnomeExtensions.gsconnect
#+end_src #+end_src
*** HUNSPELL ** HUNSPELL
These dictionaries work with Firefox, Doom Emacs and LibreOffice. These dictionaries work with Firefox, Doom Emacs and LibreOffice.
#+begin_src nix #+begin_src nix
@ -429,8 +428,9 @@ hunspellDicts.es_MX
hunspellDicts.en_CA hunspellDicts.en_CA
#+end_src #+end_src
*** CUSTOMIZATION PACKAGES ** CUSTOMIZATION PACKAGES
Also, this finishes the packages array, put new modules above. Themes and other customization, making my DE look the way I want is one of the
main draws of Linux for me.
#+begin_src nix #+begin_src nix
# Themes # Themes
@ -477,7 +477,7 @@ symbola
bass # integrate bash utilities on fish bass # integrate bash utilities on fish
#+end_src #+end_src
** NPM ** NODE JS PACKAGES
#+begin_src nix #+begin_src nix
]) ++ (with pkgs.nodePackages; [ ]) ++ (with pkgs.nodePackages; [
@ -485,7 +485,39 @@ symbola
markdownlint-cli markdownlint-cli
prettier prettier
pnpm pnpm
]); ]); }; # <--- end of package list
#+end_src
* MISC SETTINGS
** ENABLE FONTCONFIG
If enabled, a Fontconfig configuration file will point to a set of default
fonts. If you don't care about running X11 applications or any other program
that uses Fontconfig, you can turn this option off and prevent a dependency on
all those fonts.
=tip= once that Wayland is ready for deployment, I probably can remove this
setting.
#+begin_src nix
fonts.fontconfig.enable = true;
#+end_src
* HOME-MANAGER
** HOME-MANAGER SETTINGS
These make it so packages install to '/etc' rather than the user home directory,
also allow for upgrades when rebuilding the system.
#+begin_src nix
home-manager.useUserPackages = true;
home-manager.useGlobalPkgs = true;
#+end_src
** PACKAGES
#+begin_src nix
home-manager.users.jawz = { config, pkgs, ... }:{
# imports = [ ./dotfiles/dconf.nix ];
home.stateVersion = VERSION;
home.packages = with pkgs; [ ];
#+end_src #+end_src
** DOTFILES ** DOTFILES
@ -633,13 +665,13 @@ xdg = {
** USER-SERVICES ** USER-SERVICES
#+begin_src nix #+begin_src nix
services = { # services = {
emacs = { # emacs = {
enable = true; # enable = true;
defaultEditor = true; # defaultEditor = true;
package = pkgs.emacs; # package = pkgs.emacs;
}; # };
}; # };
#+end_src #+end_src
** CLOSING HOME-MANAGER ** CLOSING HOME-MANAGER
@ -724,8 +756,12 @@ virtualisation.docker = {
}; };
#+end_src #+end_src
* PROGRAMS & SERVICES * SNAPRAID
Some programs need SUID wrappers. It's a parity raid utility which creates a scheme similar to what UNRAID
offered, except not in real time, I schedule it to run every night, so it keeps
my files sync, while it is possible to use snapraid as a solution to keep a
historic backup of your files, I am more concerned with the whole disk recovery
in case of failure, as such a frequent sync fits my preferences.
#+begin_src nix #+begin_src nix
snapraid = { snapraid = {
@ -759,6 +795,13 @@ snapraid = {
"/mnt/disk2/snapraid.content" "/mnt/disk2/snapraid.content"
]; ];
}; };
#+end_src
* PROGRAMS & SERVICES
Some programs get enabled and installed through here, as well as the activation
of some services.
#+begin_src nix
programs = { programs = {
mtr.enable = true; mtr.enable = true;
gnupg.agent = { gnupg.agent = {
@ -791,6 +834,11 @@ services = {
ports = [ 25152 ]; ports = [ 25152 ];
}; };
udev.packages = with pkgs; [ gnome.gnome-settings-daemon ]; udev.packages = with pkgs; [ gnome.gnome-settings-daemon ];
emacs = {
enable = true;
defaultEditor = true;
package = pkgs.emacs;
};
}; };
#+end_src #+end_src