Compare commits

...

2 Commits

Author SHA1 Message Date
Adrian Gunnar Lauterer 394d9fa940 Home Manager sway 2024-06-13 15:02:03 +02:00
Adrian Gunnar Lauterer 619be4f1e1 added hardware and home manager 2024-06-13 11:52:48 +02:00
10 changed files with 542 additions and 111 deletions

View File

@ -19,6 +19,10 @@
sops-nix.url = "github:Mic92/sops-nix"; sops-nix.url = "github:Mic92/sops-nix";
sops-nix.inputs.nixpkgs.follows = "nixpkgs"; sops-nix.inputs.nixpkgs.follows = "nixpkgs";
nixos-hardware.url = "github:NixOS/nixos-hardware/master";
}; };
outputs = { outputs = {
@ -30,6 +34,7 @@
, nix-minecraft , nix-minecraft
, nixpkgs , nixpkgs
, sops-nix , sops-nix
, nixos-hardware
, unstable , unstable
, ... }@inputs: , ... }@inputs:
let let
@ -40,23 +45,6 @@
{ {
nixosConfigurations = { nixosConfigurations = {
#aragon = nixpkgs.lib.nixosSystem {
# system = "x83_64-linux";
# specialArgs = {
# inherit inputs;
# };
# modules = [
# # Overlays-module makes "pkgs.unstable" available in configuration.nix
# ({ config, pkgs, ... }: { nixpkgs.overlays = [ overlay-unstable ]; })
# ./machines/aragon/configuration.nix
# sops-nix.nixosModules.sops
# home-manager.nixosModules.home-manager {
# home-manager.useGlobalPkgs = true;
# home-manager.useUserPackages = true;
# home-manager.users."gunalx" = import ./home/home.nix;
# }
# ];
#};
eowyn = nixpkgs.lib.nixosSystem { eowyn = nixpkgs.lib.nixosSystem {
system = "x84_64-linux"; system = "x84_64-linux";
@ -68,6 +56,13 @@
({ config, pkgs, ... }: { nixpkgs.overlays = [ overlay-unstable ]; }) ({ config, pkgs, ... }: { nixpkgs.overlays = [ overlay-unstable ]; })
./machines/eowyn/configuration.nix ./machines/eowyn/configuration.nix
sops-nix.nixosModules.sops sops-nix.nixosModules.sops
nixos-hardware.nixosModules.dell-latitude-7280
home-manager.nixosModules.home-manager {
home-manager.useGlobalPkgs = true;
home-manager.useUserPackages = true;
home-manager.users."gunalx" = import ./home/full.nix;
}
]; ];
}; };

74
home/base.nix Normal file
View File

@ -0,0 +1,74 @@
{ pkgs, lib, ... }:
{
imports = [
];
programs.nix-index = {
enable = true;
};
programs.bash = {
shellAliases = {
"rebuild" = "sudo nixos-rebuild switch --update-input nixpkgs --update-input unstable --no-write-lock-file --refresh --flake git+https://github.com/adrlau/nix-dotfiles.git --upgrade";
"nixedit" = "vim /etc/nixos/nix-dotfiles/.";
"," = "comma ";
"gst" = "git status";
"gsw" = "git switch";
"gcm" = "git commit -m ";
"gca" = "git commit --amend";
"gaa" = "git add -A";
"gb" = "git branch";
"sl" = "eza";
"ls" = "eza";
"lls" = "ls";
"la" = "eza -la";
"neofetch" = "fastfetch";
};
historyControl = ["ignoreboth" "erasedups"];
historyIgnore = [ "ls" "cd" "exit" "cd .." ".." "la"];
};
home.packages = with pkgs; [
bottom
htop
fastfetch
eza
ripgrep
foot.terminfo
comma
];
programs.git = {
enable = true;
extraConfig = {
pull.rebase = true;
push.autoSetupRemote = true;
color.ui = "auto";
init.defaultBranch = "main";
lfs.enable = true;
user = {
name = "Adrian G L";
email = "adrian@lauterer.it";
};
};
ignores = [
"*~"
"*.swp"
".DS_Store"
".vscode"
"*__PYCACHE__*"
"*__pycache__*"
];
};
home.stateVersion = "23.05";
}

View File

@ -1,14 +1,97 @@
{pkgs, lib, ...}: { pkgs, lib, ... }: {
{
unstable.config.allowUnfree = true;
home-manager.users.gunalx = {
#vscode with home manager
programs.vscode = { programs.vscode = {
enable = true; enable = true;
enableUpdateCheck = false; enableUpdateCheck = false;
package = unstable.vscode-fhs; enableExtensionUpdateCheck = false;
mutableExtensionsDir = true;
package = vscode-fhs;
# Extensions
extensions = (with pkgs.vscode-extensions; [
# Stable
ms-vscode-remote.remote-ssh
mhutchie.git-graph
pkief.material-icon-theme
oderwat.indent-rainbow
2gua.rainbow-brackets
jnoortheen.nix-ide
pinage404.nix-extension-pack
vsciot-vscode.vscode-arduino
espressif.esp-idf-extension
platformio.platformio-ide
yzhang.markdown-all-in-one
yzane.markdown-pdf
bierner.markdown-checkbox
shd101wyy.markdown-preview-enhanced
TakumiI.markdowntable
jebbs.plantuml
myml.vscode-markdown-plantuml-preview
DavidAnson.vscode-markdownlint
MS-vsliveshare.vsliveshare
redhat.vscode-yaml
redhat.vscode-xml
octref.vetur
formulahendry.auto-close-tag
mechatroner.rainbow-csv
swellaby.rust-pack
James-Yu.latex-workshop
waderyan.gitblame
ms-python.python
ms-python.vscode-pylance
VisualStudioExptTeam.vscodeintellicode
redhat.java
ms-vscode.cpptools-extension-pack
]) ++ (with pkgs.unstable.vscode-extensions; [
# Unstable
GitHub.copilot
GitHub.copilot-chat
Continue.continue
]);
# Settings
userSettings = {
# General
"editor.fontSize" = 16;
"editor.fontFamily" = "'Jetbrains Mono', 'monospace', monospace";
"terminal.integrated.fontSize" = 14;
"terminal.integrated.fontFamily" = "'JetBrainsMono Nerd Font', 'monospace', monospace";
"window.zoomLevel" = 1;
"editor.multiCursorModifier" = "ctrlCmd";
"workbench.startupEditor" = "none";
"explorer.compactFolders" = false;
# Whitespace
"files.trimTrailingWhitespace" = true;
"files.trimFinalNewlines" = true;
"files.insertFinalNewline" = true;
"diffEditor.ignoreTrimWhitespace" = false;
# Git
"git.enableCommitSigning" = true;
"git-graph.repository.sign.commits" = true;
"git-graph.repository.sign.tags" = true;
"git-graph.repository.commits.showSignatureStatus" = true;
# Styling
"window.autoDetectColorScheme" = true;
"workbench.preferredDarkColorTheme" = "Default Dark Modern";
"workbench.preferredLightColorTheme" = "Default Light Modern";
"workbench.iconTheme" = "material-icon-theme";
"material-icon-theme.activeIconPack" = "none";
"material-icon-theme.folders.theme" = "classic";
# Extentions
"nix.enableLanguageServer"= true;
# Other
"telemetry.telemetryLevel" = "off";
"update.showReleaseNotes" = false;
};
}; };
};
} }

11
home/full.nix Normal file
View File

@ -0,0 +1,11 @@
{ pkgs, lib, ... }:
{
imports = [
./base.nix
./code.nix
./sway.nix
];
}

View File

@ -1,15 +0,0 @@
{ config, pkgs, home-manager, ... }:
{
imports = [
(import "${home-manager}/nixos")
./code.nix
];
home-manager.users.gunalx = {
/* The home.stateVersion option does not have a default and must be set */
home.stateVersion = "23.11";
/* Here goes the rest of your home-manager config, e.g. home.packages = [ pkgs.foo ]; */
};
}

View File

@ -1,11 +1,15 @@
{ config, pkgs, lib, ... }: { pkgs, lib, ... }:
{ {
imports = imports = [
[
]; ];
environment.systemPackages = with pkgs; [
home.packages = with pkgs; [
wl-clipboard
wlr-randr
kanshi
libsForQt5.qt5ct libsForQt5.qt5ct
qt6Packages.qt6ct qt6Packages.qt6ct
@ -15,8 +19,10 @@ imports =
libsForQt5.networkmanager-qt libsForQt5.networkmanager-qt
wdisplays wdisplays
kanshi
swaylock-effects swaylock-effects
swayidle
#swaylock-fancy #migth change to this default may look prettier. #swaylock-fancy #migth change to this default may look prettier.
foot foot
@ -29,25 +35,27 @@ imports =
bemoji bemoji
brightnessctl brightnessctl
pavucontrol pavucontrol
#screenshots #screenshots
grim grim
slurp slurp
mako
swaybg swaybg
workstyle swayest-workstyle
#swayest-workstyle #migth switch to this.
autotiling-rs autotiling-rs
wleave wleave
pass-wayland pass-wayland
];
fonts.packages = with pkgs; [
#fonts
nerfonts
noto-fonts noto-fonts
noto-fonts-cjk noto-fonts-cjk
noto-fonts-emoji noto-fonts-emoji
@ -59,26 +67,200 @@ imports =
nerdfonts nerdfonts
ubuntu_font_family ubuntu_font_family
zpix-pixel-font zpix-pixel-font
_0xproto
font-awesome font-awesome
font-awesome_5 font-awesome_5
font-awesome_4 font-awesome_4
]; ];
services.xserver.displayManager.sddm.enable = true; qt.enable = true;
qt.style.name = "breeze";
qt.platformTheme = "qt5ct"; programs.wofi = {
enable = true;
settings = {
location = "bottom-right";
allow_markup = true;
width = "60%";
};
style = ''
* {
font-family: monospace;
}
# Configure keymap in X11 window {
services.xserver = { background-color: #7c818c;
layout = "no"; }
xkbVariant = ""; '';
};
services.kanshi = {
enable = true;
profiles = {
undocked = {
outputs = [
{
criteria = "eDP-1";
}
];
exec = [
"\${pkg.sway}/bin/swaymsg workspace 1, move workspace to eDP-1"
"\${pkg.sway}/bin/swaymsg workspace 2, move workspace to eDP-1"
"\${pkg.sway}/bin/swaymsg workspace 3, move workspace to eDP-1"
"\${pkg.sway}/bin/swaymsg workspace 4, move workspace to eDP-1"
"\${pkg.sway}/bin/swaymsg workspace 5, move workspace to eDP-1"
"\${pkg.sway}/bin/swaymsg workspace 6, move workspace to eDP-1"
"\${pkg.sway}/bin/swaymsg workspace 7, move workspace to eDP-1"
"\${pkg.sway}/bin/swaymsg workspace 8, move workspace to eDP-1"
"\${pkg.sway}/bin/swaymsg workspace 9, move workspace to eDP-1"
"\${pkg.sway}/bin/swaymsg workspace 10, move workspace to eDP-1"
"\${pkg.sway}/bin/swaymsg workspace 0, move workspace to eDP-1"
];
};
};
};
programs.foot.settings = {
colors = {
alpha="0.9";
foreground="ffffff";
background="000000";
regular0="2e3436";
regular1="cc0000";
regular2="c4e9a06";
regular3="cc4a000";
regular4="c3465a4";
regular5="c75507b";
regular6="c06989a";
regular7="cd3d7cf";
bright0="555753";
bright1="5ef2929";
bright2="58ae234";
bright3="5fce94f";
bright4="5729fcf";
bright5="5ad7fa8";
bright6="534e2e2";
bright7="5eeeeec";
};
main = {
term = "xterm-256color";
font = "0xproto:size=16";
dpi-aware = "yes";
};
mouse = {
hide-when-typing = "yes";
};
}; };
#TODO: add sway config with home manager to get proper dotfiles. fonts.fontconfig.enable = true;
fonts.fontconfig.defaultFonts = {
emoji = ["noto-fonts-emoji font-awesome"];
monospace = ["0xproto" "zpix" "fira-code"];
serif = [ "Noto Serif" "Source Han Serif" ];
sansSerif = [ "Noto Sans" "Source Han Sans" ];
};
home.sessionVariables = {
MOZ_ENABLE_WAYLAND = "1";
MOZ_USE_XINPUT2 = "1";
XDG_SESSION_TYPE = "wayland";
XDG_CURRENT_DESKTOP = "sway";
XKB_DEFAULT_OPTIONS = "terminate:ctrl_alt_bksp,caps:escape,altwin:swap_alt_win";
SDL_VIDEODRIVER = "wayland";
# needs qt5.qtwayland in systemPackages
QT_QPA_PLATFORM = "wayland";
QT_WAYLAND_DISABLE_WINDOWDECORATION = "1";
# Fix for some Java AWT applications (e.g. Android Studio),
# use this if they aren't displayed properly:
_JAVA_AWT_WM_NONREPARENTING = 1;
# gtk applications on wayland
# export GDK_BACKEND=wayland
};
wayland.windowManager.sway = {
wrapperFeatures.gtk = true;
enable = true;
config = rec {
modifier = "Mod4";
# Use kitty as default terminal
terminal = "footclient";
menu = "wofi --show run";
bars = [{
fonts.size = 16.0;
command = "waybar";
position = "top";
}];
startup = [
# Launch Firefox on start
{command = "foot --server";}
{command = "firefox";}
{command = "nm-applet";}
{command = "autotiling-rs";}
{command = "sworkstyle";}
];
floating.border = 0;
window.border = 0;
focus.followMouse = true;
modes.resize = {
Escape = "mode default";
Return = "mode default";
"h" = "resize shrink width 10 px or 10 ppt";
"j" = "resize grow height 10 px or 10 ppt";
"k" = "resize shrink height 10 px or 10 ppt";
"l" = "resize grow width 10 px or 10 ppt";
};
extraConfig = ''
#startup
input type:keyboard xkb_capslock disabled
input type:keyboard xkb_numlock enabled
xwayland enable
#autostart to selected workspace classes
assign [class="autostart1"] workspace 1
assign [class="autostart2"] workspace 2
assign [class="autostart3"] workspace 3
assign [class="autostart4"] workspace 4
bindsym $mod+d exec $menu
bindsym XF86AudioRaiseVolume exec pactl set-sink-volume @DEFAULT_SINK@ +5%
bindsym F3 exec pactl set-sink-volume @DEFAULT_SINK@ +5%
bindsym XF86AudioLowerVolume exec pactl set-sink-volume @DEFAULT_SINK@ -5%
bindsym F2 exec pactl set-sink-volume @DEFAULT_SINK@ -5%
bindsym XF86AudioMute exec pactl set-sink-mute @DEFAULT_SINK@ toggle
bindsym XF86AudioMicMute exec pactl set-source-mute @DEFAULT_SOURCE@ toggle
bindsym XF86MonBrightnessDown exec brightnessctl set 5%-
bindsym XF86MonBrightnessUp exec brightnessctl set 5%+
bindsym XF86AudioPlay exec playerctl play-pause
bindsym XF86AudioNext exec playerctl next
bindsym XF86AudioPrev exec playerctl previous
bindsym XF86Search exec $menu
#shortcuts for applications
bindsym $mod+Shift+f exec firefox
bindsym $mod+Shift+c exec code
#screenshot
bindsym $mod+f11 exec grim -g "$(slurp)" ~/Pictures/screenshots/"screenshot-`date +%F-%T`".png
bindsym $mod+Print exec grim -g "$(slurp)" ~/Pictures/screenshots/"screenshot-`date +%F-%T`".png
'';
};
};
} }

View File

@ -75,6 +75,8 @@
wofi wofi
foot foot
libfprint
]; ];
# Some programs need SUID wrappers, can be configured further or are # Some programs need SUID wrappers, can be configured further or are

