Compare commits

..

9 Commits

Author SHA1 Message Date
Giulio De Pasquale
0a29ba5480 beautify 2021-07-01 06:28:26 +02:00
Giulio De Pasquale
83aa91b7e5 Merge branch 'master' of https://giugl.io/gitea/peperunas/nixos 2021-07-01 06:28:06 +02:00
Giulio De Pasquale
90d56d059f beautification 2021-07-01 06:26:22 +02:00
Giulio De Pasquale
304dcdf1ca formatting 2021-07-01 06:25:53 +02:00
Giulio De Pasquale
70212633c8 formatting 2021-07-01 06:24:09 +02:00
Giulio De Pasquale
3e5f402619 rename home 2021-07-01 06:23:50 +02:00
Giulio De Pasquale
9284a90970 formatting 2021-07-01 06:23:25 +02:00
Giulio De Pasquale
3b78b072bc added garbage collection 2021-07-01 06:06:23 +02:00
Giulio De Pasquale
e5f4c465ce beautification 2021-07-01 06:05:55 +02:00
6 changed files with 207 additions and 108 deletions

View File

@ -5,18 +5,23 @@
console = {
keyMap = "us";
font = "Lat2-Terminus16";
font = "Lat2-Terminus16";
};
i18n.defaultLocale = "en_US.UTF-8";
nix = {
autoOptimiseStore = true;
nixPath = [
nixPath = [
"nixpkgs=/nix/var/nix/profiles/per-user/root/channels/nixos"
"nixos-config=/etc/nixos/hosts/${variables.hostname}/default.nix"
"/nix/var/nix/profiles/per-user/root/channels"
];
gc = {
automatic = true;
dates = "weekly";
persistent = true;
};
};
nixpkgs = {

View File

@ -9,7 +9,7 @@
];
programs.neovim = {
enable = true;
enable = true;
extraConfig = ''
" syntax
syntax enable
@ -34,19 +34,48 @@
" enable indent guides
let g:indent_guides_enable_on_vim_startup = 1
" Exit Vim if NERDTree is the only window left.
autocmd BufEnter * if tabpagenr('$') == 1 && winnr('$') == 1 && exists('b:NERDTree') && b:NERDTree.isTabTree() |
\ quit | endif
" Start NERDTree. If a file is specified, move the cursor to its window.
autocmd StdinReadPre * let s:std_in=1
autocmd VimEnter * NERDTree | if argc() > 0 || exists("s:std_in") | wincmd p | endif
" Start NERDTree when Vim starts with a directory argument.
autocmd StdinReadPre * let s:std_in=1
autocmd VimEnter * if argc() == 1 && isdirectory(argv()[0]) && !exists('s:std_in') |
\ execute 'NERDTree' argv()[0] | wincmd p | enew | execute 'cd '.argv()[0] | endif
" Exit Vim if NERDTree is the only window left.
autocmd BufEnter * if tabpagenr('$') == 1 && winnr('$') == 1 && exists('b:NERDTree') && b:NERDTree.isTabTree() |
\ quit | endif
" Start interactive EasyAlign in visual mode (e.g. vipga)
xmap ga <Plug>(EasyAlign)
" Start interactive EasyAlign for a motion/text object (e.g. gaip)
nmap ga <Plug>(EasyAlign)
" Highlight row and column
set cul
set cuc
'';
viAlias = true;
viAlias = true;
vimAlias = true;
plugins = with pkgs.vimPlugins; [
vim-nix
plugins = with pkgs.vimPlugins; [
vim-nix
molokai
YouCompleteMe
vim-airline
vim-airline
vim-airline-themes
vim-lsp
vim-indent-guides
vim-signify
nerdtree
vim-easy-align
];
};

View File

@ -2,6 +2,39 @@
let
albert_autostart = (pkgs.makeAutostartItem {
<<<<<<< HEAD
name = "albert";
package = pkgs.albert;
});
guake_autostart = (pkgs.makeAutostartItem {
name = "guake";
package = pkgs.guake;
});
in {
imports = [
./zsh.nix
./code.nix
./git.nix
];
nixpkgs.config.allowUnfree = true;
home = {
stateVersion = "21.05";
sessionVariables = {
EDITOR = "nvim";
VISUAL = "nvim";
};
packages = with pkgs; [
# essentials
albert
guake
# browsers
firefox
brave
=======
name = "albert";
package = pkgs.albert;
});
@ -21,32 +54,59 @@ in {
guake
firefox
>>>>>>> 010141fe0b7b6d866f46dd9721653d8ee0521a6b
chromium
# reversing
rizin
<<<<<<< HEAD
# networking
nmap
# development
clang
# social
=======
nmap
>>>>>>> 010141fe0b7b6d866f46dd9721653d8ee0521a6b
slack
signal-desktop
teams
discord
element-desktop
<<<<<<< HEAD
# music
spotify
# misc
bind
# system
gparted
=======
spotify
bind
gparted
sshfs
>>>>>>> 010141fe0b7b6d866f46dd9721653d8ee0521a6b
# autostart
albert_autostart
guake_autostart
];
<<<<<<< HEAD
};
=======
home.sessionVariables = {
EDITOR = "nvim";
VISUAL = "nvim";
};
>>>>>>> 010141fe0b7b6d866f46dd9721653d8ee0521a6b
}

View File

@ -1,11 +1,13 @@
{ config, pkgs, lib, ... }: {
{ config, pkgs, lib, ... }:
{
dconf.settings = {
#
# touchpad
#
"org/gnome/desktop/peripherals/touchpad" = {
natural-scroll = false;
natural-scroll = false;
two-finger-scrolling-enabled = true;
};
@ -14,16 +16,16 @@
#
"org/gnome/desktop/wm/keybindings" = {
close = [ "<Alt>q" ];
maximize = [ "<Primary><Shift>Up" ];
unmaximize = [ "<Primary><Shift>Down" ];
move-to-workspace-left = [ "<Shift><Alt>Left" ];
move-to-workspace-right = [ "<Shift><Alt>Right" ];
switch-to-workspace-left = [ "<Primary><Alt>Left" ];
close = [ "<Alt>q" ];
maximize = [ "<Primary><Shift>Up" ];
unmaximize = [ "<Primary><Shift>Down" ];
move-to-workspace-left = [ "<Shift><Alt>Left" ];
move-to-workspace-right = [ "<Shift><Alt>Right" ];
switch-to-workspace-left = [ "<Primary><Alt>Left" ];
switch-to-workspace-right = [ "<Primary><Alt>Right" ];
};
"org/gnome/mutter/keybindings" = {
toggle-tiled-left = [ "<Primary><Shift>Left" ];
toggle-tiled-left = [ "<Primary><Shift>Left" ];
toggle-tiled-right = [ "<Primary><Shift>Right" ];
};
@ -41,21 +43,21 @@
screensaver = [ "<Primary><Alt>l" ];
# disable screenshot
screenshot = [];
screenshot = [];
};
"org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/custom0" =
{
binding = "F12";
command = "guake-toggle";
name = "Guake";
name = "Guake";
};
"org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/custom1" =
{
binding = "<Alt>a";
command = "albert toggle";
name = "Albert";
name = "Albert";
};
#
@ -63,9 +65,8 @@
#
"org/gnome/settings-daemon/plugins/power" = {
sleep-inactive-ac-type = "nothing";
sleep-inactive-ac-type = "nothing";
sleep-inactive-battery-type = "nothing";
};
#
@ -73,7 +74,7 @@
#
"org/gnome/settings-daemon/plugins/color" = {
night-light-enabled = true;
night-light-enabled = true;
night-light-temperature = 2536;
};

View File

@ -17,6 +17,11 @@ in {
../../users.nix
];
variables.hostname = hostname;
time.timeZone = "Europe/Rome";
system.stateVersion = "21.05"; # Did you read the comment?
users.users.giulio.openssh.authorizedKeys.keys = pubkeys;
boot = {
kernelParams = ["ip=${lan_address}::10.0.0.1:255.255.255.0::enp5s0:off"];
@ -25,9 +30,9 @@ in {
network = {
enable = true;
ssh = {
enable = true;
port = 2222;
hostKeys = [/boot/host_ecdsa_key];
enable = true;
port = 2222;
hostKeys = [/boot/host_ecdsa_key];
authorizedKeys = pubkeys;
};
@ -38,81 +43,78 @@ in {
};
loader = {
systemd-boot.enable = true;
systemd-boot.enable = true;
efi.canTouchEfiVariables = true;
};
supportedFilesystems = ["zfs"];
zfs.requestEncryptionCredentials = true;
supportedFilesystems = ["zfs"];
zfs.requestEncryptionCredentials = true;
};
variables.hostname = hostname;
time.timeZone = "Europe/Rome";
networking = {
hostName = hostname;
hostId = "49350853";
useDHCP = false;
hostName = hostname;
hostId = "49350853";
useDHCP = false;
defaultGateway = "10.0.0.1";
interfaces = {
enp5s0.ipv4.addresses = [{ address = lan_address; prefixLength = 24; }];
enp6s0.useDHCP = false;
wlp4s0.useDHCP = false;
};
defaultGateway = "10.0.0.1";
extraHosts = ''
127.0.0.1 ${hostname}.devs.giugl.io jf.giugl.io yt.giugl.io s3.giugl.io synclounge.giugl.io giugl.io htson.giugl.io htrad.giugl.io htnzb.giugl.io httra.giugl.io giupyter.giugl.io irc.giugl.io localhost
# LAN
${lan_address} ${hostname}.devs.giugl.io giugl.io jf.giugl.io yt.giugl.io s3.giugl.io synclounge.giugl.io htson.giugl.io htrad.giugl.io htnzb.giugl.io httra.giugl.io todo.giugl.io giupyter.giugl.io collabora.giugl.io htjak.giugl.io irc.giugl.io
10.0.0.1 router.devs.giugl.io
10.0.0.2 dvr.devs.giugl.io
10.0.0.3 nas.devs.giugl.io
# Wireguard hosts
10.3.0.1 ${hostname}.devs.giugl.io jf.giugl.io giugl.io yt.giugl.io s3.giugl.io synclounge.giugl.io htson.giugl.io htrad.giugl.io htnzb.giugl.io httra.giugl.io todo.giugl.io giupyter.giugl.io collabora.giugl.io htjak.giugl.io irc.giugl.io
10.3.0.2 galuminum.devs.giugl.io
10.3.0.3 oneplus.devs.giugl.io
10.3.0.4 ipad.devs.giugl.io
10.3.0.5 manduria.devs.giugl.io
10.3.0.6 antonio.devs.giugl.io
10.3.0.7 gbeast.devs.giugl.io
10.3.0.8 parisa-phone.devs.giugl.io
10.3.0.9 parisa-pc.devs.giugl.io
10.3.0.10 peppiniell.devs.giugl.io
10.3.0.11 padulino.devs.giugl.io
10.3.0.12 shield.devs.giugl.io
10.3.0.13 angelino.devs.giugl.io
10.3.0.14 peposone.devs.giugl.io
10.3.0.15 pepostwo.devs.giugl.io
10.3.0.100 eleonora.devs.giugl.io
10.3.0.200 broccolino.devs.giugl.io
10.3.0.201 hotpottino.devs.giugl.io
# Blacklist
0.0.0.0 metrics.plex.tv
0.0.0.0 analytics.plex.tv
0.0.0.0 cdn.luckyorange.com
0.0.0.0 w1.luckyorange.com
0.0.0.0 browser.sentry-cdn.com
0.0.0.0 analytics.facebook.com
0.0.0.0 ads.facebook.com
0.0.0.0 extmaps-api.yandex.net
0.0.0.0 logservice.hicloud.com
0.0.0.0 logbak.hicloud.com
0.0.0.0 logservice1.hicloud.com
0.0.0.0 samsung-com.112.2o7.net
0.0.0.0 supportmetrics.apple.com
0.0.0.0 analytics.oneplus.cn
0.0.0.0 click.oneplus.cn
0.0.0.0 analytics-api.samsunghealthcn.com
# The following lines are desirable for IPv6 capable hosts
::1 localhost ip6-localhost ip6-loopback
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters
'';
# extraHosts = ''
# 127.0.0.1 ${hostname}.devs.giugl.io jf.giugl.io yt.giugl.io s3.giugl.io synclounge.giugl.io giugl.io htson.giugl.io htrad.giugl.io htnzb.giugl.io httra.giugl.io giupyter.giugl.io irc.giugl.io localhost
#
## LAN
#${lan_address} ${hostname}.devs.giugl.io giugl.io jf.giugl.io yt.giugl.io s3.giugl.io synclounge.giugl.io htson.giugl.io htrad.giugl.io htnzb.giugl.io httra.giugl.io todo.giugl.io giupyter.giugl.io collabora.giugl.io htjak.giugl.io irc.giugl.io
#
# 10.0.0.1 router.devs.giugl.io
# 10.0.0.2 dvr.devs.giugl.io
# 10.0.0.3 nas.devs.giugl.io
#
## Wireguard hosts
# 10.3.0.1 ${hostname}.devs.giugl.io jf.giugl.io giugl.io yt.giugl.io s3.giugl.io synclounge.giugl.io htson.giugl.io htrad.giugl.io htnzb.giugl.io httra.giugl.io todo.giugl.io giupyter.giugl.io collabora.giugl.io htjak.giugl.io irc.giugl.io
# 10.3.0.2 galuminum.devs.giugl.io
# 10.3.0.3 oneplus.devs.giugl.io
# 10.3.0.4 ipad.devs.giugl.io
# 10.3.0.5 manduria.devs.giugl.io
# 10.3.0.6 antonio.devs.giugl.io
# 10.3.0.7 gbeast.devs.giugl.io
# 10.3.0.8 parisa-phone.devs.giugl.io
# 10.3.0.9 parisa-pc.devs.giugl.io
# 10.3.0.10 peppiniell.devs.giugl.io
# 10.3.0.11 padulino.devs.giugl.io
# 10.3.0.12 shield.devs.giugl.io
# 10.3.0.13 angelino.devs.giugl.io
# 10.3.0.14 peposone.devs.giugl.io
# 10.3.0.15 pepostwo.devs.giugl.io
# 10.3.0.100 eleonora.devs.giugl.io
# 10.3.0.200 broccolino.devs.giugl.io
# 10.3.0.201 hotpottino.devs.giugl.io
#
## Blacklist
# 0.0.0.0 metrics.plex.tv
# 0.0.0.0 analytics.plex.tv
# 0.0.0.0 cdn.luckyorange.com
# 0.0.0.0 w1.luckyorange.com
# 0.0.0.0 browser.sentry-cdn.com
# 0.0.0.0 analytics.facebook.com
# 0.0.0.0 ads.facebook.com
# 0.0.0.0 extmaps-api.yandex.net
# 0.0.0.0 logservice.hicloud.com
# 0.0.0.0 logbak.hicloud.com
# 0.0.0.0 logservice1.hicloud.com
# 0.0.0.0 samsung-com.112.2o7.net
# 0.0.0.0 supportmetrics.apple.com
# 0.0.0.0 analytics.oneplus.cn
# 0.0.0.0 click.oneplus.cn
# 0.0.0.0 analytics-api.samsunghealthcn.com
#
## The following lines are desirable for IPv6 capable hosts
# ::1 localhost ip6-localhost ip6-loopback
# ff02::1 ip6-allnodes
# ff02::2 ip6-allrouters
# '';
};
environment.systemPackages = with pkgs;
@ -138,8 +140,8 @@ ${lan_address} ${hostname}.devs.giugl.io giugl.io jf.giugl.io yt.giugl.io s3.giu
xserver.videoDrivers = [ "nvidia" ];
dnsmasq = {
enable = true;
servers = ["127.0.0.1#5353"];
enable = true;
servers = ["127.0.0.1#5353"];
extraConfig = ''
localise-queries
'';
@ -148,29 +150,26 @@ ${lan_address} ${hostname}.devs.giugl.io giugl.io jf.giugl.io yt.giugl.io s3.giu
dnscrypt-proxy2 = {
enable = true;
settings = {
listen_addresses = ["127.0.0.1:5353"];
ipv4_servers = true;
ipv6_servers = false;
dnscrypt_servers = true;
doh_servers = true;
require_nolog = true;
require_nofilter = true;
timeout = 350;
lb_strategy = "p4";
lb_estimator = true;
ignore_system_dns = true;
listen_addresses = ["127.0.0.1:5353"];
ipv4_servers = true;
ipv6_servers = false;
dnscrypt_servers = true;
doh_servers = true;
require_nolog = true;
require_nofilter = true;
timeout = 350;
lb_strategy = "p4";
lb_estimator = true;
ignore_system_dns = true;
fallback_resolvers = ["1.1.1.1:53" "9.9.9.9:53"];
};
};
openssh = {
enable = true;
passwordAuthentication = false;
enable = true;
passwordAuthentication = true;
permitRootLogin = "yes";
};
};
system.stateVersion = "21.05"; # Did you read the comment?
users.users.giulio.openssh.authorizedKeys.keys = pubkeys;
}

View File

@ -4,8 +4,12 @@
imports = [ <home-manager/nixos> ];
users.users.giulio = {
description = "Giulio De Pasquale";
description = "Giulio De Pasquale";
isNormalUser = true;
<<<<<<< HEAD
shell = pkgs.zsh;
extraGroups = [ "wheel" ]; # Enable sudo for the user.
=======
shell = pkgs.zsh;
extraGroups = [ "wheel" "docker" "networkmanager" ];
};
@ -13,6 +17,7 @@
programs.zsh = {
enableBashCompletion = true;
enableCompletion = true;
>>>>>>> 010141fe0b7b6d866f46dd9721653d8ee0521a6b
};
home-manager.users.giulio = {