diff --git a/flake.lock b/flake.lock index 779a407..d309fdb 100644 --- a/flake.lock +++ b/flake.lock @@ -31,6 +31,21 @@ "type": "github" } }, + "hardware": { + "locked": { + "lastModified": 1639240632, + "narHash": "sha256-BAXhgnPOW1COIfZ9EOOFTdolalYS73MFHSRajgrSdZw=", + "owner": "NixOS", + "repo": "nixos-hardware", + "rev": "2a7063461c3751d83869a2a0a8ebc59e34bec5b2", + "type": "github" + }, + "original": { + "owner": "NixOS", + "repo": "nixos-hardware", + "type": "github" + } + }, "home-manager": { "inputs": { "nixpkgs": [ @@ -38,11 +53,11 @@ ] }, "locked": { - "lastModified": 1639677999, - "narHash": "sha256-AGd1Z+MF3buhTrCJc3ZrsEgEqWXDlRW9dSkDlW16m2k=", + "lastModified": 1639891275, + "narHash": "sha256-2IMLVTtOHV9kBsirGPRpo8NE48Mjq20iXN7l7uy0YjE=", "owner": "nix-community", "repo": "home-manager", - "rev": "78aa7cceffe2a48d05694d3ddf7a323d554d9be0", + "rev": "3db603677509eb0b8c396a3234b1d4b70d023894", "type": "github" }, "original": { @@ -74,11 +89,11 @@ }, "locked": { "dir": "contrib", - "lastModified": 1639605401, - "narHash": "sha256-FtoFqT52SDX5S28shnn9xyXBw4i+vnjmUNnl0ghItkk=", + "lastModified": 1639886342, + "narHash": "sha256-OkI09enAc4ID1zrxLkHR5b+WgUL2r2C9BIG4+gwVDFU=", "owner": "neovim", "repo": "neovim", - "rev": "326e74571be43823ded9fa805a3173bdabda6bec", + "rev": "abdf3a8128b78fb98ee944bc5d3086c680d779ed", "type": "github" }, "original": { @@ -95,11 +110,11 @@ "nixpkgs": "nixpkgs_2" }, "locked": { - "lastModified": 1639642693, - "narHash": "sha256-ogdDa5MJAiK6f48BLaZ/qE9mgwwD72BZf/+bf5gdVvQ=", + "lastModified": 1639901638, + "narHash": "sha256-ZMP2xjjo3tHlWfgCd3Odn6qKNpNbvbawjcVpww54A1U=", "owner": "nix-community", "repo": "neovim-nightly-overlay", - "rev": "7933df62bb350d2f4a258f9e110decc08baaf627", + "rev": "8f7a0bbc9080f55c000344658a071994aa9c6b4b", "type": "github" }, "original": { @@ -110,11 +125,11 @@ }, "nixpkgs": { "locked": { - "lastModified": 1639525045, - "narHash": "sha256-z4GXFNzO+5V4CAUm2DDMAryLOWUKEbQif2ifvv1Ypg4=", + "lastModified": 1639699734, + "narHash": "sha256-tlX6WebGmiHb2Hmniff+ltYp+7dRfdsBxw9YczLsP60=", "owner": "nixos", "repo": "nixpkgs", - "rev": "a2e281f5770247855b85d70c43454ba5bff34613", + "rev": "03ec468b14067729a285c2c7cfa7b9434a04816c", "type": "github" }, "original": { @@ -126,11 +141,11 @@ }, "nixpkgs_2": { "locked": { - "lastModified": 1639525045, - "narHash": "sha256-z4GXFNzO+5V4CAUm2DDMAryLOWUKEbQif2ifvv1Ypg4=", + "lastModified": 1639699734, + "narHash": "sha256-tlX6WebGmiHb2Hmniff+ltYp+7dRfdsBxw9YczLsP60=", "owner": "nixos", "repo": "nixpkgs", - "rev": "a2e281f5770247855b85d70c43454ba5bff34613", + "rev": "03ec468b14067729a285c2c7cfa7b9434a04816c", "type": "github" }, "original": { @@ -142,11 +157,11 @@ }, "nixpkgs_3": { "locked": { - "lastModified": 1639161226, - "narHash": "sha256-75Y08ynJDTq6HHGIF+8IADBJSVip0UyWQH7jqSFnRR8=", + "lastModified": 1639891440, + "narHash": "sha256-FJxa6ObwOQKZy3VhwN5bJRzX+MV/Yq9WLHK/4jlPKrs=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "573095944e7c1d58d30fc679c81af63668b54056", + "rev": "e6377ff35544226392b49fa2cf05590f9f0c4b43", "type": "github" }, "original": { @@ -158,11 +173,11 @@ }, "nur": { "locked": { - "lastModified": 1639677040, - "narHash": "sha256-X5N+0KgS3NbK7g1x+gqVXhPNAS5f4JvpPRLUmD+oRUU=", + "lastModified": 1639920980, + "narHash": "sha256-icSJWsr5M1oMxsCm4adeMD9C4arv2usSlb7tNodO/Q8=", "owner": "nix-community", "repo": "NUR", - "rev": "26366b05a1f884116ae254ebaa19feac6160ccf0", + "rev": "6b26266ec67c021bf3e9b6bb3e4ca0cdb5b1543c", "type": "github" }, "original": { @@ -172,6 +187,7 @@ }, "root": { "inputs": { + "hardware": "hardware", "home-manager": "home-manager", "homepage": "homepage", "neovim-nightly-overlay": "neovim-nightly-overlay", diff --git a/flake.nix b/flake.nix index 2b3c467..2d318c1 100644 --- a/flake.nix +++ b/flake.nix @@ -1,7 +1,8 @@ { description = "A flake for my personnal configurations"; inputs = { - nixpkgs.url = github:NixOS/nixpkgs/nixos-21.11; + nixpkgs.url = "github:NixOS/nixpkgs/nixos-21.11"; + home-manager = { url = "github:nix-community/home-manager"; inputs.nixpkgs.follows = "nixpkgs"; @@ -14,6 +15,11 @@ url = "github:JulienMalka/homepage"; flake = false; }; + + hardware = { + url = "github:NixOS/nixos-hardware"; + }; + }; outputs = { self, home-manager, nixpkgs, neovim-nightly-overlay, nur, ... }@inputs: diff --git a/home-manager-modules/i3/config b/home-manager-modules/i3/config new file mode 100644 index 0000000..eb8b39d --- /dev/null +++ b/home-manager-modules/i3/config @@ -0,0 +1,265 @@ +# This file has been auto-generated by i3-config-wizard(1). +# It will not be overwritten, so edit it as you like. +# +# Should you change your keyboard layout some time, delete +# this file and re-run i3-config-wizard(1). +# + +# i3 config file (v4) +# +# Please see http://i3wm.org/docs/userguide.html for a complete reference! + +#Execs + +exec_always xrandr --output $leftm --primary --mode 1920x1080 --pos 0x0 --rotate normal --output $rightm --mode 1920x1080 --pos 1920x0 --rotate normal + + +#exec_always xrandr --output $leftm --primary --mode 1920x1080 --pos 0x0 --rotate normal + +exec_always feh --bg-scale ~/df/bg.jpg + +# Variables {{{ + +set $sup Mod1 +set $terminal tabbed -c urxvt -embed +set $leftm HDMI-1 +set $rightm eDP-1 + +set $workspace1 "" +set $workspace2 "" +set $workspace3 "" +set $workspace4 "4" +set $workspace5 "5" +set $workspace6 "6" +set $workspace7 "7" +set $workspace8 "8" +set $workspace9 "9" +set $workspace10 "" +# }}} + + +workspace "" output $leftm +workspace "" output $rightm +workspace "" output $rightm + + + +#Set Mod +set $mod Mod4 + +set $bg-color #172A47 +set $text-color #5A9857 +set $urgent-bg-color #E53935 +set $inactive-bg-color #435E75 + + +########################################## + +#Scrolling - doesn't work +#exec --no-startup-id synclient HorizEdgeScroll=1 VertEdgeScroll=1 VertScrollDelta=-111 + +#WORKSPACE STARTUP + +#Gaps and Window + +for_window [class="^.*"] border pixel 2 +#new_window pixel 4 +#new_float pixel 4 +#gaps inner 20 +gaps inner 10 +#border_radius 5 +#new_window pixel 3 +#new_float pixel 3 +#gaps top 35 +hide_edge_borders vertical + +# Color variables +set $unfocused_border #72afff +set $focused_border #b21c0e + +# class border backgr. text indicator +client.focused #698AB2 #698AB2 #698AB2 #698AB2 #698AB2 +#client.focused_inactive $base03 $base03 $base05 $base03 +#client.unfocused $base03 $base03 $base05 $base00 +#client.urgent $base01 $base01 $base05 $base00 + + +#Check .Xresources for font + +# start a terminal +bindsym $mod+Return workspace  +bindsym $mod+Shift+Return exec urxvt + +# kill focused window +bindsym $mod+q kill + +# start rofi + +bindsym $mod+space exec ~/.config/rofi/bin/launcher_text + + +# change focus + +# alternatively, you can use the cursor keys: +bindsym $mod+h focus left +bindsym $mod+j focus down +bindsym $mod+k focus up +bindsym $mod+l focus right + + +# alternatively, you can use the cursor keys: +bindsym $mod+Shift+h move left +bindsym $mod+Shift+j move down +bindsym $mod+Shift+k move up +bindsym $mod+Shift+l move right + +# split in horizontal orientation +bindsym $mod+o split h + +# split in vertical orientation +bindsym $mod+v split v + +# enter fullscreen mode for the focused container +bindsym $mod+f fullscreen toggle + +# change container layout (stacked, tabbed, toggle split) +bindsym $mod+s layout stacking +bindsym $mod+w layout tabbed +bindsym $mod+e layout toggle split + +# toggle tiling / floating +bindsym $mod+Shift+space floating toggle + +# change focus between tiling / floating windows +#bindsym $mod+space focus mode_toggle + +# focus the parent container +bindsym $mod+a focus parent + +# focus the child container +#bindsym $mod+d focus child + +bindsym $mod+Ctrl+Left move workspace to output $leftm +bindsym $mod+Ctrl+Right move workspace to output $rightm + + +# switch to workspace +bindsym $mod+1 workspace  +bindsym $mod+2 workspace  +bindsym $mod+3 workspace  +bindsym $mod+4 workspace 4 +bindsym $mod+5 workspace 5 +bindsym $mod+6 workspace 6 +bindsym $mod+7 workspace 7 +bindsym $mod+8 workspace 8 +bindsym $mod+9 workspace 9 +bindsym $mod+0 workspace  + +# move focused container to workspace +bindsym $mod+Shift+1 move container to workspace  +bindsym $mod+Shift+2 move container to workspace  +bindsym $mod+Shift+3 move container to workspace  +bindsym $mod+Shift+4 move container to workspace 4 +bindsym $mod+Shift+5 move container to workspace 5 +bindsym $mod+Shift+6 move container to workspace 6 +bindsym $mod+Shift+7 move container to workspace 7 +bindsym $mod+Shift+8 move container to workspace 8 +bindsym $mod+Shift+9 move container to workspace 9 +bindsym $mod+Shift+0 move container to workspace  + + +#assign apps to workspaces +#assign [class = "URxvt"]  +assign [class = "Firefox"]  +assign [class = "discord"]  +assign[class="Atomic TweetDeck"]  +assign [class="Slack"]  +assign[class="Atom"] + + +# reload the configuration file +bindsym $mod+Shift+c reload +# restart i3 inplace (preserves your layout/session, can be used to upgrade i3) +# also destroy anything in startup workspace +bindsym $mod+Shift+r restart [workspace=] kill +# exit i3 (logs you out of your X session) +bindsym $mod+Shift+e exec "i3-nagbar -t warning -m 'You pressed the exit shortcut. Do you really want to exit i3? This will end your X session.' -b 'Yes, exit i3' 'i3-msg exit'" + +# resize window (you can also use the mouse for that) +mode "resize" { + # These bindings trigger as soon as you enter the resize mode + + # Pressing left will shrink the window’s width. + # Pressing right will grow the window’s width. + # Pressing up will shrink the window’s height. + # Pressing down will grow the window’s height. + bindsym h resize shrink width 10 px or 10 ppt + bindsym j resize shrink height 10 px or 10 ppt + bindsym k resize grow height 10 px or 10 ppt + bindsym l resize grow width 10 px or 10 ppt + + # same bindings, but for the arrow keys + bindsym Left resize shrink width 10 px or 10 ppt + bindsym Down resize grow height 10 px or 10 ppt + bindsym Up resize shrink height 10 px or 10 ppt + bindsym Right resize grow width 10 px or 10 ppt + + # back to normal: Enter or Escape + bindsym $mod+R mode "default" + bindsym Return mode "default" + bindsym Escape mode "default" +} + +bindsym $mod+r mode "resize" +bindsym $mod+p exec i3lock-fancy + +# Start i3bar to display a workspace bar (plus the system information i3status +# finds out, if available) +#bar { +# font pango:DejaVu Sans Mono, Awesome 8 +# status_command i3blocks +# colors { +# background #23313D +# separator #757575 +# # border background text +# focused_workspace $inactive-bg-color $bg-color $text-color +# inactive_workspace $bg-color $bg-color $text-color +# urgent_workspace $urgent-bg-color $urgent-bg-color $text-color +# } +#} + + +#SCROT +bindsym --release Print exec "scrot ~/Pictures/Screenshots/%b%d:%H%M%S.png" + +# Alsa controls +bindsym XF86AudioMute exec amixer set Master toggle; exec pkill -RTMIN+10 i3blocks +bindsym XF86AudioRaiseVolume exec amixer set Master 5%+; exec pkill -RTMIN+10 i3blocks +bindsym XF86AudioLowerVolume exec amixer set Master 5%-; exec pkill -RTMIN+10 i3blocks + +#Pulse Audio controls +#bindsym XF86AudioRaiseVolume exec amixer -q -D pulse sset Master 2%+; +#exec pkill -RTMIN+10 i3blocks +#bindsym XF86AudioLowerVolume exec amixer -q -D pulse sset Master 2%-; +#exec pkill -RTMIN+10 i3blocks +#bindsym XF86AudioMute exec amixer -q -D pulse sset Master toggle; +#exec pkill -RTMIN+10 i3blocks + +# Sreen brightness controls +bindsym XF86MonBrightnessUp exec xbacklight -inc 20 # increase screen brightness +bindsym XF86MonBrightnessDown exec xbacklight -dec 20 # decrease screen brightness + +# Touchpad controls +bindsym XF86TouchpadToggle exec /some/path/toggletouchpad.sh # toggle touchpad + +# Media player controls +bindsym XF86AudioPlay exec playerctl play +bindsym XF86AudioPause exec playerctl pause +#bindsym XF86AudioNext exec playerctl next +#bindsym XF86AudioPrev exec playerctl previous + + +exec systemctl --user restart polybar +exec xrdb /home/julien/.Xressources + +#exec --no-startup-id i3-msg 'workspace ; exec urxvt;exec urxvt;exec urxvt;exec urxvt; workspace ' diff --git a/home-manager-modules/i3/default.nix b/home-manager-modules/i3/default.nix new file mode 100644 index 0000000..80c7733 --- /dev/null +++ b/home-manager-modules/i3/default.nix @@ -0,0 +1,19 @@ +{ config, pkgs, lib, ... }: +let + cfg = config.luj.i3; +in with lib; +{ + options.luj.i3 = { + enable = mkEnableOption "activate i3"; + }; + + config = mkIf cfg.enable { + xsession.windowManager.i3 = { + enable = true; + package = pkgs.i3-gaps; + }; + + xdg.configFile."i3/config".source = lib.mkForce ./config; + + }; +} diff --git a/machines/macintosh.nix b/machines/macintosh.nix new file mode 100644 index 0000000..becb278 --- /dev/null +++ b/machines/macintosh.nix @@ -0,0 +1,183 @@ +{ config, pkgs, lib, modulesPath, inputs, ... }: + +{ + + imports = + [ (modulesPath + "/installer/scan/not-detected.nix") + (import "${inputs.hardware}/lenovo/thinkpad/p14s/amd/gen2") + ]; + + + + + boot.loader.systemd-boot.enable = true; + boot.loader.efi.canTouchEfiVariables = true; + sound.enable = true; + + + hardware.pulseaudio.enable = true; + hardware.pulseaudio.support32Bit = true; + networking.hostName = "macintosh"; # Define your hostname. + networking.networkmanager.enable = true; + + time.timeZone = "Europe/Paris"; + + networking.useDHCP = false; + networking.interfaces.enp2s0f0.useDHCP = true; + networking.interfaces.enp5s0.useDHCP = true; + networking.interfaces.wlp3s0.useDHCP = true; + +programs.steam.enable = true; + i18n.defaultLocale = "en_US.UTF-8"; + console = { + font = "Lat2-Terminus16"; + keyMap = "fr"; + }; + + +nixpkgs.config.allowUnfree = true; + +hardware.trackpoint = { +enable = true; +speed = 80; +sensitivity = 220; +emulateWheel = true; +device = "TPPS/2 Elan TrackPoint"; +}; + + + +programs.gnupg.agent.enable = true; + + +services = { + +tlp.enable = true; + +xserver = { + enable = true; + layout = "fr"; + libinput.enable = false; + libinput.touchpad.tapping = false; + displayManager.lightdm.enable = true; + desktopManager.xterm.enable = true; + }; + +}; + + + environment.systemPackages = with pkgs; [ + wget + firefox + git + rxvt_unicode + xorg.xbacklight +]; +environment.variables.EDITOR = "urxvt"; + +programs.dconf.enable = true; + + + networking.firewall.enable = false; + + system.stateVersion = "21.11"; # Did you read the comment? + boot.initrd.availableKernelModules = [ "nvme" "ehci_pci" "xhci_pci" "sdhci_pci" ]; + boot.initrd.kernelModules = [ ]; + boot.kernelModules = [ "kvm-amd" "amdgpu"]; + boot.extraModulePackages = [ ]; + + fileSystems."/" = + { device = "/dev/disk/by-uuid/3e01f61b-c580-4078-94be-192f7aed5c5a"; + fsType = "ext4"; + }; + + fileSystems."/boot" = + { device = "/dev/disk/by-uuid/2799-DF20"; + fsType = "vfat"; + }; + + swapDevices = + [ { device = "/dev/disk/by-uuid/44dadc95-a61e-40db-93d7-ada237f1e53b"; } + ]; + + + +# HOME + +luj.hmgr.julien = { + luj.programs.neovim.enable = true; + luj.i3.enable = true; + home.packages = with pkgs; [ + feh + meld + vlc + nerdfonts + font-awesome + python3 + texlive.combined.scheme-full + nodejs + fira-code + neomutt + htop + evince + mosh + signal-desktop + flameshot + ctags + ungoogled-chromium + ]; + + +home.keyboard = { + layout = "fr"; +}; + + + + gtk = { + enable = true; + theme = { + name = "Nordic"; + package = pkgs.nordic; + }; + }; + qt = { + enable = true; + platformTheme = "gtk"; + }; + + +fonts.fontconfig.enable = true; + +services.polybar = { + enable = true; + package = pkgs.polybar.override { + i3GapsSupport = true; + #i3Support = true; +}; + + +script = "polybar -q PolybarTony &"; + +}; + + + +xsession.enable = true; +programs.rofi.enable = true; + +home.stateVersion = "21.11"; + + + +}; + + + + + + + + +} +