View File

@ -15,11 +15,23 @@
set backspace=indent,eol,start set backspace=indent,eol,start
" Turn on syntax highlighting by default " Turn on syntax highlighting by default
syntax on syntax on
set tabstop=4 softtabstop=0 autoindent expandtab shiftwidth=4 smarttab
" ... " ...
''; '';
packages.myplugins = with pkgs.vimPlugins; { packages.myplugins = with pkgs.vimPlugins; {
start = [ vim-nix vim-lastplace vim-yaml coc-rust-analyzer neovim-fuzzy LanguageClient-neovim copilot-vim chadtree]; start = [
opt = []; vim-nix
vim-lastplace
vim-yaml
coc-rust-analyzer
neovim-fuzzy
LanguageClient-neovim
copilot-vim
chadtree
];
opt = [
#copilot-vim
];
}; };
}; };
}; };

View File

@ -9,7 +9,7 @@ imports =
../packages/vim.nix ../packages/vim.nix
#../home/home-full.nix #../home/home-full.nix
../home/sway.nix #./sway.nix
../packages/steam.nix ../packages/steam.nix
]; ];
@ -40,6 +40,9 @@ imports =
# Enable CUPS to print documents. # Enable CUPS to print documents.
services.printing.enable = true; services.printing.enable = true;
security.polkit.enable = true;
services.displayManager.sddm.enable = true; services.displayManager.sddm.enable = true;
services.desktopManager.plasma6.enable = true; services.desktopManager.plasma6.enable = true;
services.desktopManager.plasma6.enableQt5Integration = true; services.desktopManager.plasma6.enableQt5Integration = true;

