Compare commits
10 Commits
91ac5ce96f
...
ed16a63e50
Author | SHA1 | Date | |
---|---|---|---|
ed16a63e50 | |||
5eb076d8d4 | |||
4d82957b22 | |||
962fd972bc | |||
25d09f63be | |||
5db0283ba6 | |||
4a0eb3c054 | |||
10765db295 | |||
6cedc8c144 | |||
8cb1dbd21e |
@ -17,9 +17,7 @@
|
||||
nixosConfigurations.prismo = nixpkgs.lib.nixosSystem {
|
||||
system = "x86_64-linux";
|
||||
specialArgs = { inherit inputs self user; };
|
||||
modules = [
|
||||
./hosts/prismo
|
||||
];
|
||||
modules = [ ./hosts/prismo ];
|
||||
};
|
||||
};
|
||||
}
|
||||
|
@ -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}";
|
||||
|
@ -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";
|
||||
}
|
||||
|
11
home/editor/neovim/options.lua
Normal file
11
home/editor/neovim/options.lua
Normal 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
|
1
home/hyprland/default.nix
Normal file
1
home/hyprland/default.nix
Normal file
@ -0,0 +1 @@
|
||||
{ imports = [ ./hyprland.nix ./waybar.nix ]; }
|
90
home/hyprland/hyprland.nix
Normal file
90
home/hyprland/hyprland.nix
Normal 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
185
home/hyprland/waybar.nix
Normal 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;
|
||||
};
|
||||
}];
|
||||
};
|
||||
}
|
@ -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
|
||||
|
@ -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; }; };
|
||||
}
|
||||
|
@ -1,4 +1,4 @@
|
||||
{ pkgs, lib, config, ...}:
|
||||
{ pkgs, lib, config, ... }:
|
||||
with lib;
|
||||
let cfg = config.tmux.enable;
|
||||
in {
|
||||
|
@ -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
|
||||
'';
|
||||
};
|
||||
}
|
||||
|
@ -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,9 +28,7 @@
|
||||
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
|
||||
|
@ -1,4 +1,4 @@
|
||||
{ inputs, self, pks, ...}: {
|
||||
{ inputs, self, pks, ... }: {
|
||||
imports = [
|
||||
./configuration.nix
|
||||
./hardware-configuration.nix
|
||||
|
@ -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";
|
||||
luks.devices."cryptroot".device =
|
||||
"/dev/disk/by-uuid/f71b0ace-f38f-435f-a07a-007f9cfe4919";
|
||||
};
|
||||
kernelModules = [ "kvm-intel" ];
|
||||
extraModulePackages = [ ];
|
||||
};
|
||||
|
||||
fileSystems."/" = {
|
||||
device = "/dev/disk/by-uuid/91a0dbc4-426f-4b7b-a49e-063d1d0e59fb";
|
||||
fsType = "xfs";
|
||||
};
|
||||
|
||||
boot.initrd.luks.devices."cryptroot".device = "/dev/disk/by-uuid/f71b0ace-f38f-435f-a07a-007f9cfe4919";
|
||||
|
||||
fileSystems."/boot" =
|
||||
{ device = "/dev/disk/by-uuid/AF2D-FAD0";
|
||||
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;
|
||||
}
|
||||
|
@ -1,8 +1 @@
|
||||
{
|
||||
imports = [
|
||||
./podman.nix
|
||||
./fonts.nix
|
||||
./users.nix
|
||||
./services.nix
|
||||
];
|
||||
}
|
||||
{ imports = [ ./podman.nix ./fonts.nix ./users.nix ./services.nix ]; }
|
||||
|
@ -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
|
||||
];
|
||||
}
|
||||
|
@ -1,4 +1,4 @@
|
||||
{ pkgs, ...}:
|
||||
{ pkgs, ... }:
|
||||
|
||||
{
|
||||
virtualisation = {
|
||||
|
@ -1,4 +1,4 @@
|
||||
{ ... }: {
|
||||
{ pkgs, ... }: {
|
||||
services = {
|
||||
dbus.enable = true;
|
||||
pipewire = {
|
||||
|
@ -1,4 +1,4 @@
|
||||
{ pkgs, ...}:
|
||||
{ pkgs, ... }:
|
||||
|
||||
{
|
||||
programs.zsh.enable = true;
|
||||
|
Loading…
x
Reference in New Issue
Block a user