Compare commits

...

10 Commits

19 changed files with 376 additions and 67 deletions

View File

@ -9,7 +9,7 @@
};
};
outputs = { self, nixpkgs, ... }@inputs:
outputs = { self, nixpkgs, ... }@inputs:
let
system = "x86_64-linux";
user = "torjus";
@ -17,9 +17,7 @@
nixosConfigurations.prismo = nixpkgs.lib.nixosSystem {
system = "x86_64-linux";
specialArgs = { inherit inputs self user; };
modules = [
./hosts/prismo
];
modules = [ ./hosts/prismo ];
};
};
};
}

View File

@ -1,8 +1,8 @@
{ inputs, self, user, ...}: {
{ inputs, self, user, ... }: {
imports = [ inputs.home-manager.nixosModules.home-manager ];
home-manager = {
useUserPackages = true;
useGlobalPkgs= true;
useGlobalPkgs = true;
extraSpecialArgs = { inherit inputs user; };
users.${user} = {
imports = [
@ -11,9 +11,11 @@
./programs/tmux
./zsh
./packages
./hyprland
];
firefox.enable = true;
tmux.enable = true;
hyprland.enable = true;
home = {
username = "${user}";
homeDirectory = "/home/${user}";

View File

@ -1,9 +1,33 @@
{ pkgs, ...}: {
{ pkgs, ... }: {
programs = {
neovim = {
enable = true;
defaultEditor = true;
vimAlias = true;
plugins = with pkgs.vimPlugins; [
vim-fugitive
undotree
telescope-nvim
lsp-zero-nvim
(nvim-treesitter.withPlugins (p: [
p.tree-sitter-nix
p.tree-sitter-go
p.tree-sitter-vim
p.tree-sitter-bash
p.tree-sitter-json
p.tree-sitter-python
]))
];
extraLuaConfig = ''
${builtins.readFile ./options.lua}
'';
};
};
home.packages = with pkgs; [
# nix stuff
nixfmt
nil
statix
];
home.sessionVariables.EDITOR = "nvim";
}

View File

@ -0,0 +1,11 @@
vim.g.mapleader = ' '
vim.g.maplocalleader = ' '
vim.opt.cursorline = true
vim.opt.scrolloff = 15
vim.opt.wrap = true
vim.o.number = true
vim.o.relativenumber = true
vim.o.tabstop = 4
vim.o.shiftwidth = 4

View File

@ -0,0 +1 @@
{ imports = [ ./hyprland.nix ./waybar.nix ]; }

View File

@ -0,0 +1,90 @@
{ inputs, pkgs, lib, ... }: {
options.hyprland.enable = lib.mkEnableOption "Hyprland";
config = {
home.packages = with pkgs; [ swww wl-clipboard cliphist ];
wayland.windowManager.hyprland = {
enable = true;
settings = {
"$mainMod" = "SUPER";
"$term" = "alacritty";
monitor = [ "eDP-1,1920x1080@60,0x0,1" ];
input = {
kb_layout = "no";
follow_mouse = 1;
};
decoration = {
rounding = 0;
drop_shadow = true;
shadow_range = 4;
shadow_render_power = 3;
blur = {
enabled = true;
size = 3;
passes = 1;
xray = true;
};
};
general = {
gaps_in = 4;
gaps_out = 10;
border_size = 2;
layout = "dwindle";
};
animations = {
enabled = true;
bezier = "myBezier, 0.05, 0.9, 0.1, 1.05";
animation = [
"windows, 1, 7, myBezier"
"windowsOut, 1, 7, default, popin 80%"
"border, 1, 10, default"
"borderangle, 1, 8, default"
"fade, 1, 7, default"
"workspaces, 1, 6, default"
];
};
dwindle = {
pseudotile = true;
preserve_split = true;
};
master.new_is_master = true;
misc.force_default_wallpaper = -1;
bind = [
# term
"$mainMod,Return,exec,$term"
# rofi
"$mainMod,D,exec,rofi -show drun"
# hyprland
"$mainMod,Q,killactive,"
"CTRLALT,Delete,exit,"
"$mainMod,Space,togglefloating,"
"$mainMod,F,fullscreen,"
# focus
"$mainMod,l,movefocus,l"
"$mainMod,h,movefocus,r"
"$mainMod,k,movefocus,u"
"$mainMod,j,movefocus,d"
# move
"$mainMod,h,movewindow,l"
"$mainMod,l,movewindow,r"
"$mainMod,k,movewindow,u"
"$mainMod,j,movewindow,d"
] ++ (builtins.concatLists (builtins.genList (x:
let
ws = let c = (x + 1) / 10; in builtins.toString (x + 1 - (c * 10));
in [
"$mainMod, ${ws}, workspace, ${toString (x + 1)}"
"ALT, ${ws}, workspace, ${toString (x + 1)}"
]) 10));
exec-once = [ "waybar &" ];
};
};
};
}

185
home/hyprland/waybar.nix Normal file
View File

@ -0,0 +1,185 @@
{ pkgs, ... }: {
programs.waybar = {
enable = true;
systemd = {
enable = false; # disable it,autostart it in hyprland conf
target = "graphical-session.target";
};
style = ''
* {
font-family: "Fira Code", "Font Awesome 6 Free";
font-size: 14px;
font-weight: bold;
border-radius: 0px;
transition-property: background-color;
transition-duration: 0.5s;
}
@keyframes blink_red {
to {
background-color: rgb(242, 143, 173);
color: rgb(26, 24, 38);
}
}
.warning,
.critical,
.urgent {
animation-name: blink_red;
animation-duration: 1s;
animation-timing-function: linear;
animation-iteration-count: infinite;
animation-direction: alternate;
}
window#waybar {
background-color: transparent;
}
window > box {
margin-left: 0px;
margin-right: 0px;
margin-top: 0px;
border-bottom: 2px solid @color1;
background-color: @background;
}
#workspaces {
padding-left: 0px;
padding-right: 4px;
}
#workspaces button {
padding-top: 5px;
padding-bottom: 5px;
padding-left: 6px;
padding-right: 6px;
color: @color1;
}
#workspaces button.active {
background-color: @color1;
color: rgb(26, 24, 38);
}
#workspaces button.urgent {
color: rgb(26, 24, 38);
}
#workspaces button:hover {
background-color: #b38dac;
color: rgb(26, 24, 38);
}
tooltip {
background: #3b4253;
}
tooltip label {
color: #e4e8ef;
}
#custom-launcher {
font-size: 20px;
padding-left: 8px;
padding-right: 6px;
color: #7ebae4;
}
#mode,
#clock,
#memory,
#temperature,
#cpu,
#mpd,
#custom-wall,
#temperature,
#backlight,
#pulseaudio,
#network,
#battery,
#custom-powermenu,
#custom-cava-internal {
padding-left: 10px;
padding-right: 10px;
color: @color1;
}
#network.disconnected {
color: #cccccc;
}
#battery.charging,
#battery.full,
#battery.discharging {
color: #cf876f;
}
#battery.critical:not(.charging) {
color: #d6dce7;
}
#custom-powermenu {
color: #bd6069;
}
#tray {
padding-right: 8px;
padding-left: 10px;
}
#tray menu {
background: #3b4252;
color: #dee2ea;
}
#mpd.paused {
color: rgb(192, 202, 245);
font-style: italic;
}
#mpd.stopped {
background: transparent;
}
#mpd {
color: #e4e8ef;
}
#custom-cava-internal {
font-family: "Hack Nerd Font";
}
'';
settings = [{
"layer" = "top";
"position" = "top";
modules-left = [ "custom/launcher" "hyprland/workspaces" ];
modules-center = [ "clock" ];
modules-right =
[ "pulseaudio" "pulseaudio#microphone" "memory" "cpu" "tray" ];
"custom/launcher" = {
"format" = " ";
"on-click" = "pkill rofi || ~/.config/rofi/launcher.sh";
"tooltip" = false;
};
"hyprland/workspaces" = {
"format" = "{name}";
"on-click" = "activate";
"on-scroll-up" = "hyprctl dispatch workspace e+1";
"on-scroll-down" = "hyprctl dispatch workspace e-1";
};
"pulseaudio" = {
"scroll-step" = 5;
"format" = "{icon} {volume}%";
"format-muted" = "";
"format-icons" = { "default" = [ "" "" "" ]; };
"on-click" = "pamixer -t";
};
"pulseaudio#microphone" = {
"format" = "{format_source}";
"format-source" = " {volume}%";
"format-source-muted" = "";
"on-click" = "pamixer --default-source -t";
"on-scroll-up" = "pamixer --default-source -i 5";
"on-scroll-down" = "pamixer --default-source -d 5";
"scroll-step" = 5;
"on-click-right" = "pavucontrol";
};
"clock" = {
"interval" = 1;
"format" = "{:%I:%M %p %A %b %d}";
"tooltip" = true;
};
"memory" = {
"interval" = 3;
"format" = " {percentage}%";
"states" = { "warning" = 85; };
};
"cpu" = {
"interval" = 3;
"format" = " {usage}%";
};
"tray" = {
"icon-size" = 15;
"spacing" = 6;
};
}];
};
}