84
profiles/sway.nix Normal file
View File

@ -0,0 +1,84 @@
{ config, pkgs, lib, ... }:
{
imports =
[
];
environment.systemPackages = with pkgs; [
libsForQt5.qt5ct
qt6Packages.qt6ct
waybar
networkmanagerapplet
networkmanager
libsForQt5.networkmanager-qt
wdisplays
swaylock-effects
#swaylock-fancy #migth change to this default may look prettier.
foot
## possible other options
#kitty
#alacrity
wofi
wofi-emoji
bemoji
brightnessctl
pavucontrol
#screenshots
grim
slurp
swaybg
workstyle
#swayest-workstyle #migth switch to this.
autotiling-rs
wleave
pass-wayland
];
fonts.packages = with pkgs; [
noto-fonts
noto-fonts-cjk
noto-fonts-emoji
liberation_ttf
fira-code
fira-code-symbols
dina-font
proggyfonts
nerdfonts
ubuntu_font_family
zpix-pixel-font
font-awesome
font-awesome_5
font-awesome_4
];
services.xserver.displayManager.sddm.enable = true;
qt.platformTheme = "qt5ct";
# Configure keymap in X11
services.xserver = {
layout = "no";
xkbVariant = "";
};
#TODO: add sway config with home manager to get proper dotfiles.
}