View File

@ -1,4 +1,4 @@
{ pkgs, ...}: {
{ pkgs, ... }: {
home.packages = with pkgs; [
# Generic tools
age
@ -8,6 +8,9 @@
go-task
jq
ncdu
pamixer
pinentry
pulsemixer
rbw
restic
ripgrep
@ -18,7 +21,7 @@
# Editors
vscode
# Go stuff
go
delve

View File

@ -1,9 +1,6 @@
{ pkgs, config, lib, inputs, user, ...}: {
{ pkgs, config, lib, inputs, user, ... }: {
options.firefox.enable = lib.mkEnableOption "Firefox";
config = lib.mkIf config.firefox.enable {
programs.firefox = {
enable = true;
};
};
config =
lib.mkIf config.firefox.enable { programs.firefox = { enable = true; }; };
}

View File

@ -1,4 +1,4 @@
{ pkgs, lib, config, ...}:
{ pkgs, lib, config, ... }:
with lib;
let cfg = config.tmux.enable;
in {

View File

@ -1,4 +1,4 @@
{ user, pkgs, ...}: {
{ user, pkgs, ... }: {
home.packages = with pkgs; [ fd ];
programs.zsh = {
enable = true;
@ -6,5 +6,12 @@
enableAutosuggestions = true;
enableCompletion = true;
syntaxHighlighting.enable = true;
shellAliases = {
nrebuild = "sudo nixos-rebuild switch --flake /home/${user}/nixos#prismo";
};
initExtra = ''
bindkey -v
bindkey '^R' history-incremental-search-backward
'';
};
}

View File

@ -1,20 +1,11 @@
{ config, lib, pkgs, ... }:
{
imports =
[
./hardware-configuration.nix
];
imports = [ ./hardware-configuration.nix ];
# Bootloader stuff
boot.loader.systemd-boot = {
enable = true;
};
boot.loader.efi = {
canTouchEfiVariables = true;
};
boot.loader.systemd-boot = { enable = true; };
boot.loader.efi = { canTouchEfiVariables = true; };
# Networking stuff
networking.hostName = "prismo"; # Define your hostname.
@ -37,17 +28,15 @@
XDG_DATA_HOME = "$HOME/.local/share";
XDG_STATE_HOME = "$HOME/.local/state";
XDG_BIN_HOME = "$HOME/.local/bin";
PATH = [
"${XDG_BIN_HOME}"
];
};
PATH = [ "${XDG_BIN_HOME}" ];
};
# Enable sudo
security.sudo.enable = true;
# Enable flakes
nix.settings.experimental-features = [ "nix-command" "flakes" ];
nixpkgs.config.allowUnfree = true;
# Install system-wide packages
environment.systemPackages = with pkgs; [

View File

@ -1,4 +1,4 @@
{ inputs, self, pks, ...}: {
{ inputs, self, pks, ... }: {
imports = [
./configuration.nix
./hardware-configuration.nix

View File

@ -4,30 +4,33 @@
{ config, lib, pkgs, modulesPath, ... }:
{
imports =
[ (modulesPath + "/installer/scan/not-detected.nix")
];
imports = [ (modulesPath + "/installer/scan/not-detected.nix") ];
boot.initrd.availableKernelModules = [ "xhci_pci" "ahci" "usb_storage" "sd_mod" "rtsx_pci_sdmmc" ];
boot.initrd.kernelModules = [ ];
boot.kernelModules = [ "kvm-intel" ];
boot.extraModulePackages = [ ];
boot = {
initrd = {
availableKernelModules =
[ "xhci_pci" "ahci" "usb_storage" "sd_mod" "rtsx_pci_sdmmc" ];
kernelModules = [ ];
fileSystems."/" =
{ device = "/dev/disk/by-uuid/91a0dbc4-426f-4b7b-a49e-063d1d0e59fb";
fsType = "xfs";
luks.devices."cryptroot".device =
"/dev/disk/by-uuid/f71b0ace-f38f-435f-a07a-007f9cfe4919";
};
kernelModules = [ "kvm-intel" ];
extraModulePackages = [ ];
};
boot.initrd.luks.devices."cryptroot".device = "/dev/disk/by-uuid/f71b0ace-f38f-435f-a07a-007f9cfe4919";
fileSystems."/" = {
device = "/dev/disk/by-uuid/91a0dbc4-426f-4b7b-a49e-063d1d0e59fb";
fsType = "xfs";
};
fileSystems."/boot" =
{ device = "/dev/disk/by-uuid/AF2D-FAD0";
fsType = "vfat";
};
fileSystems."/boot" = {
device = "/dev/disk/by-uuid/AF2D-FAD0";
fsType = "vfat";
};
swapDevices =
[ { device = "/dev/disk/by-uuid/67da36a8-69df-4541-88cd-cba7cbc40b4c"; }
];
[{ device = "/dev/disk/by-uuid/67da36a8-69df-4541-88cd-cba7cbc40b4c"; }];
# Enables DHCP on each ethernet and wireless interface. In case of scripted networking
# (the default) this is the recommended approach. When using systemd-networkd it's
@ -38,5 +41,6 @@
# networking.interfaces.wlp2s0.useDHCP = lib.mkDefault true;
nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux";
hardware.cpu.intel.updateMicrocode = lib.mkDefault config.hardware.enableRedistributableFirmware;
hardware.cpu.intel.updateMicrocode =
lib.mkDefault config.hardware.enableRedistributableFirmware;
}

View File

@ -1,8 +1 @@
{
imports = [
./podman.nix
./fonts.nix
./users.nix
./services.nix
];
}
{ imports = [ ./podman.nix ./fonts.nix ./users.nix ./services.nix ]; }

View File

@ -1,7 +1,12 @@
{ pkgs, ... }:
{
{ pkgs, ... }: {
environment.systemPackages = with pkgs; [ twemoji-color-font ];
fonts.packages = with pkgs; [
fira-code
fira-code-symbols
noto-fonts
noto-fonts-cjk
noto-fonts-emoji
twemoji-color-font
font-awesome
];
}

View File

@ -1,4 +1,4 @@
{ pkgs, ...}:
{ pkgs, ... }:
{
virtualisation = {

View File

@ -1,4 +1,4 @@
{ ... }: {
{ pkgs, ... }: {
services = {
dbus.enable = true;
pipewire = {

View File

@ -1,4 +1,4 @@
{ pkgs, ...}:
{ pkgs, ... }:
{
programs.zsh.enable = true;